From bb277c91a7c42bbf4cadac7cecfc52599b073e4b Mon Sep 17 00:00:00 2001 From: crowlkats Date: Mon, 11 Nov 2024 18:08:39 +0100 Subject: [PATCH 01/36] update exts and runtime --- Cargo.lock | 71 +- Cargo.toml | 10 +- cli/build.rs | 15 +- cli/module_loader.rs | 4 +- cli/npm/byonm.rs | 4 +- cli/npm/mod.rs | 2 +- cli/standalone/mod.rs | 2 +- cli/tools/bench/mod.rs | 2 +- ext/broadcast_channel/lib.rs | 28 +- ext/cache/lib.rs | 24 +- ext/cache/sqlite.rs | 6 +- ext/canvas/lib.rs | 4 +- ext/cron/lib.rs | 20 +- ext/crypto/decrypt.rs | 14 +- ext/crypto/ed25519.rs | 5 +- ext/crypto/encrypt.rs | 11 +- ext/crypto/export_key.rs | 7 +- ext/crypto/generate_key.rs | 6 +- ext/crypto/import_key.rs | 6 +- ext/crypto/lib.rs | 142 +- ext/crypto/shared.rs | 12 +- ext/crypto/x25519.rs | 4 +- ext/crypto/x448.rs | 4 +- ext/fetch/fs_fetch_handler.rs | 3 +- ext/fetch/lib.rs | 84 +- ext/ffi/call.rs | 19 +- ext/ffi/callback.rs | 38 +- ext/ffi/dlfcn.rs | 34 +- ext/ffi/ir.rs | 3 +- ext/ffi/repr.rs | 6 +- ext/ffi/static.rs | 15 +- ext/ffi/symbol.rs | 7 +- ext/fs/ops.rs | 90 +- ext/http/http_next.rs | 58 +- ext/http/lib.rs | 67 +- ext/http/request_body.rs | 6 +- ext/http/request_properties.rs | 17 +- ext/http/response_body.rs | 12 +- ext/http/service.rs | 3 +- ext/http/websocket_upgrade.rs | 10 +- ext/io/fs.rs | 56 +- ext/io/lib.rs | 11 +- ext/kv/dynamic.rs | 12 +- ext/kv/interface.rs | 4 +- ext/kv/lib.rs | 89 +- ext/kv/remote.rs | 23 +- ext/kv/sqlite.rs | 32 +- ext/napi/lib.rs | 28 +- ext/net/io.rs | 13 +- ext/net/lib.rs | 3 +- ext/net/ops.rs | 59 +- ext/net/ops_tls.rs | 3 +- ext/net/raw.rs | 54 +- ext/node/lib.rs | 6 +- ext/node/ops/blocklist.rs | 3 +- ext/node/ops/buffer.rs | 15 +- ext/node/ops/crypto/cipher.rs | 35 +- ext/node/ops/crypto/digest.rs | 3 +- ext/node/ops/crypto/keys.rs | 146 +- ext/node/ops/crypto/mod.rs | 64 +- ext/node/ops/crypto/sign.rs | 5 +- ext/node/ops/crypto/x509.rs | 12 +- ext/node/ops/fs.rs | 15 +- ext/node/ops/http.rs | 9 +- ext/node/ops/http2.rs | 39 +- ext/node/ops/idna.rs | 11 +- ext/node/ops/inspector.rs | 19 +- ext/node/ops/ipc.rs | 29 +- ext/node/ops/os/mod.rs | 19 +- ext/node/ops/os/priority.rs | 6 +- ext/node/ops/process.rs | 2 +- ext/node/ops/require.rs | 52 +- ext/node/ops/util.rs | 2 +- ext/node/ops/v8.rs | 17 +- ext/node/ops/vm_internal.rs | 7 +- ext/node/ops/worker_threads.rs | 24 +- ext/node/ops/zlib/brotli.rs | 22 +- ext/node/ops/zlib/mod.rs | 30 +- ext/node/ops/zlib/mode.rs | 3 +- ext/tls/lib.rs | 13 +- ext/url/lib.rs | 7 +- ext/url/urlpattern.rs | 13 +- ext/web/blob.rs | 6 +- ext/web/compression.rs | 8 +- ext/web/lib.rs | 9 +- ext/web/message_port.rs | 11 +- ext/web/stream_resource.rs | 11 +- ext/webgpu/binding.rs | 12 +- ext/webgpu/buffer.rs | 32 +- ext/webgpu/bundle.rs | 49 +- ext/webgpu/byow.rs | 16 +- ext/webgpu/command_encoder.rs | 32 +- ext/webgpu/compute_pass.rs | 18 +- ext/webgpu/lib.rs | 26 +- ext/webgpu/pipeline.rs | 10 +- ext/webgpu/queue.rs | 10 +- ext/webgpu/render_pass.rs | 55 +- ext/webgpu/sampler.rs | 2 +- ext/webgpu/shader.rs | 2 +- ext/webgpu/surface.rs | 28 +- ext/webgpu/texture.rs | 4 +- ext/websocket/lib.rs | 56 +- ext/webstorage/lib.rs | 11 +- runtime/errors.rs | 1932 -------------------------- runtime/lib.rs | 1 - runtime/ops/fs_events.rs | 37 +- runtime/ops/http.rs | 17 +- runtime/ops/os/mod.rs | 39 +- runtime/ops/permissions.rs | 13 +- runtime/ops/process.rs | 71 +- runtime/ops/signal.rs | 16 +- runtime/ops/tty.rs | 49 +- runtime/ops/web_worker/sync_fetch.rs | 21 +- runtime/ops/worker_host.rs | 15 +- runtime/permissions/lib.rs | 56 +- runtime/shared.rs | 11 +- runtime/web_worker.rs | 43 +- runtime/worker.rs | 30 +- 118 files changed, 1637 insertions(+), 3012 deletions(-) delete mode 100644 runtime/errors.rs diff --git a/Cargo.lock b/Cargo.lock index b86b8acd945759..463d2f92ef0833 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -435,29 +435,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bindgen" -version = "0.69.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" -dependencies = [ - "bitflags 2.6.0", - "cexpr", - "clang-sys", - "itertools 0.10.5", - "lazy_static", - "lazycell", - "log", - "prettyplease 0.2.17", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.72", - "which 4.4.2", -] - [[package]] name = "bindgen" version = "0.70.1" @@ -1418,9 +1395,7 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.318.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cae2393219ff9278123f7b24799cdfab37c7d6561b69ca06ced115cac92111" +version = "0.319.0" dependencies = [ "anyhow", "bincode", @@ -1429,6 +1404,7 @@ dependencies = [ "bytes", "cooked-waker", "deno_core_icudata", + "deno_js_error", "deno_ops", "deno_unsync", "futures", @@ -1443,6 +1419,7 @@ dependencies = [ "smallvec", "sourcemap 8.0.1", "static_assertions", + "thiserror", "tokio", "url", "v8", @@ -1450,9 +1427,9 @@ dependencies = [ [[package]] name = "deno_core_icudata" -version = "0.0.73" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13951ea98c0a4c372f162d669193b4c9d991512de9f2381dd161027f34b26b1" +checksum = "fe4dccb6147bb3f3ba0c7a48e993bfeb999d2c2e47a81badee80e2b370c8d695" [[package]] name = "deno_cron" @@ -1693,6 +1670,18 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "deno_js_error" +version = "0.1.0" +dependencies = [ + "proc-macro-rules", + "proc-macro2", + "quote", + "strum", + "strum_macros", + "syn 2.0.72", +] + [[package]] name = "deno_kv" version = "0.85.0" @@ -1921,9 +1910,7 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.194.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f760b492bd638c1dc3e992d11672c259fbe9a233162099a8347591c9e22d0391" +version = "0.195.0" dependencies = [ "proc-macro-rules", "proc-macro2", @@ -4192,12 +4179,6 @@ dependencies = [ "spin", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" version = "0.2.153" @@ -4289,7 +4270,7 @@ version = "1.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca8dfd1a173826d193e3b955e07c22765829890f62c677a59c4a410cb4f47c01" dependencies = [ - "bindgen 0.70.1", + "bindgen", "libloading 0.8.5", ] @@ -6238,9 +6219,7 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.227.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a8294c2223c53bed343be8b80564ece4dc0d03b643b06fa86c4ccc0e064eda0" +version = "0.228.0" dependencies = [ "num-bigint", "serde", @@ -7740,11 +7719,11 @@ dependencies = [ [[package]] name = "v8" -version = "0.106.0" +version = "130.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a381badc47c6f15acb5fe0b5b40234162349ed9d4e4fd7c83a7f5547c0fc69c5" +checksum = "c23b5c2caff00209b03a716609b275acae94b02dd3b63c4648e7232a84a8402f" dependencies = [ - "bindgen 0.69.4", + "bindgen", "bitflags 2.6.0", "fslock", "gzip-header", @@ -8554,3 +8533,7 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "v8" +version = "0.89.0" diff --git a/Cargo.toml b/Cargo.toml index d83ca2e4138a5e..3e45864552bd07 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,7 +46,7 @@ repository = "https://github.com/denoland/deno" [workspace.dependencies] deno_ast = { version = "=0.43.3", features = ["transpiling"] } -deno_core = { version = "0.318.0" } +deno_core = { version = "0.319.0" } deno_bench_util = { version = "0.171.0", path = "./bench_util" } deno_lockfile = "=0.23.1" @@ -326,3 +326,11 @@ opt-level = 3 opt-level = 3 [profile.release.package.zstd-sys] opt-level = 3 + +[patch.crates-io] +deno_core = { path = "../deno_core/core" } +deno_ops = { path = "../deno_core/ops" } +deno_js_error = { path = "../deno_core/js_error" } +serde_v8 = { path = "../deno_core/serde_v8" } +v8 = { path = "../rusty_v8" } + diff --git a/cli/build.rs b/cli/build.rs index 2678a8dbb027e0..b33660da5c05fa 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -9,8 +9,7 @@ mod shared; mod ts { use super::*; - use deno_core::error::custom_error; - use deno_core::error::AnyError; + use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::OpState; use serde::Serialize; @@ -51,7 +50,7 @@ mod ts { fn op_script_version( _state: &mut OpState, #[string] _arg: &str, - ) -> Result, AnyError> { + ) -> Result, JsNativeError> { Ok(Some("1".to_string())) } @@ -70,7 +69,7 @@ mod ts { fn op_load( state: &mut OpState, #[string] load_specifier: &str, - ) -> Result { + ) -> Result { let op_crate_libs = state.borrow::>(); let path_dts = state.borrow::(); let re_asset = lazy_regex::regex!(r"asset:/{3}lib\.(\S+)\.d\.ts"); @@ -91,12 +90,12 @@ mod ts { // if it comes from an op crate, we were supplied with the path to the // file. let path = if let Some(op_crate_lib) = op_crate_libs.get(lib) { - PathBuf::from(op_crate_lib).canonicalize()? + PathBuf::from(op_crate_lib).canonicalize().map_err(JsNativeError::from_err)? // otherwise we will generate the path ourself } else { path_dts.join(format!("lib.{lib}.d.ts")) }; - let data = std::fs::read_to_string(path)?; + let data = std::fs::read_to_string(path).map_err(JsNativeError::from_err)?; Ok(LoadResponse { data, version: "1".to_string(), @@ -104,13 +103,13 @@ mod ts { script_kind: 3, }) } else { - Err(custom_error( + Err(JsNativeError::new( "InvalidSpecifier", format!("An invalid specifier was requested: {}", load_specifier), )) } } else { - Err(custom_error( + Err(JsNativeError::new( "InvalidSpecifier", format!("An invalid specifier was requested: {}", load_specifier), )) diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 43c9e1aa0750e0..f535b8e0abedc0 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -1065,11 +1065,11 @@ impl NodeRequireLoader &self, permissions: &mut dyn deno_runtime::deno_node::NodePermissions, path: &'a Path, - ) -> Result, AnyError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { if let Ok(url) = deno_path_util::url_from_file_path(path) { // allow reading if it's in the module graph if self.graph_container.graph().get(&url).is_some() { - return Ok(std::borrow::Cow::Borrowed(path)); + return Ok(Cow::Borrowed(path)); } } self.npm_resolver.ensure_read_permission(permissions, path) diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index 45fa4cfd1f528c..c01cd7e4e5dfb6 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -84,12 +84,12 @@ impl CliNpmResolver for CliByonmNpmResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { if !path .components() .any(|c| c.as_os_str().to_ascii_lowercase() == "node_modules") { - permissions.check_read_path(path).map_err(Into::into) + permissions.check_read_path(path) } else { Ok(Cow::Borrowed(path)) } diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index 0d434ca27fb540..da9618cc6a8fc9 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -131,7 +131,7 @@ pub trait CliNpmResolver: NpmResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError>; + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError>; /// Returns a hash returning the state of the npm resolver /// or `None` if the state currently can't be determined. diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 85610f4c20f1f7..e98d1594a97d41 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -411,7 +411,7 @@ impl NodeRequireLoader for EmbeddedModuleLoader { &self, permissions: &mut dyn deno_runtime::deno_node::NodePermissions, path: &'a std::path::Path, - ) -> Result, AnyError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { if self.shared.modules.has_file(path) { // allow reading if the file is in the snapshot return Ok(Cow::Borrowed(path)); diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs index 272d06335512a6..6ff1a7300c1451 100644 --- a/cli/tools/bench/mod.rs +++ b/cli/tools/bench/mod.rs @@ -16,9 +16,9 @@ use crate::util::path::matches_pattern_or_exact_path; use crate::worker::CliMainWorkerFactory; use deno_config::glob::WalkEntry; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::error::JsError; +use deno_core::error::JsNativeError::generic; use deno_core::futures::future; use deno_core::futures::stream; use deno_core::futures::StreamExt; diff --git a/ext/broadcast_channel/lib.rs b/ext/broadcast_channel/lib.rs index c1de118a364fad..ee71ece9fe440d 100644 --- a/ext/broadcast_channel/lib.rs +++ b/ext/broadcast_channel/lib.rs @@ -10,6 +10,7 @@ use std::path::PathBuf; use std::rc::Rc; use async_trait::async_trait; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::JsBuffer; use deno_core::OpState; @@ -20,18 +21,22 @@ use tokio::sync::mpsc::error::SendError as MpscSendError; pub const UNSTABLE_FEATURE_NAME: &str = "broadcast-channel"; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum BroadcastChannelError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(GENERIC)] #[error(transparent)] MPSCSendError(MpscSendError>), + #[class(GENERIC)] #[error(transparent)] BroadcastSendError( BroadcastSendError>, ), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[inherit] JsNativeError), } impl From> @@ -101,10 +106,7 @@ pub fn op_broadcast_unsubscribe( where BC: BroadcastChannel + 'static, { - let resource = state - .resource_table - .get::(rid) - .map_err(BroadcastChannelError::Resource)?; + let resource = state.resource_table.get::(rid)?; let bc = state.borrow::(); bc.unsubscribe(&resource) } @@ -119,11 +121,7 @@ pub async fn op_broadcast_send( where BC: BroadcastChannel + 'static, { - let resource = state - .borrow() - .resource_table - .get::(rid) - .map_err(BroadcastChannelError::Resource)?; + let resource = state.borrow().resource_table.get::(rid)?; let bc = state.borrow().borrow::().clone(); bc.send(&resource, name, buf.to_vec()).await } @@ -137,11 +135,7 @@ pub async fn op_broadcast_recv( where BC: BroadcastChannel + 'static, { - let resource = state - .borrow() - .resource_table - .get::(rid) - .map_err(BroadcastChannelError::Resource)?; + let resource = state.borrow().resource_table.get::(rid)?; let bc = state.borrow().borrow::().clone(); bc.recv(&resource).await } diff --git a/ext/cache/lib.rs b/ext/cache/lib.rs index 524d4cea0574ab..f109dad0c08d78 100644 --- a/ext/cache/lib.rs +++ b/ext/cache/lib.rs @@ -6,11 +6,11 @@ use std::rc::Rc; use std::sync::Arc; use async_trait::async_trait; -use deno_core::error::type_error; use deno_core::op2; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; use deno_core::ByteString; +use deno_core::error::JsNativeError; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; @@ -18,18 +18,26 @@ use deno_core::ResourceId; mod sqlite; pub use sqlite::SqliteBackedCache; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CacheError { + #[class(TYPE)] + #[error("CacheStorage is not available in this context")] + ContextUnsupported, + #[class(GENERIC)] #[error(transparent)] Sqlite(#[from] rusqlite::Error), + #[class(GENERIC)] #[error(transparent)] JoinError(#[from] tokio::task::JoinError), + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[inherit] JsNativeError), + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), } #[derive(Clone)] @@ -233,13 +241,11 @@ where if let Some(cache) = state.try_borrow::() { Ok(cache.clone()) } else if let Some(create_cache) = state.try_borrow::>() { - let cache = create_cache.0()?; + let cache = create_cache.0(); state.put(cache); Ok(state.borrow::().clone()) } else { - Err(CacheError::Other(type_error( - "CacheStorage is not available in this context", - ))) + Err(CacheError::ContextUnsupported) } } diff --git a/ext/cache/sqlite.rs b/ext/cache/sqlite.rs index 6efceda11eaf42..2c7287ba692278 100644 --- a/ext/cache/sqlite.rs +++ b/ext/cache/sqlite.rs @@ -8,7 +8,6 @@ use std::time::SystemTime; use std::time::UNIX_EPOCH; use async_trait::async_trait; -use deno_core::error::AnyError; use deno_core::futures::future::poll_fn; use deno_core::parking_lot::Mutex; use deno_core::unsync::spawn_blocking; @@ -378,7 +377,10 @@ impl CacheResponseResource { } } - async fn read(self: Rc, data: &mut [u8]) -> Result { + async fn read( + self: Rc, + data: &mut [u8], + ) -> Result { let resource = deno_core::RcRef::map(&self, |r| &r.file); let mut file = resource.borrow_mut().await; let nread = file.read(data).await?; diff --git a/ext/canvas/lib.rs b/ext/canvas/lib.rs index defb288ac9d2dd..b84799cea35773 100644 --- a/ext/canvas/lib.rs +++ b/ext/canvas/lib.rs @@ -11,10 +11,12 @@ use serde::Deserialize; use serde::Serialize; use std::path::PathBuf; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CanvasError { + #[class(TYPE)] #[error("Color type '{0:?}' not supported")] UnsupportedColorType(ColorType), + #[class(GENERIC)] #[error(transparent)] Image(#[from] image::ImageError), } diff --git a/ext/cron/lib.rs b/ext/cron/lib.rs index feffb5e5112114..1f2c450b626ae2 100644 --- a/ext/cron/lib.rs +++ b/ext/cron/lib.rs @@ -6,9 +6,8 @@ pub mod local; use std::borrow::Cow; use std::cell::RefCell; use std::rc::Rc; - +use deno_core::error::{JsErrorClass, JsNativeError}; pub use crate::interface::*; -use deno_core::error::get_custom_error_class; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -46,26 +45,35 @@ impl Resource for CronResource { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CronError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(TYPE)] #[error("Cron name cannot exceed 64 characters: current length {0}")] NameExceeded(usize), + #[class(TYPE)] #[error("Invalid cron name: only alphanumeric characters, whitespace, hyphens, and underscores are allowed")] NameInvalid, + #[class(TYPE)] #[error("Cron with this name already exists")] AlreadyExists, + #[class(TYPE)] #[error("Too many crons")] TooManyCrons, + #[class(TYPE)] #[error("Invalid cron schedule")] InvalidCron, + #[class(TYPE)] #[error("Invalid backoff schedule")] InvalidBackoff, + #[class(GENERIC)] #[error(transparent)] AcquireError(#[from] tokio::sync::AcquireError), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[inherit] JsNativeError), } #[op2] @@ -118,7 +126,7 @@ where let resource = match state.resource_table.get::>(rid) { Ok(resource) => resource, Err(err) => { - if get_custom_error_class(&err) == Some("BadResource") { + if err.get_class() == "BadResource" { return Ok(false); } else { return Err(CronError::Resource(err)); diff --git a/ext/crypto/decrypt.rs b/ext/crypto/decrypt.rs index 1140475183e1cd..3aadb8cf604049 100644 --- a/ext/crypto/decrypt.rs +++ b/ext/crypto/decrypt.rs @@ -70,26 +70,36 @@ pub enum DecryptAlgorithm { }, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum DecryptError { + #[class(inherit)] #[error(transparent)] - General(#[from] SharedError), + General(#[from] #[inherit] SharedError), + #[class(GENERIC)] #[error(transparent)] Pkcs1(#[from] rsa::pkcs1::Error), + #[class("DOMExceptionOperationError")] #[error("Decryption failed")] Failed, + #[class(TYPE)] #[error("invalid length")] InvalidLength, + #[class(TYPE)] #[error("invalid counter length. Currently supported 32/64/128 bits")] InvalidCounterLength, + #[class(TYPE)] #[error("tag length not equal to 128")] InvalidTagLength, + #[class("DOMExceptionOperationError")] #[error("invalid key or iv")] InvalidKeyOrIv, + #[class("DOMExceptionOperationError")] #[error("tried to decrypt too much data")] TooMuchData, + #[class(TYPE)] #[error("iv length not equal to 12 or 16")] InvalidIvLength, + #[class("DOMExceptionOperationError")] #[error("{0}")] Rsa(rsa::Error), } diff --git a/ext/crypto/ed25519.rs b/ext/crypto/ed25519.rs index da34b7d25dbf05..8a58e8f85ce6fe 100644 --- a/ext/crypto/ed25519.rs +++ b/ext/crypto/ed25519.rs @@ -13,12 +13,15 @@ use spki::der::asn1::BitString; use spki::der::Decode; use spki::der::Encode; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum Ed25519Error { + #[class("DOMExceptionOperationError")] #[error("Failed to export key")] FailedExport, + #[class(GENERIC)] #[error(transparent)] Der(#[from] rsa::pkcs1::der::Error), + #[class(GENERIC)] #[error(transparent)] KeyRejected(#[from] ring::error::KeyRejected), } diff --git a/ext/crypto/encrypt.rs b/ext/crypto/encrypt.rs index 66b27657f8f055..fa56fbafd0b28a 100644 --- a/ext/crypto/encrypt.rs +++ b/ext/crypto/encrypt.rs @@ -71,20 +71,27 @@ pub enum EncryptAlgorithm { }, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum EncryptError { + #[class(inherit)] #[error(transparent)] - General(#[from] SharedError), + General(#[from] #[inherit] SharedError), + #[class(TYPE)] #[error("invalid length")] InvalidLength, + #[class("DOMExceptionOperationError")] #[error("invalid key or iv")] InvalidKeyOrIv, + #[class(TYPE)] #[error("iv length not equal to 12 or 16")] InvalidIvLength, + #[class(TYPE)] #[error("invalid counter length. Currently supported 32/64/128 bits")] InvalidCounterLength, + #[class("DOMExceptionOperationError")] #[error("tried to encrypt too much data")] TooMuchData, + #[class("DOMExceptionOperationError")] #[error("Encryption failed")] Failed, } diff --git a/ext/crypto/export_key.rs b/ext/crypto/export_key.rs index edf0d7239c70bb..4389bef9ca71ae 100644 --- a/ext/crypto/export_key.rs +++ b/ext/crypto/export_key.rs @@ -20,12 +20,15 @@ use spki::AlgorithmIdentifierOwned; use crate::shared::*; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum ExportKeyError { + #[class(inherit)] #[error(transparent)] - General(#[from] SharedError), + General(#[from] #[inherit] SharedError), + #[class(GENERIC)] #[error(transparent)] Der(#[from] spki::der::Error), + #[class("DOMExceptionNotSupportedError")] #[error("Unsupported named curve")] UnsupportedNamedCurve, } diff --git a/ext/crypto/generate_key.rs b/ext/crypto/generate_key.rs index 3c0bd77c22641c..7c0682c855ac77 100644 --- a/ext/crypto/generate_key.rs +++ b/ext/crypto/generate_key.rs @@ -15,10 +15,12 @@ use serde::Deserialize; use crate::shared::*; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class("DOMExceptionOperationError")] pub enum GenerateKeyError { + #[class(inherit)] #[error(transparent)] - General(#[from] SharedError), + General(#[from] #[inherit] SharedError), #[error("Bad public exponent")] BadPublicExponent, #[error("Invalid HMAC key length")] diff --git a/ext/crypto/import_key.rs b/ext/crypto/import_key.rs index 3463ca2beb34e9..e9aa6baaf130db 100644 --- a/ext/crypto/import_key.rs +++ b/ext/crypto/import_key.rs @@ -14,10 +14,12 @@ use spki::der::Decode; use crate::shared::*; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class("DOMExceptionDataError")] pub enum ImportKeyError { + #[class(inherit)] #[error(transparent)] - General(#[from] SharedError), + General(#[from] #[inherit] SharedError), #[error("invalid modulus")] InvalidModulus, #[error("invalid public exponent")] diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index 69dcd1413a0641..42b2b54de87725 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -6,7 +6,7 @@ use aes_kw::KekAes256; use base64::prelude::BASE64_URL_SAFE_NO_PAD; use base64::Engine; -use deno_core::error::not_supported; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::ToJsBuffer; @@ -132,63 +132,87 @@ deno_core::extension!(deno_crypto, }, ); -#[derive(Debug, thiserror::Error)] -pub enum Error { +#[derive(Debug, thiserror::Error, deno_core::JsError)] +pub enum CryptoError { + #[class(inherit)] #[error(transparent)] - General(#[from] SharedError), + General(#[from] #[inherit] SharedError), + #[class(inherit)] #[error(transparent)] - JoinError(#[from] tokio::task::JoinError), + JoinError(#[from] #[inherit] tokio::task::JoinError), + #[class(GENERIC)] #[error(transparent)] Der(#[from] rsa::pkcs1::der::Error), + #[class(TYPE)] #[error("Missing argument hash")] MissingArgumentHash, + #[class(TYPE)] #[error("Missing argument saltLength")] MissingArgumentSaltLength, + #[class(TYPE)] #[error("unsupported algorithm")] UnsupportedAlgorithm, + #[class(GENERIC)] #[error(transparent)] KeyRejected(#[from] ring::error::KeyRejected), + #[class(GENERIC)] #[error(transparent)] RSA(#[from] rsa::Error), + #[class(GENERIC)] #[error(transparent)] Pkcs1(#[from] rsa::pkcs1::Error), + #[class(GENERIC)] #[error(transparent)] Unspecified(#[from] ring::error::Unspecified), + #[class(TYPE)] #[error("Invalid key format")] InvalidKeyFormat, + #[class(GENERIC)] #[error(transparent)] P256Ecdsa(#[from] p256::ecdsa::Error), + #[class(TYPE)] #[error("Unexpected error decoding private key")] DecodePrivateKey, + #[class(TYPE)] #[error("Missing argument publicKey")] MissingArgumentPublicKey, + #[class(TYPE)] #[error("Missing argument namedCurve")] MissingArgumentNamedCurve, + #[class(TYPE)] #[error("Missing argument info")] MissingArgumentInfo, + #[class("DOMExceptionOperationError")] #[error("The length provided for HKDF is too large")] HKDFLengthTooLarge, + #[class(GENERIC)] #[error(transparent)] Base64Decode(#[from] base64::DecodeError), + #[class(TYPE)] #[error("Data must be multiple of 8 bytes")] DataInvalidSize, + #[class(TYPE)] #[error("Invalid key length")] InvalidKeyLength, + #[class("DOMExceptionOperationError")] #[error("encryption error")] EncryptionError, + #[class("DOMExceptionOperationError")] #[error("decryption error - integrity check failed")] DecryptionError, + #[class("DOMExceptionQuotaExceededError")] #[error("The ArrayBufferView's byte length ({0}) exceeds the number of bytes of entropy available via this API (65536)")] ArrayBufferViewLengthExceeded(usize), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[from] #[inherit] JsNativeError), } #[op2] #[serde] pub fn op_crypto_base64url_decode( #[string] data: String, -) -> Result { +) -> Result { let data: Vec = BASE64_URL_SAFE_NO_PAD.decode(data)?; Ok(data.into()) } @@ -204,9 +228,9 @@ pub fn op_crypto_base64url_encode(#[buffer] data: JsBuffer) -> String { pub fn op_crypto_get_random_values( state: &mut OpState, #[buffer] out: &mut [u8], -) -> Result<(), Error> { +) -> Result<(), CryptoError> { if out.len() > 65536 { - return Err(Error::ArrayBufferViewLengthExceeded(out.len())); + return Err(CryptoError::ArrayBufferViewLengthExceeded(out.len())); } let maybe_seeded_rng = state.try_borrow_mut::(); @@ -258,7 +282,7 @@ pub struct SignArg { pub async fn op_crypto_sign_key( #[serde] args: SignArg, #[buffer] zero_copy: JsBuffer, -) -> Result { +) -> Result { deno_core::unsync::spawn_blocking(move || { let data = &*zero_copy; let algorithm = args.algorithm; @@ -267,7 +291,7 @@ pub async fn op_crypto_sign_key( Algorithm::RsassaPkcs1v15 => { use rsa::pkcs1v15::SigningKey; let private_key = RsaPrivateKey::from_pkcs1_der(&args.key.data)?; - match args.hash.ok_or_else(|| Error::MissingArgumentHash)? { + match args.hash.ok_or_else(|| CryptoError::MissingArgumentHash)? { CryptoHash::Sha1 => { let signing_key = SigningKey::::new(private_key); signing_key.sign(data) @@ -292,11 +316,11 @@ pub async fn op_crypto_sign_key( let salt_len = args .salt_length - .ok_or_else(|| Error::MissingArgumentSaltLength)? + .ok_or_else(|| CryptoError::MissingArgumentSaltLength)? as usize; let mut rng = OsRng; - match args.hash.ok_or_else(|| Error::MissingArgumentHash)? { + match args.hash.ok_or_else(|| CryptoError::MissingArgumentHash)? { CryptoHash::Sha1 => { let signing_key = Pss::new_with_salt::(salt_len); let hashed = Sha1::digest(data); @@ -323,7 +347,7 @@ pub async fn op_crypto_sign_key( Algorithm::Ecdsa => { let curve: &EcdsaSigningAlgorithm = args .named_curve - .ok_or_else(|| Error::Other(not_supported()))? + .ok_or_else(|| JsNativeError::not_supported())? .into(); let rng = RingRand::SystemRandom::new(); @@ -333,7 +357,7 @@ pub async fn op_crypto_sign_key( if let Some(hash) = args.hash { match hash { CryptoHash::Sha256 | CryptoHash::Sha384 => (), - _ => return Err(Error::UnsupportedAlgorithm), + _ => return Err(CryptoError::UnsupportedAlgorithm), } }; @@ -345,7 +369,7 @@ pub async fn op_crypto_sign_key( Algorithm::Hmac => { let hash: HmacAlgorithm = args .hash - .ok_or_else(|| Error::Other(not_supported()))? + .ok_or_else(|| JsNativeError::not_supported())? .into(); let key = HmacKey::new(hash, &args.key.data); @@ -353,7 +377,7 @@ pub async fn op_crypto_sign_key( let signature = ring::hmac::sign(&key, data); signature.as_ref().to_vec() } - _ => return Err(Error::UnsupportedAlgorithm), + _ => return Err(CryptoError::UnsupportedAlgorithm), }; Ok(signature.into()) @@ -376,7 +400,7 @@ pub struct VerifyArg { pub async fn op_crypto_verify_key( #[serde] args: VerifyArg, #[buffer] zero_copy: JsBuffer, -) -> Result { +) -> Result { deno_core::unsync::spawn_blocking(move || { let data = &*zero_copy; let algorithm = args.algorithm; @@ -387,7 +411,7 @@ pub async fn op_crypto_verify_key( use rsa::pkcs1v15::VerifyingKey; let public_key = read_rsa_public_key(args.key)?; let signature: Signature = args.signature.as_ref().try_into()?; - match args.hash.ok_or_else(|| Error::MissingArgumentHash)? { + match args.hash.ok_or_else(|| CryptoError::MissingArgumentHash)? { CryptoHash::Sha1 => { let verifying_key = VerifyingKey::::new(public_key); verifying_key.verify(data, &signature).is_ok() @@ -412,10 +436,10 @@ pub async fn op_crypto_verify_key( let salt_len = args .salt_length - .ok_or_else(|| Error::MissingArgumentSaltLength)? + .ok_or_else(|| CryptoError::MissingArgumentSaltLength)? as usize; - match args.hash.ok_or_else(|| Error::MissingArgumentHash)? { + match args.hash.ok_or_else(|| CryptoError::MissingArgumentHash)? { CryptoHash::Sha1 => { let pss = Pss::new_with_salt::(salt_len); let hashed = Sha1::digest(data); @@ -441,7 +465,7 @@ pub async fn op_crypto_verify_key( Algorithm::Hmac => { let hash: HmacAlgorithm = args .hash - .ok_or_else(|| Error::Other(not_supported()))? + .ok_or_else(|| JsNativeError::not_supported())? .into(); let key = HmacKey::new(hash, &args.key.data); ring::hmac::verify(&key, data, &args.signature).is_ok() @@ -449,11 +473,11 @@ pub async fn op_crypto_verify_key( Algorithm::Ecdsa => { let signing_alg: &EcdsaSigningAlgorithm = args .named_curve - .ok_or_else(|| Error::Other(not_supported()))? + .ok_or_else(|| JsNativeError::not_supported())? .into(); let verify_alg: &EcdsaVerificationAlgorithm = args .named_curve - .ok_or_else(|| Error::Other(not_supported()))? + .ok_or_else(|| JsNativeError::not_supported())? .into(); let private_key; @@ -467,7 +491,7 @@ pub async fn op_crypto_verify_key( private_key.public_key().as_ref() } KeyType::Public => &*args.key.data, - _ => return Err(Error::InvalidKeyFormat), + _ => return Err(CryptoError::InvalidKeyFormat), }; let public_key = @@ -475,7 +499,7 @@ pub async fn op_crypto_verify_key( public_key.verify(data, &args.signature).is_ok() } - _ => return Err(Error::UnsupportedAlgorithm), + _ => return Err(CryptoError::UnsupportedAlgorithm), }; Ok(verification) @@ -503,20 +527,20 @@ pub struct DeriveKeyArg { pub async fn op_crypto_derive_bits( #[serde] args: DeriveKeyArg, #[buffer] zero_copy: Option, -) -> Result { +) -> Result { deno_core::unsync::spawn_blocking(move || { let algorithm = args.algorithm; match algorithm { Algorithm::Pbkdf2 => { let zero_copy = - zero_copy.ok_or_else(|| Error::Other(not_supported()))?; + zero_copy.ok_or_else(|| JsNativeError::not_supported())?; let salt = &*zero_copy; // The caller must validate these cases. assert!(args.length > 0); assert!(args.length % 8 == 0); let algorithm = - match args.hash.ok_or_else(|| Error::Other(not_supported()))? { + match args.hash.ok_or_else(|| JsNativeError::not_supported())? { CryptoHash::Sha1 => pbkdf2::PBKDF2_HMAC_SHA1, CryptoHash::Sha256 => pbkdf2::PBKDF2_HMAC_SHA256, CryptoHash::Sha384 => pbkdf2::PBKDF2_HMAC_SHA384, @@ -527,7 +551,7 @@ pub async fn op_crypto_derive_bits( let iterations = NonZeroU32::new( args .iterations - .ok_or_else(|| Error::Other(not_supported()))?, + .ok_or_else(|| JsNativeError::not_supported())?, ) .unwrap(); let secret = args.key.data; @@ -538,33 +562,33 @@ pub async fn op_crypto_derive_bits( Algorithm::Ecdh => { let named_curve = args .named_curve - .ok_or_else(|| Error::MissingArgumentNamedCurve)?; + .ok_or_else(|| CryptoError::MissingArgumentNamedCurve)?; let public_key = args .public_key - .ok_or_else(|| Error::MissingArgumentPublicKey)?; + .ok_or_else(|| CryptoError::MissingArgumentPublicKey)?; match named_curve { CryptoNamedCurve::P256 => { let secret_key = p256::SecretKey::from_pkcs8_der(&args.key.data) - .map_err(|_| Error::DecodePrivateKey)?; + .map_err(|_| CryptoError::DecodePrivateKey)?; let public_key = match public_key.r#type { KeyType::Private => { p256::SecretKey::from_pkcs8_der(&public_key.data) - .map_err(|_| Error::DecodePrivateKey)? + .map_err(|_| CryptoError::DecodePrivateKey)? .public_key() } KeyType::Public => { let point = p256::EncodedPoint::from_bytes(public_key.data) - .map_err(|_| Error::DecodePrivateKey)?; + .map_err(|_| CryptoError::DecodePrivateKey)?; let pk = p256::PublicKey::from_encoded_point(&point); // pk is a constant time Option. if pk.is_some().into() { pk.unwrap() } else { - return Err(Error::DecodePrivateKey); + return Err(CryptoError::DecodePrivateKey); } } _ => unreachable!(), @@ -580,24 +604,24 @@ pub async fn op_crypto_derive_bits( } CryptoNamedCurve::P384 => { let secret_key = p384::SecretKey::from_pkcs8_der(&args.key.data) - .map_err(|_| Error::DecodePrivateKey)?; + .map_err(|_| CryptoError::DecodePrivateKey)?; let public_key = match public_key.r#type { KeyType::Private => { p384::SecretKey::from_pkcs8_der(&public_key.data) - .map_err(|_| Error::DecodePrivateKey)? + .map_err(|_| CryptoError::DecodePrivateKey)? .public_key() } KeyType::Public => { let point = p384::EncodedPoint::from_bytes(public_key.data) - .map_err(|_| Error::DecodePrivateKey)?; + .map_err(|_| CryptoError::DecodePrivateKey)?; let pk = p384::PublicKey::from_encoded_point(&point); // pk is a constant time Option. if pk.is_some().into() { pk.unwrap() } else { - return Err(Error::DecodePrivateKey); + return Err(CryptoError::DecodePrivateKey); } } _ => unreachable!(), @@ -615,17 +639,17 @@ pub async fn op_crypto_derive_bits( } Algorithm::Hkdf => { let zero_copy = - zero_copy.ok_or_else(|| Error::Other(not_supported()))?; + zero_copy.ok_or_else(|| JsNativeError::not_supported())?; let salt = &*zero_copy; let algorithm = - match args.hash.ok_or_else(|| Error::Other(not_supported()))? { + match args.hash.ok_or_else(|| JsNativeError::not_supported())? { CryptoHash::Sha1 => hkdf::HKDF_SHA1_FOR_LEGACY_USE_ONLY, CryptoHash::Sha256 => hkdf::HKDF_SHA256, CryptoHash::Sha384 => hkdf::HKDF_SHA384, CryptoHash::Sha512 => hkdf::HKDF_SHA512, }; - let info = args.info.ok_or_else(|| Error::MissingArgumentInfo)?; + let info = args.info.ok_or_else(|| CryptoError::MissingArgumentInfo)?; // IKM let secret = args.key.data; // L @@ -636,18 +660,18 @@ pub async fn op_crypto_derive_bits( let info = &[&*info]; let okm = prk .expand(info, HkdfOutput(length)) - .map_err(|_e| Error::HKDFLengthTooLarge)?; + .map_err(|_e| CryptoError::HKDFLengthTooLarge)?; let mut r = vec![0u8; length]; okm.fill(&mut r)?; Ok(r.into()) } - _ => Err(Error::UnsupportedAlgorithm), + _ => Err(CryptoError::UnsupportedAlgorithm), } }) .await? } -fn read_rsa_public_key(key_data: KeyData) -> Result { +fn read_rsa_public_key(key_data: KeyData) -> Result { let public_key = match key_data.r#type { KeyType::Private => { RsaPrivateKey::from_pkcs1_der(&key_data.data)?.to_public_key() @@ -660,7 +684,9 @@ fn read_rsa_public_key(key_data: KeyData) -> Result { #[op2] #[string] -pub fn op_crypto_random_uuid(state: &mut OpState) -> Result { +pub fn op_crypto_random_uuid( + state: &mut OpState, +) -> Result { let maybe_seeded_rng = state.try_borrow_mut::(); let uuid = if let Some(seeded_rng) = maybe_seeded_rng { let mut bytes = [0u8; 16]; @@ -681,7 +707,7 @@ pub fn op_crypto_random_uuid(state: &mut OpState) -> Result { pub async fn op_crypto_subtle_digest( #[serde] algorithm: CryptoHash, #[buffer] data: JsBuffer, -) -> Result { +) -> Result { let output = spawn_blocking(move || { digest::digest(algorithm.into(), &data) .as_ref() @@ -705,7 +731,7 @@ pub struct WrapUnwrapKeyArg { pub fn op_crypto_wrap_key( #[serde] args: WrapUnwrapKeyArg, #[buffer] data: JsBuffer, -) -> Result { +) -> Result { let algorithm = args.algorithm; match algorithm { @@ -713,20 +739,20 @@ pub fn op_crypto_wrap_key( let key = args.key.as_secret_key()?; if data.len() % 8 != 0 { - return Err(Error::DataInvalidSize); + return Err(CryptoError::DataInvalidSize); } let wrapped_key = match key.len() { 16 => KekAes128::new(key.into()).wrap_vec(&data), 24 => KekAes192::new(key.into()).wrap_vec(&data), 32 => KekAes256::new(key.into()).wrap_vec(&data), - _ => return Err(Error::InvalidKeyLength), + _ => return Err(CryptoError::InvalidKeyLength), } - .map_err(|_| Error::EncryptionError)?; + .map_err(|_| CryptoError::EncryptionError)?; Ok(wrapped_key.into()) } - _ => Err(Error::UnsupportedAlgorithm), + _ => Err(CryptoError::UnsupportedAlgorithm), } } @@ -735,27 +761,27 @@ pub fn op_crypto_wrap_key( pub fn op_crypto_unwrap_key( #[serde] args: WrapUnwrapKeyArg, #[buffer] data: JsBuffer, -) -> Result { +) -> Result { let algorithm = args.algorithm; match algorithm { Algorithm::AesKw => { let key = args.key.as_secret_key()?; if data.len() % 8 != 0 { - return Err(Error::DataInvalidSize); + return Err(CryptoError::DataInvalidSize); } let unwrapped_key = match key.len() { 16 => KekAes128::new(key.into()).unwrap_vec(&data), 24 => KekAes192::new(key.into()).unwrap_vec(&data), 32 => KekAes256::new(key.into()).unwrap_vec(&data), - _ => return Err(Error::InvalidKeyLength), + _ => return Err(CryptoError::InvalidKeyLength), } - .map_err(|_| Error::DecryptionError)?; + .map_err(|_| CryptoError::DecryptionError)?; Ok(unwrapped_key.into()) } - _ => Err(Error::UnsupportedAlgorithm), + _ => Err(CryptoError::UnsupportedAlgorithm), } } diff --git a/ext/crypto/shared.rs b/ext/crypto/shared.rs index f70d32856ccb40..61b400f5982819 100644 --- a/ext/crypto/shared.rs +++ b/ext/crypto/shared.rs @@ -60,26 +60,36 @@ pub enum RustRawKeyData { Public(ToJsBuffer), } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum SharedError { + #[class(TYPE)] #[error("expected valid private key")] ExpectedValidPrivateKey, + #[class(TYPE)] #[error("expected valid public key")] ExpectedValidPublicKey, + #[class(TYPE)] #[error("expected valid private EC key")] ExpectedValidPrivateECKey, + #[class(TYPE)] #[error("expected valid public EC key")] ExpectedValidPublicECKey, + #[class(TYPE)] #[error("expected private key")] ExpectedPrivateKey, + #[class(TYPE)] #[error("expected public key")] ExpectedPublicKey, + #[class(TYPE)] #[error("expected secret key")] ExpectedSecretKey, + #[class("DOMExceptionOperationError")] #[error("failed to decode private key")] FailedDecodePrivateKey, + #[class("DOMExceptionOperationError")] #[error("failed to decode public key")] FailedDecodePublicKey, + #[class("DOMExceptionNotSupportedError")] #[error("unsupported format")] UnsupportedFormat, } diff --git a/ext/crypto/x25519.rs b/ext/crypto/x25519.rs index d2c4d986b98dec..3c8f4249f4e5b4 100644 --- a/ext/crypto/x25519.rs +++ b/ext/crypto/x25519.rs @@ -11,10 +11,12 @@ use spki::der::asn1::BitString; use spki::der::Decode; use spki::der::Encode; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum X25519Error { + #[class("DOMExceptionOperationError")] #[error("Failed to export key")] FailedExport, + #[class(GENERIC)] #[error(transparent)] Der(#[from] spki::der::Error), } diff --git a/ext/crypto/x448.rs b/ext/crypto/x448.rs index 89bf48e28bd1c0..764ad8acec1c29 100644 --- a/ext/crypto/x448.rs +++ b/ext/crypto/x448.rs @@ -12,10 +12,12 @@ use spki::der::asn1::BitString; use spki::der::Decode; use spki::der::Encode; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum X448Error { + #[class("DOMExceptionOperationError")] #[error("Failed to export key")] FailedExport, + #[class(GENERIC)] #[error(transparent)] Der(#[from] spki::der::Error), } diff --git a/ext/fetch/fs_fetch_handler.rs b/ext/fetch/fs_fetch_handler.rs index c236dd9c67127d..322e08d9dffd74 100644 --- a/ext/fetch/fs_fetch_handler.rs +++ b/ext/fetch/fs_fetch_handler.rs @@ -4,6 +4,7 @@ use crate::CancelHandle; use crate::CancelableResponseFuture; use crate::FetchHandler; +use deno_core::error::JsNativeError; use deno_core::futures::FutureExt; use deno_core::futures::TryFutureExt; use deno_core::futures::TryStreamExt; @@ -33,7 +34,7 @@ impl FetchHandler for FsFetchHandler { let file = tokio::fs::File::open(path).map_err(|_| ()).await?; let stream = ReaderStream::new(file) .map_ok(hyper::body::Frame::data) - .map_err(Into::into); + .map_err(JsNativeError::from_err); let body = http_body_util::StreamBody::new(stream).boxed(); let response = http::Response::builder() .status(StatusCode::OK) diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index 7ef26431c2b091..0577c6347df5f3 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -28,6 +28,7 @@ use deno_core::url; use deno_core::url::Url; use deno_core::AsyncRefCell; use deno_core::AsyncResult; +use deno_core::error::JsNativeError; use deno_core::BufView; use deno_core::ByteString; use deno_core::CancelFuture; @@ -86,7 +87,7 @@ pub struct Options { pub proxy: Option, #[allow(clippy::type_complexity)] pub request_builder_hook: Option< - fn(&mut http::Request) -> Result<(), deno_core::error::AnyError>, + fn(&mut http::Request) -> Result<(), JsNativeError>, >, pub unsafely_ignore_certificate_errors: Option>, pub client_cert_chain_and_key: TlsKeys, @@ -96,7 +97,7 @@ pub struct Options { impl Options { pub fn root_cert_store( &self, - ) -> Result, deno_core::error::AnyError> { + ) -> Result, JsNativeError> { Ok(match &self.root_cert_store_provider { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, @@ -145,47 +146,67 @@ deno_core::extension!(deno_fetch, }, ); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum FetchError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - Permission(#[from] PermissionCheckError), + Permission(#[from] #[inherit] PermissionCheckError), + #[class(TYPE)] #[error("NetworkError when attempting to fetch resource")] NetworkError, + #[class(TYPE)] #[error("Fetching files only supports the GET method: received {0}")] FsNotGet(Method), + #[class(TYPE)] #[error("Invalid URL {0}")] InvalidUrl(Url), + #[class(TYPE)] #[error(transparent)] InvalidHeaderName(#[from] http::header::InvalidHeaderName), + #[class(TYPE)] #[error(transparent)] InvalidHeaderValue(#[from] http::header::InvalidHeaderValue), + #[class(TYPE)] #[error("{0:?}")] DataUrl(data_url::DataUrlError), + #[class(TYPE)] #[error("{0:?}")] Base64(data_url::forgiving_base64::InvalidBase64), + #[class(TYPE)] #[error("Blob for the given URL not found.")] BlobNotFound, + #[class(TYPE)] #[error("Url scheme '{0}' not supported")] SchemeNotSupported(String), + #[class(TYPE)] #[error("Request was cancelled")] RequestCanceled, + #[class(GENERIC)] #[error(transparent)] Http(#[from] http::Error), + #[class(inherit)] #[error(transparent)] - ClientCreate(#[from] HttpClientCreateError), + ClientCreate(#[from] #[inherit] HttpClientCreateError), + #[class(inherit)] #[error(transparent)] - Url(#[from] url::ParseError), + Url(#[from] #[inherit] url::ParseError), + #[class(TYPE)] #[error(transparent)] Method(#[from] http::method::InvalidMethod), + #[class(TYPE)] #[error(transparent)] ClientSend(#[from] ClientSendError), + #[class(inherit)] #[error(transparent)] - RequestBuilderHook(deno_core::error::AnyError), + RequestBuilderHook(#[inherit] JsNativeError), + #[class(inherit)] #[error(transparent)] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), // Only used for node upgrade + #[class("Http")] #[error(transparent)] Hyper(#[from] hyper::Error), } @@ -274,9 +295,7 @@ pub fn create_client_from_options( #[allow(clippy::type_complexity)] pub struct ResourceToBodyAdapter( Rc, - Option< - Pin>>>, - >, + Option>>>>, ); impl ResourceToBodyAdapter { @@ -292,7 +311,7 @@ unsafe impl Send for ResourceToBodyAdapter {} unsafe impl Sync for ResourceToBodyAdapter {} impl Stream for ResourceToBodyAdapter { - type Item = Result; + type Item = Result; fn poll_next( self: Pin<&mut Self>, @@ -322,7 +341,7 @@ impl Stream for ResourceToBodyAdapter { impl hyper::body::Body for ResourceToBodyAdapter { type Data = Bytes; - type Error = deno_core::error::AnyError; + type Error = JsNativeError; fn poll_frame( self: Pin<&mut Self>, @@ -397,10 +416,7 @@ where FP: FetchPermissions + 'static, { let (client, allow_host) = if let Some(rid) = client_rid { - let r = state - .resource_table - .get::(rid) - .map_err(FetchError::Resource)?; + let r = state.resource_table.get::(rid)?; (r.client.clone(), r.allow_host) } else { (get_or_create_client_from_state(state)?, false) @@ -461,10 +477,7 @@ where .boxed() } (_, Some(resource)) => { - let resource = state - .resource_table - .take_any(resource) - .map_err(FetchError::Resource)?; + let resource = state.resource_table.take_any(resource)?; match resource.size_hint() { (body_size, Some(n)) if body_size == n && body_size > 0 => { con_len = Some(body_size); @@ -608,8 +621,7 @@ pub async fn op_fetch_send( let request = state .borrow_mut() .resource_table - .take::(rid) - .map_err(FetchError::Resource)?; + .take::(rid)?; let request = Rc::try_unwrap(request) .ok() @@ -789,7 +801,7 @@ impl Resource for FetchResponseResource { Some(_) => match reader.as_mut().next().await.unwrap() { Ok(chunk) => assert!(chunk.is_empty()), Err(err) => { - break Err(deno_core::error::type_error(err.to_string())) + break Err(JsNativeError::type_error(err.to_string())) } }, None => break Ok(BufView::empty()), @@ -798,7 +810,10 @@ impl Resource for FetchResponseResource { }; let cancel_handle = RcRef::map(self, |r| &r.cancel); - fut.try_or_cancel(cancel_handle).await + fut + .try_or_cancel(cancel_handle) + .await + .map_err(JsNativeError::from_err) }) } @@ -933,7 +948,8 @@ impl Default for CreateHttpClientOptions { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum HttpClientCreateError { #[error(transparent)] Tls(deno_tls::TlsError), @@ -943,8 +959,9 @@ pub enum HttpClientCreateError { InvalidProxyUrl, #[error("Cannot create Http Client: either `http1` or `http2` needs to be set to true")] HttpVersionSelectionInvalid, + #[class(inherit)] #[error(transparent)] - RootCertStore(deno_core::error::AnyError), + RootCertStore(#[inherit] JsNativeError), } /// Create new instance of async Client. This client supports @@ -1132,14 +1149,15 @@ impl Client { .oneshot(req) .await .map_err(|e| ClientSendError { uri, source: e })?; - Ok(resp.map(|b| b.map_err(|e| deno_core::anyhow::anyhow!(e)).boxed())) + Ok( + resp + .map(|b| b.map_err(|e| JsNativeError::generic(e.to_string())).boxed()), + ) } } -pub type ReqBody = - http_body_util::combinators::BoxBody; -pub type ResBody = - http_body_util::combinators::BoxBody; +pub type ReqBody = http_body_util::combinators::BoxBody; +pub type ResBody = http_body_util::combinators::BoxBody; /// Copied from https://github.com/seanmonstar/reqwest/blob/b9d62a0323d96f11672a61a17bf8849baec00275/src/async_impl/request.rs#L572 /// Check the request URL for a "username:password" type authority, and if diff --git a/ext/ffi/call.rs b/ext/ffi/call.rs index bbff0ee48f462d..6d06c73f4a43dd 100644 --- a/ext/ffi/call.rs +++ b/ext/ffi/call.rs @@ -23,20 +23,26 @@ use std::ffi::c_void; use std::future::Future; use std::rc::Rc; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CallError { + #[class(TYPE)] #[error(transparent)] IR(#[from] IRError), + #[class(GENERIC)] #[error("Nonblocking FFI call failed: {0}")] NonblockingCallFailure(#[source] tokio::task::JoinError), + #[class(TYPE)] #[error("Invalid FFI symbol name: '{0}'")] InvalidSymbol(String), + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - Callback(#[from] super::CallbackError), + Callback(#[from] #[inherit] super::CallbackError), } // SAFETY: Makes an FFI call @@ -344,10 +350,7 @@ pub fn op_ffi_call_nonblocking( ) -> Result>, CallError> { let symbol = { let state = state.borrow(); - let resource = state - .resource_table - .get::(rid) - .map_err(CallError::Resource)?; + let resource = state.resource_table.get::(rid)?; let symbols = &resource.symbols; *symbols .get(&symbol) diff --git a/ext/ffi/callback.rs b/ext/ffi/callback.rs index 29583c800cd36d..c7dde4d436605b 100644 --- a/ext/ffi/callback.rs +++ b/ext/ffi/callback.rs @@ -33,14 +33,17 @@ thread_local! { static LOCAL_THREAD_ID: RefCell = const { RefCell::new(0) }; } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CallbackError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[from] #[inherit] deno_core::error::JsNativeError), } #[derive(Clone)] @@ -61,13 +64,8 @@ impl PtrSymbol { .clone() .into_iter() .map(libffi::middle::Type::try_from) - .collect::, _>>() - .map_err(CallbackError::Other)?, - def - .result - .clone() - .try_into() - .map_err(CallbackError::Other)?, + .collect::, _>>()?, + def.result.clone().try_into()?, ); Ok(Self { cif, ptr }) @@ -538,10 +536,8 @@ pub fn op_ffi_unsafe_callback_ref( #[smi] rid: ResourceId, ) -> Result, CallbackError> { let state = state.borrow(); - let callback_resource = state - .resource_table - .get::(rid) - .map_err(CallbackError::Resource)?; + let callback_resource = + state.resource_table.get::(rid)?; Ok(async move { let info: &mut CallbackInfo = @@ -608,10 +604,8 @@ where .parameters .into_iter() .map(libffi::middle::Type::try_from) - .collect::, _>>() - .map_err(CallbackError::Other)?, - libffi::middle::Type::try_from(args.result) - .map_err(CallbackError::Other)?, + .collect::, _>>()?, + libffi::middle::Type::try_from(args.result)?, ); // SAFETY: CallbackInfo is leaked, is not null and stays valid as long as the callback exists. @@ -647,10 +641,8 @@ pub fn op_ffi_unsafe_callback_close( // It is up to the user to know that it is safe to call the `close()` on the // UnsafeCallback instance. unsafe { - let callback_resource = state - .resource_table - .take::(rid) - .map_err(CallbackError::Resource)?; + let callback_resource = + state.resource_table.take::(rid)?; let info = Box::from_raw(callback_resource.info); let _ = v8::Global::from_raw(scope, info.callback); let _ = v8::Global::from_raw(scope, info.context); diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index 55909468f81044..fec19a4c39accf 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -6,6 +6,8 @@ use crate::symbol::Symbol; use crate::turbocall; use crate::turbocall::Turbocall; use crate::FfiPermissions; +use deno_core::error::{JsErrorClass}; +use deno_core::error::{JsNativeError}; use deno_core::op2; use deno_core::v8; use deno_core::GarbageCollected; @@ -19,20 +21,33 @@ use std::collections::HashMap; use std::ffi::c_void; use std::rc::Rc; -#[derive(Debug, thiserror::Error)] +deno_core::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { + match err { + dlopen2::Error::NullCharacter(_) => "InvalidData", + dlopen2::Error::OpeningLibraryError(e) => e.get_class(), + dlopen2::Error::SymbolGettingError(e) => e.get_class(), + dlopen2::Error::AddrNotMatchingDll(e) => e.get_class(), + dlopen2::Error::NullSymbol => "NotFound", + }}); + +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum DlfcnError { + #[class(GENERIC)] #[error("Failed to register symbol {symbol}: {error}")] RegisterSymbol { symbol: String, #[source] error: dlopen2::Error, }, + #[class(GENERIC)] #[error(transparent)] Dlopen(#[from] dlopen2::Error), + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[from] #[inherit] JsNativeError), } pub struct DynamicLibraryResource { @@ -184,13 +199,8 @@ where .clone() .into_iter() .map(libffi::middle::Type::try_from) - .collect::, _>>() - .map_err(DlfcnError::Other)?, - foreign_fn - .result - .clone() - .try_into() - .map_err(DlfcnError::Other)?, + .collect::, _>>()?, + foreign_fn.result.clone().try_into()?, ); let func_key = v8::String::new(scope, &symbol_key).unwrap(); @@ -297,9 +307,7 @@ fn sync_fn_impl<'s>( unsafe { result.to_v8(scope, data.symbol.result_type.clone()) }; rv.set(result); } - Err(err) => { - deno_core::_ops::throw_type_error(scope, err.to_string()); - } + Err(err) => err.throw(scope), }; } diff --git a/ext/ffi/ir.rs b/ext/ffi/ir.rs index 2e80842166fa7e..307c168b994b78 100644 --- a/ext/ffi/ir.rs +++ b/ext/ffi/ir.rs @@ -6,7 +6,8 @@ use libffi::middle::Arg; use std::ffi::c_void; use std::ptr; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum IRError { #[error("Invalid FFI u8 type, expected boolean")] InvalidU8ExpectedBoolean, diff --git a/ext/ffi/repr.rs b/ext/ffi/repr.rs index fd8a2c8e707336..d8e1716417bebb 100644 --- a/ext/ffi/repr.rs +++ b/ext/ffi/repr.rs @@ -9,7 +9,8 @@ use std::ffi::c_void; use std::ffi::CStr; use std::ptr; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum ReprError { #[error("Invalid pointer to offset, pointer is null")] InvalidOffset, @@ -45,8 +46,9 @@ pub enum ReprError { InvalidF64, #[error("Invalid pointer pointer, pointer is null")] InvalidPointer, + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), } #[op2(fast)] diff --git a/ext/ffi/static.rs b/ext/ffi/static.rs index 61b40593367f31..dec4080ea39ff8 100644 --- a/ext/ffi/static.rs +++ b/ext/ffi/static.rs @@ -8,16 +8,20 @@ use deno_core::OpState; use deno_core::ResourceId; use std::ptr; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum StaticError { + #[class(inherit)] #[error(transparent)] - Dlfcn(super::DlfcnError), + Dlfcn(#[inherit] super::DlfcnError), + #[class(TYPE)] #[error("Invalid FFI static type 'void'")] InvalidTypeVoid, + #[class(TYPE)] #[error("Invalid FFI static type 'struct'")] InvalidTypeStruct, + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), } #[op2] @@ -29,10 +33,7 @@ pub fn op_ffi_get_static<'scope>( #[serde] static_type: NativeType, optional: bool, ) -> Result, StaticError> { - let resource = state - .resource_table - .get::(rid) - .map_err(StaticError::Resource)?; + let resource = state.resource_table.get::(rid)?; let data_ptr = match resource.get_static(name) { Ok(data_ptr) => data_ptr, diff --git a/ext/ffi/symbol.rs b/ext/ffi/symbol.rs index cee1c7d33e94c6..217e77f2c7b068 100644 --- a/ext/ffi/symbol.rs +++ b/ext/ffi/symbol.rs @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::type_error; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; /// Defines the accepted types that can be used as /// parameters and return values in FFI. @@ -29,7 +28,7 @@ pub enum NativeType { } impl TryFrom for libffi::middle::Type { - type Error = AnyError; + type Error = JsNativeError; fn try_from(native_type: NativeType) -> Result { Ok(match native_type { @@ -56,7 +55,7 @@ impl TryFrom for libffi::middle::Type { .map(|field| field.clone().try_into()) .collect::, _>>()?, false => { - return Err(type_error("Struct must have at least one field")) + return Err(JsNativeError::type_error("Struct must have at least one field")) } }) } diff --git a/ext/fs/ops.rs b/ext/fs/ops.rs index 9b76b49e613418..e843dbc6bc0b95 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -16,6 +16,8 @@ use crate::interface::FsDirEntry; use crate::interface::FsFileType; use crate::FsPermissions; use crate::OpenOptions; +use deno_core::error::JsNativeError; +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::CancelFuture; use deno_core::CancelHandle; @@ -32,31 +34,43 @@ use rand::thread_rng; use rand::Rng; use serde::Serialize; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum FsOpsError { + #[class(inherit)] #[error("{0}")] - Io(#[source] std::io::Error), + Io(#[source] #[inherit] std::io::Error), + #[class(inherit)] #[error("{0}")] - OperationError(#[source] OperationError), + OperationError(#[source] #[inherit] OperationError), + #[class(inherit)] #[error(transparent)] - Permission(#[from] PermissionCheckError), + Permission(#[from] #[inherit] PermissionCheckError), + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] ResourceError), + #[class("InvalidData")] #[error("File name or path {0:?} is not valid UTF-8")] InvalidUtf8(std::ffi::OsString), + #[class(GENERIC)] #[error("{0}")] StripPrefix(#[from] StripPrefixError), + #[class(inherit)] #[error("{0}")] - Canceled(#[from] deno_core::Canceled), + Canceled(#[from] #[inherit] deno_core::Canceled), + #[class(TYPE)] #[error("Invalid seek mode: {0}")] InvalidSeekMode(i32), + #[class(GENERIC)] #[error("Invalid control character in prefix or suffix: {0:?}")] InvalidControlCharacter(String), + #[class(GENERIC)] #[error("Invalid character in prefix or suffix: {0:?}")] InvalidCharacter(String), #[cfg(windows)] + #[class(GENERIC)] #[error("Invalid trailing character in suffix")] InvalidTrailingCharacter, + #[class("NotCapable")] #[error("Requires {err} access to {path}, {}", print_not_capable_info(*.standalone, .err))] NotCapableAccess { // NotCapable @@ -64,21 +78,21 @@ pub enum FsOpsError { err: &'static str, path: String, }, + #[class("NotCapable")] #[error("permission denied: {0}")] - NotCapable(&'static str), // NotCapable + NotCapable(&'static str), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[inherit] JsNativeError), } impl From for FsOpsError { fn from(err: FsError) -> Self { match err { FsError::Io(err) => FsOpsError::Io(err), - FsError::FileBusy => { - FsOpsError::Other(deno_core::error::resource_unavailable()) - } + FsError::FileBusy => FsOpsError::Resource(ResourceError::Unavailable), FsError::NotSupported => { - FsOpsError::Other(deno_core::error::not_supported()) + FsOpsError::Other(JsNativeError::not_supported()) } FsError::NotCapable(err) => FsOpsError::NotCapable(err), } @@ -1455,8 +1469,7 @@ pub fn op_fs_seek_sync( #[smi] whence: i32, ) -> Result { let pos = to_seek_from(offset, whence)?; - let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(state, rid)?; let cursor = file.seek_sync(pos)?; Ok(cursor) } @@ -1470,8 +1483,7 @@ pub async fn op_fs_seek_async( #[smi] whence: i32, ) -> Result { let pos = to_seek_from(offset, whence)?; - let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(&state.borrow(), rid)?; let cursor = file.seek_async(pos).await?; Ok(cursor) } @@ -1481,8 +1493,7 @@ pub fn op_fs_file_sync_data_sync( state: &mut OpState, #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { - let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(state, rid)?; file.datasync_sync()?; Ok(()) } @@ -1492,8 +1503,7 @@ pub async fn op_fs_file_sync_data_async( state: Rc>, #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { - let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(&state.borrow(), rid)?; file.datasync_async().await?; Ok(()) } @@ -1503,8 +1513,7 @@ pub fn op_fs_file_sync_sync( state: &mut OpState, #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { - let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(state, rid)?; file.sync_sync()?; Ok(()) } @@ -1514,8 +1523,7 @@ pub async fn op_fs_file_sync_async( state: Rc>, #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { - let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(&state.borrow(), rid)?; file.sync_async().await?; Ok(()) } @@ -1526,8 +1534,7 @@ pub fn op_fs_file_stat_sync( #[smi] rid: ResourceId, #[buffer] stat_out_buf: &mut [u32], ) -> Result<(), FsOpsError> { - let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(state, rid)?; let stat = file.stat_sync()?; let serializable_stat = SerializableStat::from(stat); serializable_stat.write(stat_out_buf); @@ -1540,8 +1547,7 @@ pub async fn op_fs_file_stat_async( state: Rc>, #[smi] rid: ResourceId, ) -> Result { - let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(&state.borrow(), rid)?; let stat = file.stat_async().await?; Ok(stat.into()) } @@ -1552,8 +1558,7 @@ pub fn op_fs_flock_sync( #[smi] rid: ResourceId, exclusive: bool, ) -> Result<(), FsOpsError> { - let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(state, rid)?; file.lock_sync(exclusive)?; Ok(()) } @@ -1564,8 +1569,7 @@ pub async fn op_fs_flock_async( #[smi] rid: ResourceId, exclusive: bool, ) -> Result<(), FsOpsError> { - let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(&state.borrow(), rid)?; file.lock_async(exclusive).await?; Ok(()) } @@ -1575,8 +1579,7 @@ pub fn op_fs_funlock_sync( state: &mut OpState, #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { - let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(state, rid)?; file.unlock_sync()?; Ok(()) } @@ -1586,8 +1589,7 @@ pub async fn op_fs_funlock_async( state: Rc>, #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { - let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(&state.borrow(), rid)?; file.unlock_async().await?; Ok(()) } @@ -1598,8 +1600,7 @@ pub fn op_fs_ftruncate_sync( #[smi] rid: ResourceId, #[number] len: u64, ) -> Result<(), FsOpsError> { - let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(state, rid)?; file.truncate_sync(len)?; Ok(()) } @@ -1610,8 +1611,7 @@ pub async fn op_fs_file_truncate_async( #[smi] rid: ResourceId, #[number] len: u64, ) -> Result<(), FsOpsError> { - let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(&state.borrow(), rid)?; file.truncate_async(len).await?; Ok(()) } @@ -1625,8 +1625,7 @@ pub fn op_fs_futime_sync( #[number] mtime_secs: i64, #[smi] mtime_nanos: u32, ) -> Result<(), FsOpsError> { - let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(state, rid)?; file.utime_sync(atime_secs, atime_nanos, mtime_secs, mtime_nanos)?; Ok(()) } @@ -1640,18 +1639,19 @@ pub async fn op_fs_futime_async( #[number] mtime_secs: i64, #[smi] mtime_nanos: u32, ) -> Result<(), FsOpsError> { - let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + let file = FileResource::get_file(&state.borrow(), rid)?; file .utime_async(atime_secs, atime_nanos, mtime_secs, mtime_nanos) .await?; Ok(()) } -#[derive(Debug)] +#[derive(Debug, deno_core::JsError)] +#[class(inherit)] pub struct OperationError { operation: &'static str, kind: OperationErrorKind, + #[inherit] pub err: FsError, } diff --git a/ext/http/http_next.rs b/ext/http/http_next.rs index c55e868352dd33..8ff0ef29bbc5e2 100644 --- a/ext/http/http_next.rs +++ b/ext/http/http_next.rs @@ -145,24 +145,32 @@ macro_rules! clone_external { }}; } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum HttpNextError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error("{0}")] - Io(#[from] io::Error), + Io(#[from] #[inherit] io::Error), + #[class(inherit)] #[error(transparent)] - WebSocketUpgrade(crate::websocket_upgrade::WebSocketUpgradeError), + WebSocketUpgrade(#[inherit] crate::websocket_upgrade::WebSocketUpgradeError), + #[class("Http")] #[error("{0}")] Hyper(#[from] hyper::Error), + #[class(inherit)] #[error(transparent)] - JoinError(#[from] tokio::task::JoinError), + JoinError(#[from] #[inherit] tokio::task::JoinError), + #[class(inherit)] #[error(transparent)] - Canceled(#[from] deno_core::Canceled), - #[error(transparent)] - HttpPropertyExtractor(deno_core::error::AnyError), + Canceled(#[from] #[inherit] deno_core::Canceled), + #[class(GENERIC)] #[error(transparent)] UpgradeUnavailable(#[from] crate::service::UpgradeUnavailableError), + #[class(inherit)] + #[error("{0}")] + Other(#[from] #[inherit] deno_core::error::JsNativeError), } #[op2(fast)] @@ -745,15 +753,9 @@ pub async fn op_http_set_response_body_resource( let resource = { let mut state = state.borrow_mut(); if auto_close { - state - .resource_table - .take_any(stream_rid) - .map_err(HttpNextError::Resource)? + state.resource_table.take_any(stream_rid)? } else { - state - .resource_table - .get_any(stream_rid) - .map_err(HttpNextError::Resource)? + state.resource_table.get_any(stream_rid)? } }; @@ -1033,8 +1035,7 @@ where HTTP: HttpPropertyExtractor, { let listener = - HTTP::get_listener_for_rid(&mut state.borrow_mut(), listener_rid) - .map_err(HttpNextError::Resource)?; + HTTP::get_listener_for_rid(&mut state.borrow_mut(), listener_rid)?; let listen_properties = HTTP::listen_properties_from_listener(&listener)?; @@ -1049,8 +1050,7 @@ where loop { let conn = HTTP::accept_connection_from_listener(&listener) .try_or_cancel(listen_cancel_clone.clone()) - .await - .map_err(HttpNextError::HttpPropertyExtractor)?; + .await?; serve_http_on::( conn, &listen_properties_clone, @@ -1084,8 +1084,7 @@ where HTTP: HttpPropertyExtractor, { let connection = - HTTP::get_connection_for_rid(&mut state.borrow_mut(), connection_rid) - .map_err(HttpNextError::Resource)?; + HTTP::get_connection_for_rid(&mut state.borrow_mut(), connection_rid)?; let listen_properties = HTTP::listen_properties_from_connection(&connection)?; @@ -1148,8 +1147,7 @@ pub async fn op_http_wait( let join_handle = state .borrow_mut() .resource_table - .get::(rid) - .map_err(HttpNextError::Resource)?; + .get::(rid)?; let cancel = join_handle.listen_cancel_handle(); let next = async { @@ -1194,7 +1192,7 @@ pub fn op_http_cancel( state: &mut OpState, #[smi] rid: ResourceId, graceful: bool, -) -> Result<(), deno_core::error::AnyError> { +) -> Result<(), deno_core::error::ResourceError> { let join_handle = state.resource_table.get::(rid)?; if graceful { @@ -1218,8 +1216,7 @@ pub async fn op_http_close( let join_handle = state .borrow_mut() .resource_table - .take::(rid) - .map_err(HttpNextError::Resource)?; + .take::(rid)?; if graceful { http_general_trace!("graceful shutdown"); @@ -1348,11 +1345,8 @@ pub async fn op_raw_write_vectored( #[buffer] buf1: JsBuffer, #[buffer] buf2: JsBuffer, ) -> Result { - let resource: Rc = state - .borrow() - .resource_table - .get::(rid) - .map_err(HttpNextError::Resource)?; + let resource: Rc = + state.borrow().resource_table.get::(rid)?; let nwritten = resource.write_vectored(&buf1, &buf2).await?; Ok(nwritten) } diff --git a/ext/http/lib.rs b/ext/http/lib.rs index 49893b1b921f21..428a730480634a 100644 --- a/ext/http/lib.rs +++ b/ext/http/lib.rs @@ -6,6 +6,7 @@ use async_compression::Level; use base64::prelude::BASE64_STANDARD; use base64::Engine; use cache_control::CacheControl; +use deno_core::error::JsNativeError; use deno_core::futures::channel::mpsc; use deno_core::futures::channel::oneshot; use deno_core::futures::future::pending; @@ -137,36 +138,50 @@ deno_core::extension!( esm = ["00_serve.ts", "01_http.js", "02_websocket.ts"], ); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum HttpError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - Canceled(#[from] deno_core::Canceled), + Canceled(#[from] #[inherit] deno_core::Canceled), + #[class("Http")] #[error("{0}")] HyperV014(#[source] Arc), + #[class(GENERIC)] #[error("{0}")] InvalidHeaderName(#[from] hyper_v014::header::InvalidHeaderName), + #[class(GENERIC)] #[error("{0}")] InvalidHeaderValue(#[from] hyper_v014::header::InvalidHeaderValue), + #[class(GENERIC)] #[error("{0}")] Http(#[from] hyper_v014::http::Error), + #[class("Http")] #[error("response headers already sent")] ResponseHeadersAlreadySent, + #[class("Http")] #[error("connection closed while sending response")] ConnectionClosedWhileSendingResponse, + #[class("Http")] #[error("already in use")] AlreadyInUse, + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), + #[class("Http")] #[error("no response headers")] NoResponseHeaders, + #[class("Http")] #[error("response already completed")] ResponseAlreadyCompleted, + #[class("Http")] #[error("cannot upgrade because request body was used")] UpgradeBodyUsed, + #[class("Http")] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[from] JsNativeError), } pub enum HttpSocketAddr { @@ -458,7 +473,9 @@ impl Resource for HttpStreamReadResource { Some(_) => match body.as_mut().next().await.unwrap() { Ok(chunk) => assert!(chunk.is_empty()), Err(err) => { - break Err(HttpError::HyperV014(Arc::new(err)).into()) + break Err(JsNativeError::from_err(HttpError::HyperV014( + Arc::new(err), + ))) } }, None => break Ok(BufView::empty()), @@ -582,11 +599,7 @@ async fn op_http_accept( state: Rc>, #[smi] rid: ResourceId, ) -> Result, HttpError> { - let conn = state - .borrow() - .resource_table - .get::(rid) - .map_err(HttpError::Resource)?; + let conn = state.borrow().resource_table.get::(rid)?; match conn.accept().await { Ok(Some((read_stream, write_stream, method, url))) => { @@ -701,8 +714,7 @@ async fn op_http_write_headers( let stream = state .borrow_mut() .resource_table - .get::(rid) - .map_err(HttpError::Resource)?; + .get::(rid)?; // Track supported encoding let encoding = stream.accept_encoding; @@ -767,10 +779,7 @@ fn op_http_headers( state: &mut OpState, #[smi] rid: u32, ) -> Result, HttpError> { - let stream = state - .resource_table - .get::(rid) - .map_err(HttpError::Resource)?; + let stream = state.resource_table.get::(rid)?; let rd = RcRef::map(&stream, |r| &r.rd) .try_borrow() .ok_or(HttpError::AlreadyInUse)?; @@ -926,14 +935,9 @@ async fn op_http_write_resource( let http_stream = state .borrow() .resource_table - .get::(rid) - .map_err(HttpError::Resource)?; + .get::(rid)?; let mut wr = RcRef::map(&http_stream, |r| &r.wr).borrow_mut().await; - let resource = state - .borrow() - .resource_table - .get_any(stream) - .map_err(HttpError::Resource)?; + let resource = state.borrow().resource_table.get_any(stream)?; loop { match *wr { HttpResponseWriter::Headers(_) => { @@ -945,11 +949,7 @@ async fn op_http_write_resource( _ => {} }; - let view = resource - .clone() - .read(64 * 1024) - .await - .map_err(HttpError::Other)?; // 64KB + let view = resource.clone().read(64 * 1024).await?; // 64KB if view.is_empty() { break; } @@ -994,8 +994,7 @@ async fn op_http_write( let stream = state .borrow() .resource_table - .get::(rid) - .map_err(HttpError::Resource)?; + .get::(rid)?; let mut wr = RcRef::map(&stream, |r| &r.wr).borrow_mut().await; match &mut *wr { @@ -1047,8 +1046,7 @@ async fn op_http_shutdown( let stream = state .borrow() .resource_table - .get::(rid) - .map_err(HttpError::Resource)?; + .get::(rid)?; let mut wr = RcRef::map(&stream, |r| &r.wr).borrow_mut().await; let wr = take(&mut *wr); match wr { @@ -1094,8 +1092,7 @@ async fn op_http_upgrade_websocket( let stream = state .borrow_mut() .resource_table - .get::(rid) - .map_err(HttpError::Resource)?; + .get::(rid)?; let mut rd = RcRef::map(&stream, |r| &r.rd).borrow_mut().await; let request = match &mut *rd { diff --git a/ext/http/request_body.rs b/ext/http/request_body.rs index f1c3f358ea977b..f071318704fcd4 100644 --- a/ext/http/request_body.rs +++ b/ext/http/request_body.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use bytes::Bytes; +use deno_core::error::JsNativeError; use deno_core::futures::stream::Peekable; use deno_core::futures::Stream; use deno_core::futures::StreamExt; @@ -82,7 +83,10 @@ impl Resource for HttpRequestBody { } fn read(self: Rc, limit: usize) -> AsyncResult { - Box::pin(HttpRequestBody::read(self, limit).map_err(Into::into)) + Box::pin( + HttpRequestBody::read(self, limit) + .map_err(|e| JsNativeError::new("Http", e.to_string())), + ) } fn size_hint(&self) -> (u64, Option) { diff --git a/ext/http/request_properties.rs b/ext/http/request_properties.rs index 39d35a79f14b82..4f01664a9a91dd 100644 --- a/ext/http/request_properties.rs +++ b/ext/http/request_properties.rs @@ -1,5 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::OpState; use deno_core::ResourceId; use deno_net::raw::take_network_stream_listener_resource; @@ -49,13 +49,13 @@ pub trait HttpPropertyExtractor { fn get_listener_for_rid( state: &mut OpState, listener_rid: ResourceId, - ) -> Result; + ) -> Result; /// Given a connection [`ResourceId`], returns the [`HttpPropertyExtractor::Connection`]. fn get_connection_for_rid( state: &mut OpState, connection_rid: ResourceId, - ) -> Result; + ) -> Result; /// Determines the listener properties. fn listen_properties_from_listener( @@ -70,7 +70,7 @@ pub trait HttpPropertyExtractor { /// Accept a new [`HttpPropertyExtractor::Connection`] from the given listener [`HttpPropertyExtractor::Listener`]. async fn accept_connection_from_listener( listener: &Self::Listener, - ) -> Result; + ) -> Result; /// Determines the connection properties. fn connection_properties( @@ -102,7 +102,7 @@ impl HttpPropertyExtractor for DefaultHttpPropertyExtractor { fn get_listener_for_rid( state: &mut OpState, listener_rid: ResourceId, - ) -> Result { + ) -> Result { take_network_stream_listener_resource( &mut state.resource_table, listener_rid, @@ -112,17 +112,18 @@ impl HttpPropertyExtractor for DefaultHttpPropertyExtractor { fn get_connection_for_rid( state: &mut OpState, stream_rid: ResourceId, - ) -> Result { + ) -> Result { take_network_stream_resource(&mut state.resource_table, stream_rid) + .map_err(JsNativeError::from_err) } async fn accept_connection_from_listener( listener: &NetworkStreamListener, - ) -> Result { + ) -> Result { listener .accept() .await - .map_err(Into::into) + .map_err(JsNativeError::from_err) .map(|(stm, _)| stm) } diff --git a/ext/http/response_body.rs b/ext/http/response_body.rs index bac43bf3c8be39..3826a27cb48a14 100644 --- a/ext/http/response_body.rs +++ b/ext/http/response_body.rs @@ -9,7 +9,7 @@ use brotli::enc::encode::BrotliEncoderStateStruct; use brotli::writer::StandardAlloc; use bytes::Bytes; use bytes::BytesMut; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::futures::ready; use deno_core::futures::FutureExt; use deno_core::AsyncResult; @@ -32,10 +32,12 @@ pub enum ResponseStreamResult { /// will only be returned from compression streams that require additional buffering. NoData, /// Stream failed. - Error(AnyError), + Error(JsNativeError), } -impl From for Option, AnyError>> { +impl From + for Option, JsNativeError>> +{ fn from(value: ResponseStreamResult) -> Self { match value { ResponseStreamResult::EndOfStream => None, @@ -411,7 +413,9 @@ impl PollFrame for GZipResponseStream { }; let len = stm.total_out() - start_out; let res = match res { - Err(err) => ResponseStreamResult::Error(err.into()), + Err(err) => { + ResponseStreamResult::Error(JsNativeError::generic(err.to_string())) + } Ok(flate2::Status::BufError) => { // This should not happen unreachable!("old={orig_state:?} new={state:?} buf_len={}", buf.len()); diff --git a/ext/http/service.rs b/ext/http/service.rs index ce24dea43f372c..793f69443f0f79 100644 --- a/ext/http/service.rs +++ b/ext/http/service.rs @@ -14,6 +14,7 @@ use hyper::body::SizeHint; use hyper::header::HeaderMap; use hyper::upgrade::OnUpgrade; +use deno_core::error::JsNativeError; use scopeguard::guard; use scopeguard::ScopeGuard; use std::cell::Cell; @@ -528,7 +529,7 @@ pub struct HttpRecordResponse(ManuallyDrop>); impl Body for HttpRecordResponse { type Data = BufView; - type Error = deno_core::error::AnyError; + type Error = JsNativeError; fn poll_frame( self: Pin<&mut Self>, diff --git a/ext/http/websocket_upgrade.rs b/ext/http/websocket_upgrade.rs index af9504717e3948..cc7c48bc32f123 100644 --- a/ext/http/websocket_upgrade.rs +++ b/ext/http/websocket_upgrade.rs @@ -12,22 +12,30 @@ use memmem::Searcher; use memmem::TwoWaySearcher; use once_cell::sync::OnceCell; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum WebSocketUpgradeError { + #[class("Http")] #[error("invalid headers")] InvalidHeaders, + #[class(GENERIC)] #[error("{0}")] HttpParse(#[from] httparse::Error), + #[class(GENERIC)] #[error("{0}")] Http(#[from] http::Error), + #[class(GENERIC)] #[error("{0}")] Utf8(#[from] std::str::Utf8Error), + #[class(GENERIC)] #[error("{0}")] InvalidHeaderName(#[from] http::header::InvalidHeaderName), + #[class(GENERIC)] #[error("{0}")] InvalidHeaderValue(#[from] http::header::InvalidHeaderValue), + #[class("Http")] #[error("invalid HTTP status line")] InvalidHttpStatusLine, + #[class("Http")] #[error("attempted to write to completed upgrade buffer")] UpgradeBufferAlreadyCompleted, } diff --git a/ext/io/fs.rs b/ext/io/fs.rs index 8854265209cd6c..d6a052820e3cc9 100644 --- a/ext/io/fs.rs +++ b/ext/io/fs.rs @@ -9,16 +9,21 @@ use std::time::UNIX_EPOCH; use deno_core::BufMutView; use deno_core::BufView; +use deno_core::error::{JsNativeError, ResourceError}; use deno_core::OpState; use deno_core::ResourceHandleFd; use deno_core::ResourceId; use tokio::task::JoinError; -#[derive(Debug)] +#[derive(Debug, deno_core::JsError)] pub enum FsError { - Io(io::Error), + #[class(inherit)] + Io(#[inherit] io::Error), + #[class("Busy")] FileBusy, + #[class("NotSupported")] NotSupported, + #[class("NotCapable")] NotCapable(&'static str), } @@ -265,18 +270,21 @@ impl FileResource { state: &OpState, rid: ResourceId, f: F, - ) -> Result + ) -> Result where - F: FnOnce(Rc) -> Result, + F: FnOnce(Rc) -> Result, { - let resource = state.resource_table.get::(rid)?; + let resource = state + .resource_table + .get::(rid) + .map_err(JsNativeError::from_err)?; f(resource) } pub fn get_file( state: &OpState, rid: ResourceId, - ) -> Result, deno_core::error::AnyError> { + ) -> Result, ResourceError> { let resource = state.resource_table.get::(rid)?; Ok(resource.file()) } @@ -285,9 +293,9 @@ impl FileResource { state: &OpState, rid: ResourceId, f: F, - ) -> Result + ) -> Result where - F: FnOnce(Rc) -> Result, + F: FnOnce(Rc) -> Result, { Self::with_resource(state, rid, |r| f(r.file.clone())) } @@ -309,7 +317,7 @@ impl deno_core::Resource for FileResource { .clone() .read(limit) .await - .map_err(|err| err.into()) + .map_err(JsNativeError::from_err) }) } @@ -323,7 +331,7 @@ impl deno_core::Resource for FileResource { .clone() .read_byob(buf) .await - .map_err(|err| err.into()) + .map_err(JsNativeError::from_err) }) } @@ -332,7 +340,12 @@ impl deno_core::Resource for FileResource { buf: BufView, ) -> deno_core::AsyncResult { Box::pin(async move { - self.file.clone().write(buf).await.map_err(|err| err.into()) + self + .file + .clone() + .write(buf) + .await + .map_err(JsNativeError::from_err) }) } @@ -343,22 +356,27 @@ impl deno_core::Resource for FileResource { .clone() .write_all(buf) .await - .map_err(|err| err.into()) + .map_err(JsNativeError::from_err) }) } fn read_byob_sync( self: Rc, data: &mut [u8], - ) -> Result { - self.file.clone().read_sync(data).map_err(|err| err.into()) + ) -> Result { + self + .file + .clone() + .read_sync(data) + .map_err(JsNativeError::from_err) } - fn write_sync( - self: Rc, - data: &[u8], - ) -> Result { - self.file.clone().write_sync(data).map_err(|err| err.into()) + fn write_sync(self: Rc, data: &[u8]) -> Result { + self + .file + .clone() + .write_sync(data) + .map_err(JsNativeError::from_err) } fn backing_fd(self: Rc) -> Option { diff --git a/ext/io/lib.rs b/ext/io/lib.rs index 5d183aa464d885..33163effd95f6b 100644 --- a/ext/io/lib.rs +++ b/ext/io/lib.rs @@ -47,6 +47,7 @@ use winapi::um::processenv::GetStdHandle; #[cfg(windows)] use winapi::um::winbase; +use deno_core::error::JsNativeError; use deno_core::futures::TryFutureExt; #[cfg(windows)] use parking_lot::Condvar; @@ -417,7 +418,7 @@ impl Resource for ChildStdinResource { deno_core::impl_writable!(); fn shutdown(self: Rc) -> AsyncResult<()> { - Box::pin(self.shutdown().map_err(|e| e.into())) + Box::pin(self.shutdown().map_err(JsNativeError::from_err)) } } @@ -1010,9 +1011,13 @@ pub fn op_print( state: &mut OpState, #[string] msg: &str, is_err: bool, -) -> Result<(), deno_core::error::AnyError> { +) -> Result<(), JsNativeError> { let rid = if is_err { 2 } else { 1 }; FileResource::with_file(state, rid, move |file| { - Ok(file.write_all_sync(msg.as_bytes())?) + Ok( + file + .write_all_sync(msg.as_bytes()) + .map_err(JsNativeError::from_err)?, + ) }) } diff --git a/ext/kv/dynamic.rs b/ext/kv/dynamic.rs index 6d545d79f6407f..14f6066a063398 100644 --- a/ext/kv/dynamic.rs +++ b/ext/kv/dynamic.rs @@ -13,8 +13,8 @@ use crate::QueueMessageHandle; use crate::ReadRange; use crate::SnapshotReadOptions; use async_trait::async_trait; -use deno_core::error::type_error; use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::OpState; use denokv_proto::CommitResult; use denokv_proto::ReadRangeOutput; @@ -62,7 +62,7 @@ impl DatabaseHandler for MultiBackendDbHandler { &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { for (prefixes, handler) in &self.backends { for &prefix in *prefixes { if prefix.is_empty() { @@ -76,7 +76,7 @@ impl DatabaseHandler for MultiBackendDbHandler { } } } - Err(type_error(format!( + Err(JsNativeError::type_error(format!( "No backend supports the given path: {:?}", path ))) @@ -89,7 +89,7 @@ pub trait DynamicDbHandler { &self, state: Rc>, path: Option, - ) -> Result; + ) -> Result; } #[async_trait(?Send)] @@ -100,7 +100,7 @@ impl DatabaseHandler for Box { &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { (**self).dyn_open(state, path).await } } @@ -115,7 +115,7 @@ where &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { Ok(RcDynamicDb(Rc::new(self.open(state, path).await?))) } } diff --git a/ext/kv/interface.rs b/ext/kv/interface.rs index 9737a9366d3d1f..774aac56d74e8b 100644 --- a/ext/kv/interface.rs +++ b/ext/kv/interface.rs @@ -4,7 +4,7 @@ use std::cell::RefCell; use std::rc::Rc; use async_trait::async_trait; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::OpState; use denokv_proto::Database; @@ -16,5 +16,5 @@ pub trait DatabaseHandler { &self, state: Rc>, path: Option, - ) -> Result; + ) -> Result; } diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs index a4ccfe3d63f5c9..e390a3b23b4862 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -16,7 +16,8 @@ use base64::prelude::BASE64_URL_SAFE; use base64::Engine; use chrono::DateTime; use chrono::Utc; -use deno_core::error::get_custom_error_class; +use deno_core::error::JsErrorClass; +use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::op2; use deno_core::serde_v8::AnyValue; @@ -114,62 +115,90 @@ impl Resource for DatabaseWatcherResource { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum KvError { + #[class(inherit)] #[error(transparent)] - DatabaseHandler(deno_core::error::AnyError), + DatabaseHandler( #[inherit] JsNativeError), + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(TYPE)] #[error("Too many ranges (max {0})")] TooManyRanges(usize), + #[class(TYPE)] #[error("Too many entries (max {0})")] TooManyEntries(usize), + #[class(TYPE)] #[error("Too many checks (max {0})")] TooManyChecks(usize), + #[class(TYPE)] #[error("Too many mutations (max {0})")] TooManyMutations(usize), + #[class(TYPE)] #[error("Too many keys (max {0})")] TooManyKeys(usize), + #[class(TYPE)] #[error("limit must be greater than 0")] InvalidLimit, + #[class(TYPE)] #[error("Invalid boundary key")] InvalidBoundaryKey, + #[class(TYPE)] #[error("Key too large for read (max {0} bytes)")] KeyTooLargeToRead(usize), + #[class(TYPE)] #[error("Key too large for write (max {0} bytes)")] KeyTooLargeToWrite(usize), + #[class(TYPE)] #[error("Total mutation size too large (max {0} bytes)")] TotalMutationTooLarge(usize), + #[class(TYPE)] #[error("Total key size too large (max {0} bytes)")] TotalKeyTooLarge(usize), + #[class(GENERIC)] #[error(transparent)] Kv(deno_core::error::AnyError), + #[class(inherit)] #[error(transparent)] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), + #[class(TYPE)] #[error("Queue message not found")] QueueMessageNotFound, + #[class(TYPE)] #[error("Start key is not in the keyspace defined by prefix")] StartKeyNotInKeyspace, + #[class(TYPE)] #[error("End key is not in the keyspace defined by prefix")] EndKeyNotInKeyspace, + #[class(TYPE)] #[error("Start key is greater than end key")] StartKeyGreaterThanEndKey, + #[class(inherit)] #[error("Invalid check")] - InvalidCheck(#[source] KvCheckError), + InvalidCheck(#[source] #[inherit] KvCheckError), + #[class(inherit)] #[error("Invalid mutation")] - InvalidMutation(#[source] KvMutationError), + InvalidMutation(#[source]#[inherit] KvMutationError), + #[class(inherit)] #[error("Invalid enqueue")] - InvalidEnqueue(#[source] std::io::Error), + InvalidEnqueue(#[source] #[inherit] std::io::Error), + #[class(TYPE)] #[error("key cannot be empty")] - EmptyKey, // TypeError + EmptyKey, + #[class(TYPE)] #[error("Value too large (max {0} bytes)")] - ValueTooLarge(usize), // TypeError + ValueTooLarge(usize), + #[class(TYPE)] #[error("enqueue payload too large (max {0} bytes)")] - EnqueuePayloadTooLarge(usize), // TypeError + EnqueuePayloadTooLarge(usize), + #[class(TYPE)] #[error("invalid cursor")] InvalidCursor, + #[class(TYPE)] #[error("cursor out of bounds")] CursorOutOfBounds, + #[class(TYPE)] #[error("Invalid range")] InvalidRange, } @@ -326,10 +355,8 @@ where { let db = { let state = state.borrow(); - let resource = state - .resource_table - .get::>(rid) - .map_err(KvError::Resource)?; + let resource = + state.resource_table.get::>(rid)?; resource.db.clone() }; @@ -412,7 +439,7 @@ where match state.resource_table.get::>(rid) { Ok(resource) => resource, Err(err) => { - if get_custom_error_class(&err) == Some("BadResource") { + if err.get_class() == "BadResource" { return Ok(None); } else { return Err(KvError::Resource(err)); @@ -445,10 +472,7 @@ fn op_kv_watch( where DBH: DatabaseHandler + 'static, { - let resource = state - .resource_table - .get::>(rid) - .map_err(KvError::Resource)?; + let resource = state.resource_table.get::>(rid)?; let config = state.borrow::>().clone(); if keys.len() > config.max_watched_keys { @@ -490,10 +514,7 @@ async fn op_kv_watch_next( ) -> Result>, KvError> { let resource = { let state = state.borrow(); - let resource = state - .resource_table - .get::(rid) - .map_err(KvError::Resource)?; + let resource = state.resource_table.get::(rid)?; resource.clone() }; @@ -562,12 +583,14 @@ where Ok(()) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum KvCheckError { + #[class(TYPE)] #[error("invalid versionstamp")] InvalidVersionstamp, + #[class(inherit)] #[error(transparent)] - Io(std::io::Error), + Io(#[inherit] std::io::Error), } type V8KvCheck = (KvKey, Option); @@ -591,14 +614,18 @@ fn check_from_v8(value: V8KvCheck) -> Result { }) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum KvMutationError { + #[class(GENERIC)] #[error(transparent)] BigInt(#[from] num_bigint::TryFromBigIntError), + #[class(inherit)] #[error(transparent)] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), + #[class(TYPE)] #[error("Invalid mutation '{0}' with value")] InvalidMutationWithValue(String), + #[class(TYPE)] #[error("Invalid mutation '{0}' without value")] InvalidMutationWithoutValue(String), } @@ -852,10 +879,8 @@ where let current_timestamp = chrono::Utc::now(); let db = { let state = state.borrow(); - let resource = state - .resource_table - .get::>(rid) - .map_err(KvError::Resource)?; + let resource = + state.resource_table.get::>(rid)?; resource.db.clone() }; diff --git a/ext/kv/remote.rs b/ext/kv/remote.rs index 4930aacfe355c6..9e3c4e23bbb24a 100644 --- a/ext/kv/remote.rs +++ b/ext/kv/remote.rs @@ -9,9 +9,8 @@ use crate::DatabaseHandler; use anyhow::Context; use async_trait::async_trait; use bytes::Bytes; -use deno_core::error::type_error; -use deno_core::error::AnyError; -use deno_core::futures::Stream; +use deno_core::error::JsNativeError; +use deno_core::futures::{Stream, TryStreamExt}; use deno_core::OpState; use deno_fetch::create_http_client; use deno_fetch::CreateHttpClientOptions; @@ -37,7 +36,7 @@ pub struct HttpOptions { } impl HttpOptions { - pub fn root_cert_store(&self) -> Result, AnyError> { + pub fn root_cert_store(&self) -> Result, JsNativeError> { Ok(match &self.root_cert_store_provider { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, @@ -143,7 +142,7 @@ impl RemoteResponse for FetchResponse { fn stream( self, ) -> impl Stream> + Send + Sync { - self.0.into_body().into_data_stream() + self.0.into_body().into_data_stream().map_err(anyhow::Error::from) } async fn text(self) -> Result { let bytes = self.bytes().await?; @@ -161,29 +160,29 @@ impl DatabaseHandler &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { const ENV_VAR_NAME: &str = "DENO_KV_ACCESS_TOKEN"; let Some(url) = path else { - return Err(type_error("Missing database url")); + return Err(JsNativeError::type_error("Missing database url")); }; let Ok(parsed_url) = Url::parse(&url) else { - return Err(type_error(format!("Invalid database url: {}", url))); + return Err(JsNativeError::type_error(format!("Invalid database url: {}", url))); }; { let mut state = state.borrow_mut(); let permissions = state.borrow_mut::

(); - permissions.check_env(ENV_VAR_NAME)?; - permissions.check_net_url(&parsed_url, "Deno.openKv")?; + permissions.check_env(ENV_VAR_NAME).map_err(JsNativeError::from_err)?; + permissions.check_net_url(&parsed_url, "Deno.openKv").map_err(JsNativeError::from_err)?; } let access_token = std::env::var(ENV_VAR_NAME) .map_err(anyhow::Error::from) .with_context(|| { "Missing DENO_KV_ACCESS_TOKEN environment variable. Please set it to your access token from https://dash.deno.com/account." - })?; + }).map_err(|e| JsNativeError::generic(e.to_string()))?; let metadata_endpoint = MetadataEndpoint { url: parsed_url.clone(), @@ -210,7 +209,7 @@ impl DatabaseHandler http1: false, http2: true, }, - )?; + ).map_err(JsNativeError::from_err)?; let fetch_client = FetchClient(client); let permissions = PermissionChecker { diff --git a/ext/kv/sqlite.rs b/ext/kv/sqlite.rs index 9de5209275c28c..4a3476e0b5b613 100644 --- a/ext/kv/sqlite.rs +++ b/ext/kv/sqlite.rs @@ -15,8 +15,7 @@ use std::sync::OnceLock; use crate::DatabaseHandler; use async_trait::async_trait; -use deno_core::error::type_error; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::unsync::spawn_blocking; use deno_core::OpState; use deno_path_util::normalize_path; @@ -84,6 +83,8 @@ impl SqliteDbHandler

{ } } +deno_core::js_error_wrapper!(SqliteBackendError, JsSqliteBackendError, "TypeError"); + #[async_trait(?Send)] impl DatabaseHandler for SqliteDbHandler

{ type DB = denokv_sqlite::Sqlite; @@ -92,12 +93,12 @@ impl DatabaseHandler for SqliteDbHandler

{ &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"] fn validate_path( state: &RefCell, path: Option, - ) -> Result, AnyError> { + ) -> Result, JsNativeError> { let Some(path) = path else { return Ok(None); }; @@ -105,18 +106,22 @@ impl DatabaseHandler for SqliteDbHandler

{ return Ok(Some(path)); } if path.is_empty() { - return Err(type_error("Filename cannot be empty")); + return Err(JsNativeError::type_error("Filename cannot be empty")); } if path.starts_with(':') { - return Err(type_error( + return Err(JsNativeError::type_error( "Filename cannot start with ':' unless prefixed with './'", )); } { let mut state = state.borrow_mut(); let permissions = state.borrow_mut::

(); - let path = permissions.check_read(&path, "Deno.openKv")?; - let path = permissions.check_write(&path, "Deno.openKv")?; + let path = permissions + .check_read(&path, "Deno.openKv") + .map_err(JsNativeError::from_err)?; + let path = permissions + .check_write(&path, "Deno.openKv") + .map_err(JsNativeError::from_err)?; Ok(Some(path.to_string_lossy().to_string())) } } @@ -136,8 +141,7 @@ impl DatabaseHandler for SqliteDbHandler

{ (Some(path), _) => { let flags = OpenFlags::default().difference(OpenFlags::SQLITE_OPEN_URI); - let resolved_path = canonicalize_path(&PathBuf::from(path)) - .map_err(anyhow::Error::from)?; + let resolved_path = canonicalize_path(&PathBuf::from(path))?; let path = path.to_string(); ( Arc::new(move || { @@ -161,7 +165,8 @@ impl DatabaseHandler for SqliteDbHandler

{ }) }) .await - .unwrap()?; + .unwrap() + .map_err(|e| JsNativeError::from_err(JsSqliteBackendError::from(e)))?; let notifier = if let Some(notifier_key) = notifier_key { SQLITE_NOTIFIERS_MAP @@ -197,11 +202,14 @@ impl DatabaseHandler for SqliteDbHandler

{ notifier, config, ) + .map_err(|e| JsNativeError::generic(e.to_string())) } } /// Same as Path::canonicalize, but also handles non-existing paths. -fn canonicalize_path(path: &Path) -> Result { +fn canonicalize_path( + path: &Path, +) -> Result { let path = normalize_path(path); let mut path = path; let mut names_stack = Vec::new(); diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index 88b8c238dffa1f..e18c80a24bb3dc 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -34,18 +34,6 @@ use std::path::PathBuf; use std::rc::Rc; use std::thread_local; -#[derive(Debug, thiserror::Error)] -pub enum NApiError { - #[error("Invalid path")] - InvalidPath, - #[error(transparent)] - LibLoading(#[from] libloading::Error), - #[error("Unable to find register Node-API module at {}", .0.display())] - ModuleNotFound(PathBuf), - #[error(transparent)] - Permission(#[from] PermissionCheckError), -} - #[cfg(unix)] use libloading::os::unix::*; @@ -65,6 +53,22 @@ pub use value::napi_value; pub mod function; mod value; +#[derive(Debug, thiserror::Error, deno_core::JsError)] +pub enum NApiError { + #[class(TYPE)] + #[error("Invalid path")] + InvalidPath, + #[class(TYPE)] + #[error(transparent)] + LibLoading(#[from] libloading::Error), + #[class(TYPE)] + #[error("Unable to find register Node-API module at {}", .0.display())] + ModuleNotFound(PathBuf), + #[class(inherit)] + #[error(transparent)] + Permission(#[from] #[inherit] PermissionCheckError), +} + pub type napi_status = i32; pub type napi_env = *mut c_void; pub type napi_callback_info = *mut c_void; diff --git a/ext/net/io.rs b/ext/net/io.rs index 2907fa398b480a..9a0e4870d7c188 100644 --- a/ext/net/io.rs +++ b/ext/net/io.rs @@ -11,6 +11,7 @@ use deno_core::Resource; use socket2::SockRef; use std::borrow::Cow; use std::rc::Rc; +use deno_core::error::JsNativeError; use tokio::io::AsyncRead; use tokio::io::AsyncReadExt; use tokio::io::AsyncWrite; @@ -90,10 +91,12 @@ where } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum MapError { + #[class(inherit)] #[error("{0}")] - Io(std::io::Error), + Io(#[inherit] std::io::Error), + #[class(GENERIC)] #[error("Unable to get resources")] NoResources, } @@ -110,7 +113,7 @@ impl Resource for TcpStreamResource { } fn shutdown(self: Rc) -> AsyncResult<()> { - Box::pin(self.shutdown().map_err(Into::into)) + Box::pin(self.shutdown().map_err(JsNativeError::from_err)) } fn close(self: Rc) { @@ -164,7 +167,7 @@ impl UnixStreamResource { #[allow(clippy::unused_async)] pub async fn shutdown( self: Rc, - ) -> Result<(), deno_core::error::AnyError> { + ) -> Result<(), JsNativeError> { unreachable!() } pub fn cancel_read_ops(&self) { @@ -181,7 +184,7 @@ impl Resource for UnixStreamResource { } fn shutdown(self: Rc) -> AsyncResult<()> { - Box::pin(self.shutdown().map_err(Into::into)) + Box::pin(self.shutdown().map_err(JsNativeError::from_err)) } fn close(self: Rc) { diff --git a/ext/net/lib.rs b/ext/net/lib.rs index bf8f58aa272396..9cc58ad11161c3 100644 --- a/ext/net/lib.rs +++ b/ext/net/lib.rs @@ -9,7 +9,6 @@ pub mod raw; pub mod resolve_addr; mod tcp; -use deno_core::error::AnyError; use deno_core::OpState; use deno_permissions::PermissionCheckError; use deno_tls::rustls::RootCertStore; @@ -104,7 +103,7 @@ pub struct DefaultTlsOptions { } impl DefaultTlsOptions { - pub fn root_cert_store(&self) -> Result, AnyError> { + pub fn root_cert_store(&self) -> Result, deno_core::error::JsNativeError> { Ok(match &self.root_cert_store_provider { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, diff --git a/ext/net/ops.rs b/ext/net/ops.rs index 9a8b70f0f6d965..fab589bf692c60 100644 --- a/ext/net/ops.rs +++ b/ext/net/ops.rs @@ -65,60 +65,87 @@ impl From for IpAddr { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum NetError { + #[class("BadResource")] #[error("Listener has been closed")] ListenerClosed, + #[class("Busy")] #[error("Listener already in use")] ListenerBusy, + #[class("BadResource")] #[error("Socket has been closed")] SocketClosed, + #[class("NotConnected")] #[error("Socket has been closed")] SocketClosedNotConnected, + #[class("Busy")] #[error("Socket already in use")] SocketBusy, + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), + #[class("Busy")] #[error("Another accept task is ongoing")] AcceptTaskOngoing, + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(inherit)] #[error("{0}")] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(GENERIC)] #[error("No resolved address found")] NoResolvedAddress, + #[class(GENERIC)] #[error("{0}")] AddrParse(#[from] std::net::AddrParseError), + #[class(inherit)] #[error("{0}")] - Map(crate::io::MapError), + Map(#[inherit] crate::io::MapError), + #[class(inherit)] #[error("{0}")] - Canceled(#[from] deno_core::Canceled), + Canceled(#[from] #[inherit] deno_core::Canceled), + #[class("NotFound")] #[error("{0}")] DnsNotFound(ResolveError), + #[class("NotConnected")] #[error("{0}")] DnsNotConnected(ResolveError), + #[class("TimedOut")] #[error("{0}")] DnsTimedOut(ResolveError), + #[class(GENERIC)] #[error("{0}")] Dns(#[from] ResolveError), + #[class("NotSupported")] #[error("Provided record type is not supported")] UnsupportedRecordType, + #[class("InvalidData")] #[error("File name or path {0:?} is not valid UTF-8")] InvalidUtf8(std::ffi::OsString), + #[class(GENERIC)] #[error("unexpected key type")] UnexpectedKeyType, + #[class(TYPE)] #[error("Invalid hostname: '{0}'")] - InvalidHostname(String), // TypeError + InvalidHostname(String), + #[class("Busy")] #[error("TCP stream is currently in use")] TcpStreamBusy, + #[class(GENERIC)] #[error("{0}")] Rustls(#[from] deno_tls::rustls::Error), + #[class(inherit)] #[error("{0}")] - Tls(#[from] deno_tls::TlsError), + Tls(#[from] #[inherit] deno_tls::TlsError), + #[class("InvalidData")] #[error("Error creating TLS certificate: Deno.listenTls requires a key")] - ListenTlsRequiresKey, // InvalidData + ListenTlsRequiresKey, + #[class(inherit)] #[error("{0}")] - RootCertStore(deno_core::anyhow::Error), + RootCertStore(#[inherit] deno_core::error::JsNativeError), + #[class(GENERIC)] #[error("{0}")] Reunite(tokio::net::tcp::ReuniteError), } @@ -701,10 +728,8 @@ pub fn op_set_nodelay_inner( rid: ResourceId, nodelay: bool, ) -> Result<(), NetError> { - let resource: Rc = state - .resource_table - .get::(rid) - .map_err(NetError::Resource)?; + let resource: Rc = + state.resource_table.get::(rid)?; resource.set_nodelay(nodelay).map_err(NetError::Map) } @@ -723,10 +748,8 @@ pub fn op_set_keepalive_inner( rid: ResourceId, keepalive: bool, ) -> Result<(), NetError> { - let resource: Rc = state - .resource_table - .get::(rid) - .map_err(NetError::Resource)?; + let resource: Rc = + state.resource_table.get::(rid)?; resource.set_keepalive(keepalive).map_err(NetError::Map) } diff --git a/ext/net/ops_tls.rs b/ext/net/ops_tls.rs index c7d65dd85ef7b8..9b967722f02a12 100644 --- a/ext/net/ops_tls.rs +++ b/ext/net/ops_tls.rs @@ -11,6 +11,7 @@ use crate::tcp::TcpListener; use crate::DefaultTlsOptions; use crate::NetPermissions; use crate::UnsafelyIgnoreCertificateErrors; +use deno_core::error::JsNativeError; use deno_core::futures::TryFutureExt; use deno_core::op2; use deno_core::v8; @@ -162,7 +163,7 @@ impl Resource for TlsStreamResource { } fn shutdown(self: Rc) -> AsyncResult<()> { - Box::pin(self.shutdown().map_err(Into::into)) + Box::pin(self.shutdown().map_err(JsNativeError::from_err)) } fn close(self: Rc) { diff --git a/ext/net/raw.rs b/ext/net/raw.rs index a2ebfb5acb5712..732ebb965dad48 100644 --- a/ext/net/raw.rs +++ b/ext/net/raw.rs @@ -1,9 +1,8 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::io::TcpStreamResource; use crate::ops_tls::TlsStreamResource; -use deno_core::error::bad_resource_id; -use deno_core::error::custom_error; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; +use deno_core::error::ResourceError; use deno_core::AsyncRefCell; use deno_core::CancelHandle; use deno_core::Resource; @@ -67,10 +66,11 @@ impl NetworkListenerResource { fn take( resource_table: &mut ResourceTable, listener_rid: ResourceId, - ) -> Result, AnyError> { + ) -> Result, JsNativeError> { if let Ok(resource_rc) = resource_table.take::(listener_rid) { - let resource = Rc::try_unwrap(resource_rc) - .map_err(|_| custom_error("Busy", "Listener is currently in use"))?; + let resource = Rc::try_unwrap(resource_rc).map_err(|_| { + JsNativeError::new("Busy", "Listener is currently in use") + })?; return Ok(Some(resource.listener.into_inner().into())); } Ok(None) @@ -241,13 +241,13 @@ macro_rules! network_stream { /// Return a `NetworkStreamListener` if a resource exists for this `ResourceId` and it is currently /// not locked. - pub fn take_resource(resource_table: &mut ResourceTable, listener_rid: ResourceId) -> Result { + pub fn take_resource(resource_table: &mut ResourceTable, listener_rid: ResourceId) -> Result { $( if let Some(resource) = NetworkListenerResource::<$listener>::take(resource_table, listener_rid)? { return Ok(resource) } )* - Err(bad_resource_id()) + Err(JsNativeError::from_err(ResourceError::BadResourceId)) } } }; @@ -320,12 +320,36 @@ impl From for NetworkStreamAddress { } } +#[derive(Debug, thiserror::Error, deno_core::JsError)] +pub enum TakeNetworkStreamError { + #[class("Busy")] + #[error("TCP stream is currently in use")] + TcpBusy, + #[class("Busy")] + #[error("TLS stream is currently in use")] + TlsBusy, + #[cfg(unix)] + #[class("Busy")] + #[error("Unix socket is currently in use")] + UnixBusy, + #[class(GENERIC)] + #[error(transparent)] + ReuniteTcp(#[from] tokio::net::tcp::ReuniteError), + #[cfg(unix)] + #[class(GENERIC)] + #[error(transparent)] + ReuniteUnix(#[from] tokio::net::unix::ReuniteError), + #[class(inherit)] + #[error(transparent)] + Resource(#[inherit] deno_core::error::ResourceError), +} + /// In some cases it may be more efficient to extract the resource from the resource table and use it directly (for example, an HTTP server). /// This method will extract a stream from the resource table and return it, unwrapped. pub fn take_network_stream_resource( resource_table: &mut ResourceTable, stream_rid: ResourceId, -) -> Result { +) -> Result { // The stream we're attempting to unwrap may be in use somewhere else. If that's the case, we cannot proceed // with the process of unwrapping this connection, so we just return a bad resource error. // See also: https://github.com/denoland/deno/pull/16242 @@ -334,7 +358,7 @@ pub fn take_network_stream_resource( { // This TCP connection might be used somewhere else. let resource = Rc::try_unwrap(resource_rc) - .map_err(|_| custom_error("Busy", "TCP stream is currently in use"))?; + .map_err(|_| TakeNetworkStreamError::TcpBusy)?; let (read_half, write_half) = resource.into_inner(); let tcp_stream = read_half.reunite(write_half)?; return Ok(NetworkStream::Tcp(tcp_stream)); @@ -344,7 +368,7 @@ pub fn take_network_stream_resource( { // This TLS connection might be used somewhere else. let resource = Rc::try_unwrap(resource_rc) - .map_err(|_| custom_error("Busy", "TLS stream is currently in use"))?; + .map_err(|_| TakeNetworkStreamError::TlsBusy)?; let (read_half, write_half) = resource.into_inner(); let tls_stream = read_half.unsplit(write_half); return Ok(NetworkStream::Tls(tls_stream)); @@ -356,13 +380,15 @@ pub fn take_network_stream_resource( { // This UNIX socket might be used somewhere else. let resource = Rc::try_unwrap(resource_rc) - .map_err(|_| custom_error("Busy", "Unix socket is currently in use"))?; + .map_err(|_| TakeNetworkStreamError::UnixBusy)?; let (read_half, write_half) = resource.into_inner(); let unix_stream = read_half.reunite(write_half)?; return Ok(NetworkStream::Unix(unix_stream)); } - Err(bad_resource_id()) + Err(TakeNetworkStreamError::Resource( + ResourceError::BadResourceId, + )) } /// In some cases it may be more efficient to extract the resource from the resource table and use it directly (for example, an HTTP server). @@ -370,6 +396,6 @@ pub fn take_network_stream_resource( pub fn take_network_stream_listener_resource( resource_table: &mut ResourceTable, listener_rid: ResourceId, -) -> Result { +) -> Result { NetworkStreamListener::take_resource(resource_table, listener_rid) } diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 9ca21e9941a162..f8e64e0d374525 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -8,7 +8,7 @@ use std::collections::HashSet; use std::path::Path; use std::path::PathBuf; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::url::Url; #[allow(unused_imports)] @@ -154,9 +154,9 @@ pub trait NodeRequireLoader { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError>; + ) -> Result, PermissionCheckError>; - fn load_text_file_lossy(&self, path: &Path) -> Result; + fn load_text_file_lossy(&self, path: &Path) -> Result; } pub static NODE_ENV_VAR_ALLOWLIST: Lazy> = Lazy::new(|| { diff --git a/ext/node/ops/blocklist.rs b/ext/node/ops/blocklist.rs index 6c64d68ecae653..373779e1ce8153 100644 --- a/ext/node/ops/blocklist.rs +++ b/ext/node/ops/blocklist.rs @@ -24,7 +24,8 @@ impl deno_core::GarbageCollected for BlockListResource {} #[derive(Serialize)] struct SocketAddressSerialization(String, String); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(GENERIC)] pub enum BlocklistError { #[error("{0}")] AddrParse(#[from] std::net::AddrParseError), diff --git a/ext/node/ops/buffer.rs b/ext/node/ops/buffer.rs index 01f878ec15bdd2..8037143a074dd6 100644 --- a/ext/node/ops/buffer.rs +++ b/ext/node/ops/buffer.rs @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::anyhow::anyhow; -use deno_core::anyhow::Result; +use deno_core::error::JsNativeError; use deno_core::op2; #[op2(fast)] @@ -20,7 +19,7 @@ pub fn op_transcode( #[buffer] source: &[u8], #[string] from_encoding: &str, #[string] to_encoding: &str, -) -> Result> { +) -> Result, JsNativeError> { match (from_encoding, to_encoding) { ("utf8", "ascii") => Ok(utf8_to_ascii(source)), ("utf8", "latin1") => Ok(utf8_to_latin1(source)), @@ -29,7 +28,7 @@ pub fn op_transcode( ("latin1", "utf16le") | ("ascii", "utf16le") => { Ok(latin1_ascii_to_utf16le(source)) } - (from, to) => Err(anyhow!("Unable to transcode Buffer {from}->{to}")), + (from, to) => Err(JsNativeError::generic(format!("Unable to transcode Buffer {from}->{to}"))), } } @@ -42,18 +41,18 @@ fn latin1_ascii_to_utf16le(source: &[u8]) -> Vec { result } -fn utf16le_to_utf8(source: &[u8]) -> Result> { +fn utf16le_to_utf8(source: &[u8]) -> Result, JsNativeError> { let ucs2_vec: Vec = source .chunks(2) .map(|chunk| u16::from_le_bytes([chunk[0], chunk[1]])) .collect(); String::from_utf16(&ucs2_vec) .map(|utf8_string| utf8_string.into_bytes()) - .map_err(|e| anyhow!("Invalid UTF-16 sequence: {}", e)) + .map_err(|e|JsNativeError::generic(format!("Invalid UTF-16 sequence: {}", e))) } -fn utf8_to_utf16le(source: &[u8]) -> Result> { - let utf8_string = std::str::from_utf8(source)?; +fn utf8_to_utf16le(source: &[u8]) -> Result, JsNativeError> { + let utf8_string = std::str::from_utf8(source).map_err(JsNativeError::from_err)?; let ucs2_vec: Vec = utf8_string.encode_utf16().collect(); let bytes: Vec = ucs2_vec.iter().flat_map(|&x| x.to_le_bytes()).collect(); Ok(bytes) diff --git a/ext/node/ops/crypto/cipher.rs b/ext/node/ops/crypto/cipher.rs index ec45146b49aeaa..df114d8a0c18b1 100644 --- a/ext/node/ops/crypto/cipher.rs +++ b/ext/node/ops/crypto/cipher.rs @@ -47,14 +47,17 @@ pub struct DecipherContext { decipher: Rc>, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CipherContextError { + #[class(TYPE)] #[error("Cipher context is already in use")] ContextInUse, + #[class(inherit)] #[error("{0}")] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - Cipher(#[from] CipherError), + Cipher(#[from] #[inherit] CipherError), } impl CipherContext { @@ -94,14 +97,17 @@ impl CipherContext { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum DecipherContextError { + #[class(TYPE)] #[error("Decipher context is already in use")] ContextInUse, + #[class(inherit)] #[error("{0}")] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - Decipher(#[from] DecipherError), + Decipher(#[from] #[inherit] DecipherError), } impl DecipherContext { @@ -150,16 +156,21 @@ impl Resource for DecipherContext { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CipherError { + #[class(TYPE)] #[error("IV length must be 12 bytes")] InvalidIvLength, + #[class(RANGE)] #[error("Invalid key length")] InvalidKeyLength, + #[class(TYPE)] #[error("Invalid initialization vector")] InvalidInitializationVector, + #[class(TYPE)] #[error("Cannot pad the input data")] CannotPadInputData, + #[class(TYPE)] #[error("Unknown cipher {0}")] UnknownCipher(String), } @@ -360,22 +371,30 @@ impl Cipher { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum DecipherError { + #[class(TYPE)] #[error("IV length must be 12 bytes")] InvalidIvLength, + #[class(RANGE)] #[error("Invalid key length")] InvalidKeyLength, + #[class(TYPE)] #[error("Invalid initialization vector")] InvalidInitializationVector, + #[class(TYPE)] #[error("Cannot unpad the input data")] CannotUnpadInputData, + #[class(TYPE)] #[error("Failed to authenticate data")] DataAuthenticationFailed, + #[class(TYPE)] #[error("setAutoPadding(false) not supported for Aes128Gcm yet")] SetAutoPaddingFalseAes128GcmUnsupported, + #[class(TYPE)] #[error("setAutoPadding(false) not supported for Aes256Gcm yet")] SetAutoPaddingFalseAes256GcmUnsupported, + #[class(TYPE)] #[error("Unknown cipher {0}")] UnknownCipher(String), } diff --git a/ext/node/ops/crypto/digest.rs b/ext/node/ops/crypto/digest.rs index a7d8fb51f1b26c..1e966758813690 100644 --- a/ext/node/ops/crypto/digest.rs +++ b/ext/node/ops/crypto/digest.rs @@ -182,7 +182,8 @@ pub enum Hash { use Hash::*; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(GENERIC)] pub enum HashError { #[error("Output length mismatch for non-extendable algorithm")] OutputLengthMismatch, diff --git a/ext/node/ops/crypto/keys.rs b/ext/node/ops/crypto/keys.rs index f164972d48afc6..bbe6869cae4da8 100644 --- a/ext/node/ops/crypto/keys.rs +++ b/ext/node/ops/crypto/keys.rs @@ -4,7 +4,7 @@ use std::borrow::Cow; use std::cell::RefCell; use base64::Engine; -use deno_core::error::type_error; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::serde_v8::BigInt as V8BigInt; use deno_core::unsync::spawn_blocking; @@ -364,55 +364,72 @@ impl<'a> TryFrom> for RsaPssParameters<'a> { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum X509PublicKeyError { + #[class(GENERIC)] #[error(transparent)] - X509(#[from] x509_parser::error::X509Error), + X509(#[from] X509Error), + #[class(GENERIC)] #[error(transparent)] Rsa(#[from] rsa::Error), + #[class(GENERIC)] #[error(transparent)] Asn1(#[from] x509_parser::der_parser::asn1_rs::Error), + #[class(GENERIC)] #[error(transparent)] Ec(#[from] elliptic_curve::Error), + #[class(TYPE)] #[error("unsupported ec named curve")] UnsupportedEcNamedCurve, + #[class(TYPE)] #[error("missing ec parameters")] MissingEcParameters, + #[class(TYPE)] #[error("malformed DSS public key")] MalformedDssPublicKey, + #[class(TYPE)] #[error("unsupported x509 public key type")] UnsupportedX509KeyType, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum RsaJwkError { + #[class(GENERIC)] #[error(transparent)] Base64(#[from] base64::DecodeError), + #[class(GENERIC)] #[error(transparent)] Rsa(#[from] rsa::Error), + #[class(TYPE)] #[error("missing RSA private component")] MissingRsaPrivateComponent, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum EcJwkError { + #[class(GENERIC)] #[error(transparent)] Ec(#[from] elliptic_curve::Error), + #[class(TYPE)] #[error("unsupported curve: {0}")] UnsupportedCurve(String), } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum EdRawError { + #[class(GENERIC)] #[error(transparent)] Ed25519Signature(#[from] ed25519_dalek::SignatureError), + #[class(TYPE)] #[error("invalid Ed25519 key")] InvalidEd25519Key, + #[class(TYPE)] #[error("unsupported curve")] UnsupportedCurve, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum AsymmetricPrivateKeyError { #[error("invalid PEM private key: not valid utf8 starting at byte {0}")] InvalidPemPrivateKeyInvalidUtf8(usize), @@ -428,8 +445,9 @@ pub enum AsymmetricPrivateKeyError { InvalidSec1PrivateKey, #[error("unsupported PEM label: {0}")] UnsupportedPemLabel(String), + #[class(inherit)] #[error(transparent)] - RsaPssParamsParse(#[from] RsaPssParamsParseError), + RsaPssParamsParse(#[from] #[inherit] RsaPssParamsParseError), #[error("invalid encrypted PKCS#8 private key")] InvalidEncryptedPkcs8PrivateKey, #[error("invalid PKCS#8 private key")] @@ -462,58 +480,84 @@ pub enum AsymmetricPrivateKeyError { UnsupportedPrivateKeyOid, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum AsymmetricPublicKeyError { + #[class(TYPE)] #[error("invalid PEM private key: not valid utf8 starting at byte {0}")] InvalidPemPrivateKeyInvalidUtf8(usize), + #[class(TYPE)] #[error("invalid PEM public key")] InvalidPemPublicKey, + #[class(TYPE)] #[error("invalid PKCS#1 public key")] InvalidPkcs1PublicKey, + #[class(inherit)] #[error(transparent)] - AsymmetricPrivateKey(#[from] AsymmetricPrivateKeyError), + AsymmetricPrivateKey(#[from] #[inherit] AsymmetricPrivateKeyError), + #[class(TYPE)] #[error("invalid x509 certificate")] InvalidX509Certificate, + #[class(GENERIC)] #[error(transparent)] X509(#[from] x509_parser::nom::Err), + #[class(inherit)] #[error(transparent)] - X509PublicKey(#[from] X509PublicKeyError), + X509PublicKey(#[from] #[inherit] X509PublicKeyError), + #[class(TYPE)] #[error("unsupported PEM label: {0}")] UnsupportedPemLabel(String), + #[class(TYPE)] #[error("invalid SPKI public key")] InvalidSpkiPublicKey, + #[class(TYPE)] #[error("unsupported key type: {0}")] UnsupportedKeyType(String), + #[class(TYPE)] #[error("unsupported key format: {0}")] UnsupportedKeyFormat(String), + #[class(GENERIC)] #[error(transparent)] Spki(#[from] spki::Error), + #[class(GENERIC)] #[error(transparent)] Pkcs1(#[from] rsa::pkcs1::Error), + #[class(inherit)] #[error(transparent)] - RsaPssParamsParse(#[from] RsaPssParamsParseError), + RsaPssParamsParse(#[from] #[inherit] RsaPssParamsParseError), + #[class(TYPE)] #[error("malformed DSS public key")] MalformedDssPublicKey, + #[class(TYPE)] #[error("malformed or missing named curve in ec parameters")] MalformedOrMissingNamedCurveInEcParameters, + #[class(TYPE)] #[error("malformed or missing public key in ec spki")] MalformedOrMissingPublicKeyInEcSpki, + #[class(GENERIC)] #[error(transparent)] Ec(#[from] elliptic_curve::Error), + #[class(TYPE)] #[error("unsupported ec named curve")] UnsupportedEcNamedCurve, + #[class(TYPE)] #[error("malformed or missing public key in x25519 spki")] MalformedOrMissingPublicKeyInX25519Spki, + #[class(TYPE)] #[error("x25519 public key is too short")] X25519PublicKeyIsTooShort, + #[class(TYPE)] #[error("invalid Ed25519 public key")] InvalidEd25519PublicKey, + #[class(TYPE)] #[error("missing dh parameters")] MissingDhParameters, + #[class(TYPE)] #[error("malformed dh parameters")] MalformedDhParameters, + #[class(TYPE)] #[error("malformed or missing public key in dh spki")] MalformedOrMissingPublicKeyInDhSpki, + #[class(TYPE)] #[error("unsupported private key oid")] UnsupportedPrivateKeyOid, } @@ -1032,7 +1076,8 @@ impl KeyObjectHandle { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum RsaPssParamsParseError { #[error("malformed pss private key parameters")] MalformedPssPrivateKeyParameters, @@ -1107,7 +1152,8 @@ fn bytes_to_b64(bytes: &[u8]) -> String { BASE64_URL_SAFE_NO_PAD.encode(bytes) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum AsymmetricPublicKeyJwkError { #[error("key is not an asymmetric public key")] KeyIsNotAsymmetricPublicKey, @@ -1117,7 +1163,8 @@ pub enum AsymmetricPublicKeyJwkError { JwkExportNotImplementedForKeyType, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum AsymmetricPublicKeyDerError { #[error("key is not an asymmetric public key")] KeyIsNotAsymmetricPublicKey, @@ -1302,7 +1349,8 @@ impl AsymmetricPublicKey { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum AsymmetricPrivateKeyDerError { #[error("key is not an asymmetric private key")] KeyIsNotAsymmetricPrivateKey, @@ -1314,6 +1362,7 @@ pub enum AsymmetricPrivateKeyDerError { InvalidEcPrivateKey, #[error("exporting non-EC private key as SEC1 is not supported")] ExportingNonEcPrivateKeyAsSec1Unsupported, + #[class(TYPE)] #[error("exporting RSA-PSS private key as PKCS#8 is not supported yet")] ExportingNonRsaPssPrivateKeyAsPkcs8Unsupported, #[error("invalid DSA private key")] @@ -1528,7 +1577,7 @@ pub fn op_node_create_secret_key( #[string] pub fn op_node_get_asymmetric_key_type( #[cppgc] handle: &KeyObjectHandle, -) -> Result<&'static str, deno_core::error::AnyError> { +) -> Result<&'static str, JsNativeError> { match handle { KeyObjectHandle::AsymmetricPrivate(AsymmetricPrivateKey::Rsa(_)) | KeyObjectHandle::AsymmetricPublic(AsymmetricPublicKey::Rsa(_)) => { @@ -1555,7 +1604,7 @@ pub fn op_node_get_asymmetric_key_type( KeyObjectHandle::AsymmetricPrivate(AsymmetricPrivateKey::Dh(_)) | KeyObjectHandle::AsymmetricPublic(AsymmetricPublicKey::Dh(_)) => Ok("dh"), KeyObjectHandle::Secret(_) => { - Err(type_error("symmetric key is not an asymmetric key")) + Err(JsNativeError::type_error("symmetric key is not an asymmetric key")) } } } @@ -1599,7 +1648,7 @@ pub enum AsymmetricKeyDetails { #[serde] pub fn op_node_get_asymmetric_key_details( #[cppgc] handle: &KeyObjectHandle, -) -> Result { +) -> Result { match handle { KeyObjectHandle::AsymmetricPrivate(private_key) => match private_key { AsymmetricPrivateKey::Rsa(key) => { @@ -1708,7 +1757,7 @@ pub fn op_node_get_asymmetric_key_details( AsymmetricPublicKey::Dh(_) => Ok(AsymmetricKeyDetails::Dh), }, KeyObjectHandle::Secret(_) => { - Err(type_error("symmetric key is not an asymmetric key")) + Err(JsNativeError::type_error("symmetric key is not an asymmetric key")) } } } @@ -1717,11 +1766,11 @@ pub fn op_node_get_asymmetric_key_details( #[smi] pub fn op_node_get_symmetric_key_size( #[cppgc] handle: &KeyObjectHandle, -) -> Result { +) -> Result { match handle { KeyObjectHandle::AsymmetricPrivate(_) | KeyObjectHandle::AsymmetricPublic(_) => { - Err(type_error("asymmetric key is not a symmetric key")) + Err(JsNativeError::type_error("asymmetric key is not a symmetric key")) } KeyObjectHandle::Secret(key) => Ok(key.len() * 8), } @@ -1825,7 +1874,8 @@ pub async fn op_node_generate_rsa_key_async( .unwrap() } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] #[error("digest not allowed for RSA-PSS keys{}", .0.as_ref().map(|digest| format!(": {digest}")).unwrap_or_default())] pub struct GenerateRsaPssError(Option); @@ -1929,7 +1979,7 @@ pub async fn op_node_generate_rsa_pss_key_async( fn dsa_generate( modulus_length: usize, divisor_length: usize, -) -> Result { +) -> Result { let mut rng = rand::thread_rng(); use dsa::Components; use dsa::KeySize; @@ -1942,7 +1992,7 @@ fn dsa_generate( (2048, 256) => KeySize::DSA_2048_256, (3072, 256) => KeySize::DSA_3072_256, _ => { - return Err(type_error( + return Err(JsNativeError::type_error( "Invalid modulusLength+divisorLength combination", )) } @@ -1960,7 +2010,7 @@ fn dsa_generate( pub fn op_node_generate_dsa_key( #[smi] modulus_length: usize, #[smi] divisor_length: usize, -) -> Result { +) -> Result { dsa_generate(modulus_length, divisor_length) } @@ -1969,7 +2019,7 @@ pub fn op_node_generate_dsa_key( pub async fn op_node_generate_dsa_key_async( #[smi] modulus_length: usize, #[smi] divisor_length: usize, -) -> Result { +) -> Result { spawn_blocking(move || dsa_generate(modulus_length, divisor_length)) .await .unwrap() @@ -1977,7 +2027,7 @@ pub async fn op_node_generate_dsa_key_async( fn ec_generate( named_curve: &str, -) -> Result { +) -> Result { let mut rng = rand::thread_rng(); // TODO(@littledivy): Support public key point encoding. // Default is uncompressed. @@ -1995,7 +2045,7 @@ fn ec_generate( AsymmetricPrivateKey::Ec(EcPrivateKey::P384(key)) } _ => { - return Err(type_error(format!( + return Err(JsNativeError::type_error(format!( "unsupported named curve: {}", named_curve ))) @@ -2009,7 +2059,7 @@ fn ec_generate( #[cppgc] pub fn op_node_generate_ec_key( #[string] named_curve: &str, -) -> Result { +) -> Result { ec_generate(named_curve) } @@ -2017,7 +2067,7 @@ pub fn op_node_generate_ec_key( #[cppgc] pub async fn op_node_generate_ec_key_async( #[string] named_curve: String, -) -> Result { +) -> Result { spawn_blocking(move || ec_generate(&named_curve)) .await .unwrap() @@ -2073,7 +2123,7 @@ fn u32_slice_to_u8_slice(slice: &[u32]) -> &[u8] { fn dh_group_generate( group_name: &str, -) -> Result { +) -> Result { let (dh, prime, generator) = match group_name { "modp5" => ( dh::DiffieHellman::group::(), @@ -2105,7 +2155,7 @@ fn dh_group_generate( dh::Modp8192::MODULUS, dh::Modp8192::GENERATOR, ), - _ => return Err(type_error("Unsupported group name")), + _ => return Err(JsNativeError::type_error("Unsupported group name")), }; let params = DhParameter { prime: asn1::Int::new(u32_slice_to_u8_slice(prime)).unwrap(), @@ -2128,7 +2178,7 @@ fn dh_group_generate( #[cppgc] pub fn op_node_generate_dh_group_key( #[string] group_name: &str, -) -> Result { +) -> Result { dh_group_generate(group_name) } @@ -2136,7 +2186,7 @@ pub fn op_node_generate_dh_group_key( #[cppgc] pub async fn op_node_generate_dh_group_key_async( #[string] group_name: String, -) -> Result { +) -> Result { spawn_blocking(move || dh_group_generate(&group_name)) .await .unwrap() @@ -2210,10 +2260,10 @@ pub fn op_node_dh_keys_generate_and_export( #[buffer] pub fn op_node_export_secret_key( #[cppgc] handle: &KeyObjectHandle, -) -> Result, deno_core::error::AnyError> { +) -> Result, JsNativeError> { let key = handle .as_secret_key() - .ok_or_else(|| type_error("key is not a secret key"))?; + .ok_or_else(|| JsNativeError::type_error("key is not a secret key"))?; Ok(key.to_vec().into_boxed_slice()) } @@ -2221,10 +2271,10 @@ pub fn op_node_export_secret_key( #[string] pub fn op_node_export_secret_key_b64url( #[cppgc] handle: &KeyObjectHandle, -) -> Result { +) -> Result { let key = handle .as_secret_key() - .ok_or_else(|| type_error("key is not a secret key"))?; + .ok_or_else(|| JsNativeError::type_error("key is not a secret key"))?; Ok(base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(key)) } @@ -2240,12 +2290,15 @@ pub fn op_node_export_public_key_jwk( public_key.export_jwk() } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum ExportPublicKeyPemError { + #[class(inherit)] #[error(transparent)] - AsymmetricPublicKeyDer(#[from] AsymmetricPublicKeyDerError), + AsymmetricPublicKeyDer(#[from] #[inherit] AsymmetricPublicKeyDerError), + #[class(TYPE)] #[error("very large data")] VeryLargeData, + #[class(GENERIC)] #[error(transparent)] Der(#[from] der::Error), } @@ -2290,12 +2343,15 @@ pub fn op_node_export_public_key_der( public_key.export_der(typ) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum ExportPrivateKeyPemError { + #[class(inherit)] #[error(transparent)] - AsymmetricPublicKeyDer(#[from] AsymmetricPrivateKeyDerError), + AsymmetricPublicKeyDer(#[from] #[inherit] AsymmetricPrivateKeyDerError), + #[class(TYPE)] #[error("very large data")] VeryLargeData, + #[class(GENERIC)] #[error(transparent)] Der(#[from] der::Error), } @@ -2355,9 +2411,9 @@ pub fn op_node_key_type(#[cppgc] handle: &KeyObjectHandle) -> &'static str { #[cppgc] pub fn op_node_derive_public_key_from_private_key( #[cppgc] handle: &KeyObjectHandle, -) -> Result { +) -> Result { let Some(private_key) = handle.as_private_key() else { - return Err(type_error("expected private key")); + return Err(JsNativeError::type_error("expected private key")); }; Ok(KeyObjectHandle::AsymmetricPublic( diff --git a/ext/node/ops/crypto/mod.rs b/ext/node/ops/crypto/mod.rs index e90e820909cdad..7225886e474395 100644 --- a/ext/node/ops/crypto/mod.rs +++ b/ext/node/ops/crypto/mod.rs @@ -1,6 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::generic_error; -use deno_core::error::type_error; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::unsync::spawn_blocking; use deno_core::JsBuffer; @@ -141,16 +140,21 @@ pub fn op_node_hash_clone( hasher.clone_inner(output_length.map(|l| l as usize)) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum PrivateEncryptDecryptError { + #[class(GENERIC)] #[error(transparent)] Pkcs8(#[from] pkcs8::Error), + #[class(GENERIC)] #[error(transparent)] Spki(#[from] spki::Error), + #[class(GENERIC)] #[error(transparent)] Utf8(#[from] std::str::Utf8Error), + #[class(GENERIC)] #[error(transparent)] Rsa(#[from] rsa::Error), + #[class(TYPE)] #[error("Unknown padding")] UnknownPadding, } @@ -272,7 +276,7 @@ pub fn op_node_cipheriv_final( let context = state .resource_table .take::(rid) - .map_err(cipher::CipherContextError::Resource)?; + ?; let context = Rc::try_unwrap(context) .map_err(|_| cipher::CipherContextError::ContextInUse)?; context.r#final(auto_pad, input, output).map_err(Into::into) @@ -287,7 +291,7 @@ pub fn op_node_cipheriv_take( let context = state .resource_table .take::(rid) - .map_err(cipher::CipherContextError::Resource)?; + ?; let context = Rc::try_unwrap(context) .map_err(|_| cipher::CipherContextError::ContextInUse)?; Ok(context.take_tag()) @@ -342,7 +346,7 @@ pub fn op_node_decipheriv_take( let context = state .resource_table .take::(rid) - .map_err(cipher::DecipherContextError::Resource)?; + ?; Rc::try_unwrap(context) .map_err(|_| cipher::DecipherContextError::ContextInUse)?; Ok(()) @@ -360,7 +364,7 @@ pub fn op_node_decipheriv_final( let context = state .resource_table .take::(rid) - .map_err(cipher::DecipherContextError::Resource)?; + ?; let context = Rc::try_unwrap(context) .map_err(|_| cipher::DecipherContextError::ContextInUse)?; context @@ -403,12 +407,14 @@ pub fn op_node_verify( ) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum Pbkdf2Error { + #[class(TYPE)] #[error("unsupported digest: {0}")] UnsupportedDigest(String), + #[class(inherit)] #[error(transparent)] - Join(#[from] tokio::task::JoinError), + Join(#[from] #[inherit] tokio::task::JoinError), } fn pbkdf2_sync( @@ -475,16 +481,20 @@ pub async fn op_node_fill_random_async(#[smi] len: i32) -> ToJsBuffer { .unwrap() } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum HkdfError { + #[class(TYPE)] #[error("expected secret key")] ExpectedSecretKey, + #[class(TYPE)] #[error("HKDF-Expand failed")] HkdfExpandFailed, + #[class(TYPE)] #[error("Unsupported digest: {0}")] UnsupportedDigest(String), + #[class(inherit)] #[error(transparent)] - Join(#[from] tokio::task::JoinError), + Join(#[from] #[inherit] tokio::task::JoinError), } fn hkdf_sync( @@ -576,7 +586,7 @@ fn scrypt( parallelization: u32, _maxmem: u32, output_buffer: &mut [u8], -) -> Result<(), deno_core::error::AnyError> { +) -> Result<(), JsNativeError> { // Construct Params let params = scrypt::Params::new( cost as u8, @@ -592,7 +602,7 @@ fn scrypt( Ok(()) } else { // TODO(lev): key derivation failed, so what? - Err(generic_error("scrypt key derivation failed")) + Err(JsNativeError::generic("scrypt key derivation failed")) } } @@ -607,7 +617,7 @@ pub fn op_node_scrypt_sync( #[smi] parallelization: u32, #[smi] maxmem: u32, #[anybuffer] output_buffer: &mut [u8], -) -> Result<(), deno_core::error::AnyError> { +) -> Result<(), JsNativeError> { scrypt( password, salt, @@ -620,12 +630,14 @@ pub fn op_node_scrypt_sync( ) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum ScryptAsyncError { + #[class(inherit)] #[error(transparent)] - Join(#[from] tokio::task::JoinError), + Join(#[from] #[inherit] tokio::task::JoinError), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[inherit] JsNativeError), } #[op2(async)] @@ -658,12 +670,15 @@ pub async fn op_node_scrypt_async( .await? } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum EcdhEncodePubKey { + #[class(TYPE)] #[error("Invalid public key")] InvalidPublicKey, + #[class(TYPE)] #[error("Unsupported curve")] UnsupportedCurve, + #[class(GENERIC)] #[error(transparent)] Sec1(#[from] sec1::Error), } @@ -743,7 +758,7 @@ pub fn op_node_ecdh_generate_keys( #[buffer] pubbuf: &mut [u8], #[buffer] privbuf: &mut [u8], #[string] format: &str, -) -> Result<(), deno_core::error::AnyError> { +) -> Result<(), JsNativeError> { let mut rng = rand::thread_rng(); let compress = format == "compressed"; match curve { @@ -780,7 +795,7 @@ pub fn op_node_ecdh_generate_keys( Ok(()) } - &_ => Err(type_error(format!("Unsupported curve: {}", curve))), + &_ => Err(JsNativeError::type_error(format!("Unsupported curve: {}", curve))), } } @@ -913,7 +928,8 @@ pub async fn op_node_gen_prime_async( spawn_blocking(move || gen_prime(size)).await } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum DiffieHellmanError { #[error("Expected private key")] ExpectedPrivateKey, @@ -1005,7 +1021,8 @@ pub fn op_node_diffie_hellman( Ok(res) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum SignEd25519Error { #[error("Expected private key")] ExpectedPrivateKey, @@ -1037,7 +1054,8 @@ pub fn op_node_sign_ed25519( Ok(()) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum VerifyEd25519Error { #[error("Expected public key")] ExpectedPublicKey, diff --git a/ext/node/ops/crypto/sign.rs b/ext/node/ops/crypto/sign.rs index 30094c07654197..ee7644c222f31a 100644 --- a/ext/node/ops/crypto/sign.rs +++ b/ext/node/ops/crypto/sign.rs @@ -39,7 +39,8 @@ where } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(TYPE)] pub enum KeyObjectHandlePrehashedSignAndVerifyError { #[error("invalid DSA signature encoding")] InvalidDsaSignatureEncoding, @@ -47,10 +48,12 @@ pub enum KeyObjectHandlePrehashedSignAndVerifyError { KeyIsNotPrivate, #[error("digest not allowed for RSA signature: {0}")] DigestNotAllowedForRsaSignature(String), + #[class(GENERIC)] #[error("failed to sign digest with RSA")] FailedToSignDigestWithRsa, #[error("digest not allowed for RSA-PSS signature: {0}")] DigestNotAllowedForRsaPssSignature(String), + #[class(GENERIC)] #[error("failed to sign digest with RSA-PSS")] FailedToSignDigestWithRsaPss, #[error("failed to sign digest with DSA")] diff --git a/ext/node/ops/crypto/x509.rs b/ext/node/ops/crypto/x509.rs index ab8e52f703dc18..8ffc380f08ec05 100644 --- a/ext/node/ops/crypto/x509.rs +++ b/ext/node/ops/crypto/x509.rs @@ -61,11 +61,13 @@ impl<'a> Deref for CertificateView<'a> { } } +deno_core::js_error_wrapper!(X509Error, JsX509Error, "Error"); + #[op2] #[cppgc] pub fn op_node_x509_parse( #[buffer] buf: &[u8], -) -> Result { +) -> Result { let source = match pem::parse_x509_pem(buf) { Ok((_, pem)) => CertificateSources::Pem(pem), Err(_) => CertificateSources::Der(buf.to_vec().into_boxed_slice()), @@ -156,18 +158,18 @@ pub fn op_node_x509_fingerprint512( #[string] pub fn op_node_x509_get_issuer( #[cppgc] cert: &Certificate, -) -> Result { +) -> Result { let cert = cert.inner.get().deref(); - x509name_to_string(cert.issuer(), oid_registry()) + x509name_to_string(cert.issuer(), oid_registry()).map_err(Into::into) } #[op2] #[string] pub fn op_node_x509_get_subject( #[cppgc] cert: &Certificate, -) -> Result { +) -> Result { let cert = cert.inner.get().deref(); - x509name_to_string(cert.subject(), oid_registry()) + x509name_to_string(cert.subject(), oid_registry()).map_err(Into::into) } #[op2] diff --git a/ext/node/ops/fs.rs b/ext/node/ops/fs.rs index 9c0e4e1ccff212..d0e54a6195244f 100644 --- a/ext/node/ops/fs.rs +++ b/ext/node/ops/fs.rs @@ -10,27 +10,32 @@ use serde::Serialize; use crate::NodePermissions; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum FsError { + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), #[cfg(windows)] + #[class(GENERIC)] #[error("Path has no root.")] PathHasNoRoot, #[cfg(not(any(unix, windows)))] + #[class(GENERIC)] #[error("Unsupported platform.")] UnsupportedPlatform, + #[class(inherit)] #[error(transparent)] - Fs(#[from] deno_io::fs::FsError), + Fs(#[from] #[inherit] deno_io::fs::FsError), } #[op2(fast)] pub fn op_node_fs_exists_sync

( state: &mut OpState, #[string] path: String, -) -> Result +) -> Result where P: NodePermissions + 'static, { diff --git a/ext/node/ops/http.rs b/ext/node/ops/http.rs index 69571078fe26e1..604892c60fa5f4 100644 --- a/ext/node/ops/http.rs +++ b/ext/node/ops/http.rs @@ -46,6 +46,7 @@ use http_body_util::BodyExt; use hyper::body::Frame; use hyper_util::rt::TokioIo; use std::cmp::min; +use deno_core::error::JsNativeError; use tokio::io::AsyncReadExt; use tokio::io::AsyncWriteExt; @@ -455,7 +456,7 @@ impl Resource for NodeHttpFetchResponseResource { Some(_) => match reader.as_mut().next().await.unwrap() { Ok(chunk) => assert!(chunk.is_empty()), Err(err) => { - break Err(deno_core::error::type_error(err.to_string())) + break Err(JsNativeError::type_error(err.to_string())) } }, None => break Ok(BufView::empty()), @@ -481,7 +482,7 @@ impl Resource for NodeHttpFetchResponseResource { pub struct NodeHttpResourceToBodyAdapter( Rc, Option< - Pin>>>, + Pin>>>, >, ); @@ -498,7 +499,7 @@ unsafe impl Send for NodeHttpResourceToBodyAdapter {} unsafe impl Sync for NodeHttpResourceToBodyAdapter {} impl Stream for NodeHttpResourceToBodyAdapter { - type Item = Result; + type Item = Result; fn poll_next( self: Pin<&mut Self>, @@ -528,7 +529,7 @@ impl Stream for NodeHttpResourceToBodyAdapter { impl hyper::body::Body for NodeHttpResourceToBodyAdapter { type Data = Bytes; - type Error = deno_core::anyhow::Error; + type Error = JsNativeError; fn poll_frame( self: Pin<&mut Self>, diff --git a/ext/node/ops/http2.rs b/ext/node/ops/http2.rs index 53dada9f4119c9..4022aa18a719b9 100644 --- a/ext/node/ops/http2.rs +++ b/ext/node/ops/http2.rs @@ -15,6 +15,7 @@ use deno_core::BufView; use deno_core::ByteString; use deno_core::CancelFuture; use deno_core::CancelHandle; +use deno_core::error::ResourceError; use deno_core::JsBuffer; use deno_core::OpState; use deno_core::RcRef; @@ -109,14 +110,20 @@ impl Resource for Http2ServerSendResponse { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum Http2Error { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] ResourceError), + #[class(inherit)] #[error(transparent)] - UrlParse(#[from] url::ParseError), + UrlParse(#[from] #[inherit] url::ParseError), + #[class(GENERIC)] #[error(transparent)] H2(#[from] h2::Error), + #[class(inherit)] + #[error(transparent)] + TakeNetworkStream(#[from] #[inherit] deno_net::raw::TakeNetworkStreamError), } #[op2(async)] @@ -130,7 +137,7 @@ pub async fn op_http2_connect( let network_stream = { let mut state = state.borrow_mut(); take_network_stream_resource(&mut state.resource_table, rid) - .map_err(Http2Error::Resource)? + ? }; let url = Url::parse(&url)?; @@ -157,7 +164,7 @@ pub async fn op_http2_listen( ) -> Result { let stream = take_network_stream_resource(&mut state.borrow_mut().resource_table, rid) - .map_err(Http2Error::Resource)?; + ?; let conn = h2::server::Builder::new().handshake(stream).await?; Ok( @@ -183,7 +190,7 @@ pub async fn op_http2_accept( .borrow() .resource_table .get::(rid) - .map_err(Http2Error::Resource)?; + ?; let mut conn = RcRef::map(&resource, |r| &r.conn).borrow_mut().await; if let Some(res) = conn.accept().await { let (req, resp) = res?; @@ -250,7 +257,7 @@ pub async fn op_http2_send_response( .borrow() .resource_table .get::(rid) - .map_err(Http2Error::Resource)?; + ?; let mut send_response = RcRef::map(resource, |r| &r.send_response) .borrow_mut() .await; @@ -280,7 +287,7 @@ pub async fn op_http2_poll_client_connection( .borrow() .resource_table .get::(rid) - .map_err(Http2Error::Resource)?; + ?; let cancel_handle = RcRef::map(resource.clone(), |this| &this.cancel_handle); let mut conn = RcRef::map(resource, |this| &this.conn).borrow_mut().await; @@ -311,7 +318,7 @@ pub async fn op_http2_client_request( .borrow() .resource_table .get::(client_rid) - .map_err(Http2Error::Resource)?; + ?; let url = resource.url.clone(); @@ -347,7 +354,7 @@ pub async fn op_http2_client_request( state .resource_table .get::(client_rid) - .map_err(Http2Error::Resource)? + ? }; let mut client = RcRef::map(&resource, |r| &r.client).borrow_mut().await; poll_fn(|cx| client.poll_ready(cx)).await?; @@ -371,7 +378,7 @@ pub async fn op_http2_client_send_data( .borrow() .resource_table .get::(stream_rid) - .map_err(Http2Error::Resource)?; + ?; let mut stream = RcRef::map(&resource, |r| &r.stream).borrow_mut().await; stream.send_data(data.to_vec().into(), end_of_stream)?; @@ -383,7 +390,7 @@ pub async fn op_http2_client_reset_stream( state: Rc>, #[smi] stream_rid: ResourceId, #[smi] code: u32, -) -> Result<(), deno_core::error::AnyError> { +) -> Result<(), ResourceError> { let resource = state .borrow() .resource_table @@ -403,7 +410,7 @@ pub async fn op_http2_client_send_trailers( .borrow() .resource_table .get::(stream_rid) - .map_err(Http2Error::Resource)?; + ?; let mut stream = RcRef::map(&resource, |r| &r.stream).borrow_mut().await; let mut trailers_map = http::HeaderMap::new(); @@ -436,7 +443,7 @@ pub async fn op_http2_client_get_response( .borrow() .resource_table .get::(stream_rid) - .map_err(Http2Error::Resource)?; + ?; let mut response_future = RcRef::map(&resource, |r| &r.response).borrow_mut().await; @@ -507,7 +514,7 @@ pub async fn op_http2_client_get_response_body_chunk( .borrow() .resource_table .get::(body_rid) - .map_err(Http2Error::Resource)?; + ?; let mut body = RcRef::map(&resource, |r| &r.body).borrow_mut().await; loop { @@ -550,7 +557,7 @@ pub async fn op_http2_client_get_response_body_chunk( pub async fn op_http2_client_get_response_trailers( state: Rc>, #[smi] body_rid: ResourceId, -) -> Result>, deno_core::error::AnyError> { +) -> Result>, ResourceError> { let resource = state .borrow() .resource_table diff --git a/ext/node/ops/idna.rs b/ext/node/ops/idna.rs index a3d85e77c2b6b5..0a38625fc7978f 100644 --- a/ext/node/ops/idna.rs +++ b/ext/node/ops/idna.rs @@ -9,16 +9,21 @@ use std::borrow::Cow; const PUNY_PREFIX: &str = "xn--"; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum IdnaError { + #[class(RANGE)] #[error("Invalid input")] InvalidInput, + #[class(GENERIC)] #[error("Input would take more than 63 characters to encode")] InputTooLong, + #[class(RANGE)] #[error("Illegal input >= 0x80 (not a basic code point)")] IllegalInput, } +deno_core::js_error_wrapper!(idna::Errors, JsIdnaErrors, "Error"); + /// map a domain by mapping each label with the given function fn map_domain( domain: &str, @@ -113,8 +118,8 @@ pub fn op_node_idna_punycode_to_unicode( #[string] pub fn op_node_idna_domain_to_ascii( #[string] domain: String, -) -> Result { - idna::domain_to_ascii(&domain) +) -> Result { + idna::domain_to_ascii(&domain).map_err(Into::into) } /// Converts a domain to Unicode as per the IDNA spec diff --git a/ext/node/ops/inspector.rs b/ext/node/ops/inspector.rs index 34a7e004c1d946..d6034d4a9acc91 100644 --- a/ext/node/ops/inspector.rs +++ b/ext/node/ops/inspector.rs @@ -1,8 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::NodePermissions; -use deno_core::anyhow::Error; -use deno_core::error::generic_error; +use deno_core::error::JsNativeError; use deno_core::futures::channel::mpsc; use deno_core::op2; use deno_core::v8; @@ -25,7 +24,7 @@ pub fn op_inspector_open

( _state: &mut OpState, _port: Option, #[string] _host: Option, -) -> Result<(), Error> +) -> Result<(), JsNativeError> where P: NodePermissions + 'static, { @@ -85,6 +84,16 @@ struct JSInspectorSession { impl GarbageCollected for JSInspectorSession {} +#[derive(Debug, thiserror::Error, deno_core::JsError)] +pub enum InspectorConnectError { + #[class(inherit)] + #[error(transparent)] + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(GENERIC)] + #[error("connectToMainThread not supported")] + ConnectToMainThreadUnsupported, +} + #[op2] #[cppgc] pub fn op_inspector_connect<'s, P>( @@ -93,7 +102,7 @@ pub fn op_inspector_connect<'s, P>( state: &mut OpState, connect_to_main_thread: bool, callback: v8::Local<'s, v8::Function>, -) -> Result +) -> Result where P: NodePermissions + 'static, { @@ -102,7 +111,7 @@ where .check_sys("inspector", "inspector.Session.connect")?; if connect_to_main_thread { - return Err(generic_error("connectToMainThread not supported")); + return Err(InspectorConnectError::ConnectToMainThreadUnsupported); } let context = scope.get_current_context(); diff --git a/ext/node/ops/ipc.rs b/ext/node/ops/ipc.rs index 672cf0d70709ef..e372787caa9fe9 100644 --- a/ext/node/ops/ipc.rs +++ b/ext/node/ops/ipc.rs @@ -25,6 +25,7 @@ mod impl_ { use deno_core::AsyncRefCell; use deno_core::CancelFuture; use deno_core::CancelHandle; + use deno_core::error::JsNativeError; use deno_core::ExternalOpsTracker; use deno_core::OpState; use deno_core::RcRef; @@ -80,7 +81,7 @@ mod impl_ { } else if value.is_string_object() { let str = deno_core::serde_v8::to_utf8( value.to_string(scope).ok_or_else(|| { - S::Error::custom(deno_core::error::generic_error( + S::Error::custom(deno_core::error::JsNativeError::generic( "toString on string object failed", )) })?, @@ -153,7 +154,7 @@ mod impl_ { map.end() } else { // TODO(nathanwhit): better error message - Err(S::Error::custom(deno_core::error::type_error(format!( + Err(S::Error::custom(JsNativeError::type_error(format!( "Unsupported type: {}", value.type_repr() )))) @@ -178,16 +179,20 @@ mod impl_ { )) } - #[derive(Debug, thiserror::Error)] + #[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum IpcError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - IpcJsonStream(#[from] IpcJsonStreamError), + IpcJsonStream(#[from] #[inherit] IpcJsonStreamError), + #[class(inherit)] #[error(transparent)] - Canceled(#[from] deno_core::Canceled), + Canceled(#[from] #[inherit] deno_core::Canceled), + #[class(inherit)] #[error("failed to serialize json value: {0}")] - SerdeJson(serde_json::Error), + SerdeJson(#[inherit] serde_json::Error), } #[op2(async)] @@ -212,7 +217,7 @@ mod impl_ { .borrow() .resource_table .get::(rid) - .map_err(IpcError::Resource)?; + ?; let old = stream .queued_bytes .fetch_add(serialized.len(), std::sync::atomic::Ordering::Relaxed); @@ -257,7 +262,7 @@ mod impl_ { .borrow() .resource_table .get::(rid) - .map_err(IpcError::Resource)?; + ?; let cancel = stream.cancel.clone(); let mut stream = RcRef::map(stream, |r| &r.read_half).borrow_mut().await; @@ -468,10 +473,12 @@ mod impl_ { } } - #[derive(Debug, thiserror::Error)] + #[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum IpcJsonStreamError { + #[class(inherit)] #[error("{0}")] - Io(#[source] std::io::Error), + Io(#[source] #[inherit] std::io::Error), + #[class(GENERIC)] #[error("{0}")] SimdJson(#[source] simd_json::Error), } diff --git a/ext/node/ops/os/mod.rs b/ext/node/ops/os/mod.rs index d291277ad4d896..f97e3b7e5f6b5d 100644 --- a/ext/node/ops/os/mod.rs +++ b/ext/node/ops/os/mod.rs @@ -5,20 +5,25 @@ use std::mem::MaybeUninit; use crate::NodePermissions; use deno_core::op2; use deno_core::OpState; +use deno_permissions::PermissionCheckError; mod cpus; pub mod priority; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum OsError { + #[class(inherit)] #[error(transparent)] - Priority(priority::PriorityError), + Priority(#[inherit] priority::PriorityError), + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] PermissionCheckError), + #[class(TYPE)] #[error("Failed to get cpu info")] FailedToGetCpuInfo, + #[class(inherit)] #[error("Failed to get user info")] - FailedToGetUserInfo(#[source] std::io::Error), + FailedToGetUserInfo(#[source] #[inherit] std::io::Error), } #[op2(fast)] @@ -215,7 +220,7 @@ where #[op2(fast)] pub fn op_geteuid

( state: &mut OpState, -) -> Result +) -> Result where P: NodePermissions + 'static, { @@ -236,7 +241,7 @@ where #[op2(fast)] pub fn op_getegid

( state: &mut OpState, -) -> Result +) -> Result where P: NodePermissions + 'static, { @@ -272,7 +277,7 @@ where #[string] pub fn op_homedir

( state: &mut OpState, -) -> Result, deno_core::error::AnyError> +) -> Result, PermissionCheckError> where P: NodePermissions + 'static, { diff --git a/ext/node/ops/os/priority.rs b/ext/node/ops/os/priority.rs index 9a1ebcca705c6a..9c89dfbcb69e73 100644 --- a/ext/node/ops/os/priority.rs +++ b/ext/node/ops/os/priority.rs @@ -2,11 +2,13 @@ pub use impl_::*; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum PriorityError { + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), #[cfg(windows)] + #[class(TYPE)] #[error("Invalid priority")] InvalidPriority, } diff --git a/ext/node/ops/process.rs b/ext/node/ops/process.rs index 282567226ea6cc..cd6ce70803ec49 100644 --- a/ext/node/ops/process.rs +++ b/ext/node/ops/process.rs @@ -50,7 +50,7 @@ pub fn op_node_process_kill( state: &mut OpState, #[smi] pid: i32, #[smi] sig: i32, -) -> Result { +) -> Result { state .borrow_mut::() .check_run_all("process.kill")?; diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index 30db8b629325d8..44d25e157fa293 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -18,7 +18,8 @@ use std::cell::RefCell; use std::path::Path; use std::path::PathBuf; use std::rc::Rc; - +use deno_core::error::JsNativeError; +use deno_permissions::PermissionCheckError; use crate::NodePermissions; use crate::NodeRequireLoaderRc; use crate::NodeResolverRc; @@ -29,7 +30,7 @@ use crate::PackageJsonResolverRc; fn ensure_read_permission<'a, P>( state: &mut OpState, file_path: &'a Path, -) -> Result, deno_core::error::AnyError> +) -> Result, PermissionCheckError> where P: NodePermissions + 'static, { @@ -38,34 +39,45 @@ where loader.ensure_read_permission(permissions, file_path) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum RequireError { + #[class(inherit)] #[error(transparent)] - UrlParse(#[from] url::ParseError), + UrlParse(#[from] #[inherit] url::ParseError), + #[class(inherit)] #[error(transparent)] - Permission(deno_core::error::AnyError), + Permission(#[from] #[inherit] PermissionCheckError), + #[class(GENERIC)] #[error(transparent)] PackageExportsResolve( #[from] node_resolver::errors::PackageExportsResolveError, ), + #[class(GENERIC)] #[error(transparent)] PackageJsonLoad(#[from] node_resolver::errors::PackageJsonLoadError), + #[class(GENERIC)] #[error(transparent)] ClosestPkgJson(#[from] node_resolver::errors::ClosestPkgJsonError), + #[class(GENERIC)] #[error(transparent)] PackageImportsResolve( #[from] node_resolver::errors::PackageImportsResolveError, ), + #[class(GENERIC)] #[error(transparent)] FilePathConversion(#[from] deno_path_util::UrlToFilePathError), + #[class(GENERIC)] #[error(transparent)] UrlConversion(#[from] deno_path_util::PathToUrlError), + #[class(inherit)] #[error(transparent)] - Fs(#[from] deno_io::fs::FsError), + Fs(#[from] #[inherit] deno_io::fs::FsError), + #[class(inherit)] #[error(transparent)] - ReadModule(deno_core::error::AnyError), + ReadModule(#[from] #[inherit] JsNativeError), + #[class(inherit)] #[error("Unable to get CWD: {0}")] - UnableToGetCwd(deno_io::fs::FsError), + UnableToGetCwd(#[inherit] deno_io::fs::FsError), } #[op2] @@ -293,7 +305,7 @@ pub fn op_require_path_is_absolute(#[string] p: String) -> bool { pub fn op_require_stat

( state: &mut OpState, #[string] path: String, -) -> Result +) -> Result where P: NodePermissions + 'static, { @@ -322,7 +334,7 @@ where { let path = PathBuf::from(request); let path = ensure_read_permission::

(state, &path) - .map_err(RequireError::Permission)?; + ?; let fs = state.borrow::(); let canonicalized_path = deno_path_util::strip_unc_prefix(fs.realpath_sync(&path)?); @@ -349,12 +361,12 @@ pub fn op_require_path_resolve(#[serde] parts: Vec) -> String { #[string] pub fn op_require_path_dirname( #[string] request: String, -) -> Result { +) -> Result { let p = PathBuf::from(request); if let Some(parent) = p.parent() { Ok(parent.to_string_lossy().into_owned()) } else { - Err(deno_core::error::generic_error( + Err(JsNativeError::generic( "Path doesn't have a parent", )) } @@ -364,12 +376,12 @@ pub fn op_require_path_dirname( #[string] pub fn op_require_path_basename( #[string] request: String, -) -> Result { +) -> Result { let p = PathBuf::from(request); if let Some(path) = p.file_name() { Ok(path.to_string_lossy().into_owned()) } else { - Err(deno_core::error::generic_error( + Err(JsNativeError::generic( "Path doesn't have a file name", )) } @@ -382,7 +394,7 @@ pub fn op_require_try_self_parent_path

( has_parent: bool, #[string] maybe_parent_filename: Option, #[string] maybe_parent_id: Option, -) -> Result, deno_core::error::AnyError> +) -> Result, PermissionCheckError> where P: NodePermissions + 'static, { @@ -482,7 +494,7 @@ where let file_path = PathBuf::from(file_path); // todo(dsherret): there's multiple borrows to NodeRequireLoaderRc here let file_path = ensure_read_permission::

(state, &file_path) - .map_err(RequireError::Permission)?; + ?; let loader = state.borrow::(); loader .load_text_file_lossy(&file_path) @@ -564,19 +576,21 @@ where })) } +deno_core::js_error_wrapper!(node_resolver::errors::ClosestPkgJsonError, JsClosestPkgJsonError, "Error"); + #[op2] #[serde] pub fn op_require_read_closest_package_json

( state: &mut OpState, #[string] filename: String, -) -> Result, node_resolver::errors::ClosestPkgJsonError> +) -> Result, JsClosestPkgJsonError> where P: NodePermissions + 'static, { let filename = PathBuf::from(filename); // permissions: allow reading the closest package.json files let pkg_json_resolver = state.borrow::(); - pkg_json_resolver.get_closest_package_json_from_path(&filename) + pkg_json_resolver.get_closest_package_json_from_path(&filename).map_err(Into::into) } #[op2] @@ -612,7 +626,7 @@ where { let referrer_path = PathBuf::from(&referrer_filename); let referrer_path = ensure_read_permission::

(state, &referrer_path) - .map_err(RequireError::Permission)?; + ?; let pkg_json_resolver = state.borrow::(); let Some(pkg) = pkg_json_resolver.get_closest_package_json_from_path(&referrer_path)? diff --git a/ext/node/ops/util.rs b/ext/node/ops/util.rs index 1c177ac0431d55..b4580716456c80 100644 --- a/ext/node/ops/util.rs +++ b/ext/node/ops/util.rs @@ -21,7 +21,7 @@ enum HandleType { pub fn op_node_guess_handle_type( state: &mut OpState, rid: u32, -) -> Result { +) -> Result { let handle = state.resource_table.get_handle(rid)?; let handle_type = match handle { diff --git a/ext/node/ops/v8.rs b/ext/node/ops/v8.rs index 61f67f11f73a27..966bfc8c8d8586 100644 --- a/ext/node/ops/v8.rs +++ b/ext/node/ops/v8.rs @@ -6,6 +6,7 @@ use deno_core::FastString; use deno_core::GarbageCollected; use deno_core::ToJsBuffer; use std::ptr::NonNull; +use deno_core::error::JsNativeError; use v8::ValueDeserializerHelper; use v8::ValueSerializerHelper; @@ -268,11 +269,11 @@ pub fn op_v8_new_deserializer( scope: &mut v8::HandleScope, obj: v8::Local, buffer: v8::Local, -) -> Result, deno_core::error::AnyError> { +) -> Result, JsNativeError> { let offset = buffer.byte_offset(); let len = buffer.byte_length(); let backing_store = buffer.get_backing_store().ok_or_else(|| { - deno_core::error::generic_error( + JsNativeError::generic( "deserialization buffer has no backing store", ) })?; @@ -316,10 +317,10 @@ pub fn op_v8_transfer_array_buffer_de( #[op2(fast)] pub fn op_v8_read_double( #[cppgc] deser: &Deserializer, -) -> Result { +) -> Result { let mut double = 0f64; if !deser.inner.read_double(&mut double) { - return Err(deno_core::error::type_error("ReadDouble() failed")); + return Err(JsNativeError::type_error("ReadDouble() failed")); } Ok(double) } @@ -354,10 +355,10 @@ pub fn op_v8_read_raw_bytes( #[op2(fast)] pub fn op_v8_read_uint32( #[cppgc] deser: &Deserializer, -) -> Result { +) -> Result { let mut value = 0; if !deser.inner.read_uint32(&mut value) { - return Err(deno_core::error::type_error("ReadUint32() failed")); + return Err(JsNativeError::type_error("ReadUint32() failed")); } Ok(value) @@ -367,10 +368,10 @@ pub fn op_v8_read_uint32( #[serde] pub fn op_v8_read_uint64( #[cppgc] deser: &Deserializer, -) -> Result<(u32, u32), deno_core::error::AnyError> { +) -> Result<(u32, u32), JsNativeError> { let mut val = 0; if !deser.inner.read_uint64(&mut val) { - return Err(deno_core::error::type_error("ReadUint64() failed")); + return Err(JsNativeError::type_error("ReadUint64() failed")); } Ok(((val >> 32) as u32, val as u32)) diff --git a/ext/node/ops/vm_internal.rs b/ext/node/ops/vm_internal.rs index 815f570eada65e..a611c7034e3d1c 100644 --- a/ext/node/ops/vm_internal.rs +++ b/ext/node/ops/vm_internal.rs @@ -1,8 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::create_host_defined_options; -use deno_core::error::type_error; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::v8; use deno_core::v8::MapFnTo; @@ -19,7 +18,7 @@ impl ContextifyScript { pub fn new( scope: &mut v8::HandleScope, source_str: v8::Local, - ) -> Result { + ) -> Result { let resource_name = v8::undefined(scope); let host_defined_options = create_host_defined_options(scope); let origin = v8::ScriptOrigin::new( @@ -44,7 +43,7 @@ impl ContextifyScript { v8::script_compiler::CompileOptions::NoCompileOptions, v8::script_compiler::NoCacheReason::NoReason, ) - .ok_or_else(|| type_error("Failed to compile script"))?; + .ok_or_else(|| JsNativeError::type_error("Failed to compile script"))?; let script = v8::Global::new(scope, unbound_script); Ok(Self { script }) } diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index d2e57588265360..4136bc56e70af4 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -7,7 +7,7 @@ use deno_fs::FileSystemRc; use std::borrow::Cow; use std::path::Path; use std::path::PathBuf; - +use deno_permissions::PermissionCheckError; use crate::NodePermissions; use crate::NodeRequireLoaderRc; @@ -15,7 +15,7 @@ use crate::NodeRequireLoaderRc; fn ensure_read_permission<'a, P>( state: &mut OpState, file_path: &'a Path, -) -> Result, deno_core::error::AnyError> +) -> Result, PermissionCheckError> where P: NodePermissions + 'static, { @@ -24,24 +24,32 @@ where loader.ensure_read_permission(permissions, file_path) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum WorkerThreadsFilenameError { + #[class(inherit)] #[error(transparent)] - Permission(deno_core::error::AnyError), + Permission(#[from] #[inherit] PermissionCheckError), + #[class(inherit)] #[error("{0}")] - UrlParse(#[from] url::ParseError), + UrlParse(#[from] #[inherit] url::ParseError), + #[class(GENERIC)] #[error("Relative path entries must start with '.' or '..'")] InvalidRelativeUrl, + #[class(GENERIC)] #[error("URL from Path-String")] UrlFromPathString, + #[class(GENERIC)] #[error("URL to Path-String")] UrlToPathString, + #[class(GENERIC)] #[error("URL to Path")] UrlToPath, + #[class(GENERIC)] #[error("File not found [{0:?}]")] FileNotFound(PathBuf), + #[class(inherit)] #[error(transparent)] - Fs(#[from] deno_io::fs::FsError), + Fs(#[from] #[inherit] deno_io::fs::FsError), } // todo(dsherret): we should remove this and do all this work inside op_create_worker @@ -65,7 +73,7 @@ where return Err(WorkerThreadsFilenameError::InvalidRelativeUrl); } let path = ensure_read_permission::

(state, &path) - .map_err(WorkerThreadsFilenameError::Permission)?; + ?; let fs = state.borrow::(); let canonicalized_path = deno_path_util::strip_unc_prefix(fs.realpath_sync(&path)?); @@ -76,7 +84,7 @@ where .to_file_path() .map_err(|_| WorkerThreadsFilenameError::UrlToPathString)?; let url_path = ensure_read_permission::

(state, &url_path) - .map_err(WorkerThreadsFilenameError::Permission)?; + ?; let fs = state.borrow::(); if !fs.exists_sync(&url_path) { return Err(WorkerThreadsFilenameError::FileNotFound( diff --git a/ext/node/ops/zlib/brotli.rs b/ext/node/ops/zlib/brotli.rs index 1a681ff7f719a6..45cb89944a0a07 100644 --- a/ext/node/ops/zlib/brotli.rs +++ b/ext/node/ops/zlib/brotli.rs @@ -17,20 +17,26 @@ use deno_core::ToJsBuffer; use std::cell::RefCell; use std::io::Read; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum BrotliError { + #[class(TYPE)] #[error("Invalid encoder mode")] InvalidEncoderMode, + #[class(TYPE)] #[error("Failed to compress")] CompressFailed, + #[class(TYPE)] #[error("Failed to decompress")] DecompressFailed, + #[class(inherit)] #[error(transparent)] - Join(#[from] tokio::task::JoinError), + Join(#[from] #[inherit] tokio::task::JoinError), + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error("{0}")] - Io(std::io::Error), + Io(#[inherit] std::io::Error), } fn encoder_mode(mode: u32) -> Result { @@ -169,7 +175,7 @@ pub fn op_brotli_compress_stream( let ctx = state .resource_table .get::(rid) - .map_err(BrotliError::Resource)?; + ?; let mut inst = ctx.inst.borrow_mut(); let mut output_offset = 0; @@ -201,7 +207,7 @@ pub fn op_brotli_compress_stream_end( let ctx = state .resource_table .get::(rid) - .map_err(BrotliError::Resource)?; + ?; let mut inst = ctx.inst.borrow_mut(); let mut output_offset = 0; @@ -279,7 +285,7 @@ pub fn op_brotli_decompress_stream( let ctx = state .resource_table .get::(rid) - .map_err(BrotliError::Resource)?; + ?; let mut inst = ctx.inst.borrow_mut(); let mut output_offset = 0; @@ -310,7 +316,7 @@ pub fn op_brotli_decompress_stream_end( let ctx = state .resource_table .get::(rid) - .map_err(BrotliError::Resource)?; + ?; let mut inst = ctx.inst.borrow_mut(); let mut output_offset = 0; diff --git a/ext/node/ops/zlib/mod.rs b/ext/node/ops/zlib/mod.rs index e75ef050d23d7a..0b0a2ba12c064e 100644 --- a/ext/node/ops/zlib/mod.rs +++ b/ext/node/ops/zlib/mod.rs @@ -3,6 +3,7 @@ use deno_core::op2; use std::borrow::Cow; use std::cell::RefCell; +use deno_core::error::JsNativeError; use zlib::*; mod alloc; @@ -16,11 +17,11 @@ use mode::Mode; use self::stream::StreamWrapper; #[inline] -fn check(condition: bool, msg: &str) -> Result<(), deno_core::error::AnyError> { +fn check(condition: bool, msg: &str) -> Result<(), JsNativeError> { if condition { Ok(()) } else { - Err(deno_core::error::type_error(msg.to_string())) + Err(JsNativeError::type_error(msg.to_string())) } } @@ -55,7 +56,7 @@ impl ZlibInner { out_off: u32, out_len: u32, flush: Flush, - ) -> Result<(), deno_core::error::AnyError> { + ) -> Result<(), JsNativeError> { check(self.init_done, "write before init")?; check(!self.write_in_progress, "write already in progress")?; check(!self.pending_close, "close already in progress")?; @@ -64,11 +65,11 @@ impl ZlibInner { let next_in = input .get(in_off as usize..in_off as usize + in_len as usize) - .ok_or_else(|| deno_core::error::type_error("invalid input range"))? + .ok_or_else(|| JsNativeError::type_error("invalid input range"))? .as_ptr() as *mut _; let next_out = out .get_mut(out_off as usize..out_off as usize + out_len as usize) - .ok_or_else(|| deno_core::error::type_error("invalid output range"))? + .ok_or_else(|| JsNativeError::type_error("invalid output range"))? .as_mut_ptr(); self.strm.avail_in = in_len; @@ -83,7 +84,7 @@ impl ZlibInner { fn do_write( &mut self, flush: Flush, - ) -> Result<(), deno_core::error::AnyError> { + ) -> Result<(), JsNativeError> { self.flush = flush; match self.mode { Mode::Deflate | Mode::Gzip | Mode::DeflateRaw => { @@ -129,7 +130,7 @@ impl ZlibInner { self.mode = Mode::Inflate; } } else if next_expected_header_byte.is_some() { - return Err(deno_core::error::type_error( + return Err(JsNativeError::type_error( "invalid number of gzip magic number bytes read", )); } @@ -183,7 +184,7 @@ impl ZlibInner { Ok(()) } - fn init_stream(&mut self) -> Result<(), deno_core::error::AnyError> { + fn init_stream(&mut self) -> Result<(), JsNativeError> { match self.mode { Mode::Gzip | Mode::Gunzip => self.window_bits += 16, Mode::Unzip => self.window_bits += 32, @@ -201,7 +202,7 @@ impl ZlibInner { Mode::Inflate | Mode::Gunzip | Mode::InflateRaw | Mode::Unzip => { self.strm.inflate_init(self.window_bits) } - Mode::None => return Err(deno_core::error::type_error("Unknown mode")), + Mode::None => return Err(JsNativeError::type_error("Unknown mode")), }; self.write_in_progress = false; @@ -210,7 +211,7 @@ impl ZlibInner { Ok(()) } - fn close(&mut self) -> Result { + fn close(&mut self) -> Result { if self.write_in_progress { self.pending_close = true; return Ok(false); @@ -256,14 +257,17 @@ pub fn op_zlib_new(#[smi] mode: i32) -> Result { }) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum ZlibError { + #[class(TYPE)] #[error("zlib not initialized")] NotInitialized, + #[class(inherit)] #[error(transparent)] - Mode(#[from] mode::ModeError), + Mode(#[from] #[inherit] mode::ModeError), + #[class(inherit)] #[error(transparent)] - Other(#[from] deno_core::error::AnyError), + Other(#[from] #[inherit] JsNativeError), } #[op2(fast)] diff --git a/ext/node/ops/zlib/mode.rs b/ext/node/ops/zlib/mode.rs index 41565f9b1142df..ecd9bc300a2d87 100644 --- a/ext/node/ops/zlib/mode.rs +++ b/ext/node/ops/zlib/mode.rs @@ -1,6 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(GENERIC)] #[error("bad argument")] pub struct ModeError; diff --git a/ext/tls/lib.rs b/ext/tls/lib.rs index 883d2995e4b913..60fa8a874dda78 100644 --- a/ext/tls/lib.rs +++ b/ext/tls/lib.rs @@ -26,22 +26,29 @@ use std::io::BufReader; use std::io::Cursor; use std::net::IpAddr; use std::sync::Arc; +use deno_core::error::JsNativeError; mod tls_key; pub use tls_key::*; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum TlsError { + #[class(GENERIC)] #[error(transparent)] Rustls(#[from] rustls::Error), + #[class(inherit)] #[error("Unable to add pem file to certificate store: {0}")] - UnableAddPemFileToCert(std::io::Error), + UnableAddPemFileToCert(#[inherit] std::io::Error), + #[class("InvalidData")] #[error("Unable to decode certificate")] CertInvalid, + #[class("InvalidData")] #[error("No certificates found in certificate data")] CertsNotFound, + #[class("InvalidData")] #[error("No keys found in key data")] KeysNotFound, + #[class("InvalidData")] #[error("Unable to decode key")] KeyDecode, } @@ -53,7 +60,7 @@ pub enum TlsError { pub trait RootCertStoreProvider: Send + Sync { fn get_or_try_init( &self, - ) -> Result<&RootCertStore, deno_core::error::AnyError>; + ) -> Result<&RootCertStore, JsNativeError>; } // This extension has no runtime apis, it only exports some shared native functions. diff --git a/ext/url/lib.rs b/ext/url/lib.rs index f8946532ae613e..12a1c01e6ee1c5 100644 --- a/ext/url/lib.rs +++ b/ext/url/lib.rs @@ -2,8 +2,7 @@ mod urlpattern; -use deno_core::error::type_error; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::url::form_urlencoded; use deno_core::url::quirks; @@ -220,7 +219,7 @@ pub fn op_url_reparse( pub fn op_url_parse_search_params( #[string] args: Option, #[buffer] zero_copy: Option, -) -> Result, AnyError> { +) -> Result, JsNativeError> { let params = match (args, zero_copy) { (None, Some(zero_copy)) => form_urlencoded::parse(&zero_copy) .into_iter() @@ -230,7 +229,7 @@ pub fn op_url_parse_search_params( .into_iter() .map(|(k, v)| (k.as_ref().to_owned(), v.as_ref().to_owned())) .collect(), - _ => return Err(type_error("invalid parameters")), + _ => return Err(JsNativeError::type_error("invalid parameters")), }; Ok(params) } diff --git a/ext/url/urlpattern.rs b/ext/url/urlpattern.rs index 7d4e8ee71b06de..711b82a3739128 100644 --- a/ext/url/urlpattern.rs +++ b/ext/url/urlpattern.rs @@ -7,9 +7,7 @@ use urlpattern::quirks::MatchInput; use urlpattern::quirks::StringOrInit; use urlpattern::quirks::UrlPattern; -#[derive(Debug, thiserror::Error)] -#[error(transparent)] -pub struct UrlPatternError(urlpattern::Error); +deno_core::js_error_wrapper!(urlpattern::Error, UrlPatternError, "TypeError"); #[op2] #[serde] @@ -19,11 +17,9 @@ pub fn op_urlpattern_parse( #[serde] options: urlpattern::UrlPatternOptions, ) -> Result { let init = - quirks::process_construct_pattern_input(input, base_url.as_deref()) - .map_err(UrlPatternError)?; + quirks::process_construct_pattern_input(input, base_url.as_deref())?; - let pattern = - quirks::parse_pattern(init, options).map_err(UrlPatternError)?; + let pattern = quirks::parse_pattern(init, options)?; Ok(pattern) } @@ -34,8 +30,7 @@ pub fn op_urlpattern_process_match_input( #[serde] input: StringOrInit, #[string] base_url: Option, ) -> Result, UrlPatternError> { - let res = quirks::process_match_input(input, base_url.as_deref()) - .map_err(UrlPatternError)?; + let res = quirks::process_match_input(input, base_url.as_deref())?; let (input, inputs) = match res { Some((input, inputs)) => (input, inputs), diff --git a/ext/web/blob.rs b/ext/web/blob.rs index bc64a0f27eba17..3ba6216e862973 100644 --- a/ext/web/blob.rs +++ b/ext/web/blob.rs @@ -17,14 +17,18 @@ use serde::Deserialize; use serde::Serialize; use uuid::Uuid; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum BlobError { + #[class(TYPE)] #[error("Blob part not found")] BlobPartNotFound, + #[class(TYPE)] #[error("start + len can not be larger than blob part size")] SizeLargerThanBlobPart, + #[class(TYPE)] #[error("Blob URLs are not supported in this context")] BlobURLsNotSupported, + #[class(GENERIC)] #[error(transparent)] Url(#[from] deno_core::url::ParseError), } diff --git a/ext/web/compression.rs b/ext/web/compression.rs index 6967009915d419..f21835adbb0649 100644 --- a/ext/web/compression.rs +++ b/ext/web/compression.rs @@ -11,16 +11,20 @@ use flate2::Compression; use std::cell::RefCell; use std::io::Write; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CompressionError { + #[class(TYPE)] #[error("Unsupported format")] UnsupportedFormat, + #[class(TYPE)] #[error("resource is closed")] ResourceClosed, + #[class(TYPE)] #[error(transparent)] IoTypeError(std::io::Error), + #[class(inherit)] #[error(transparent)] - Io(std::io::Error), + Io(#[inherit] std::io::Error), } #[derive(Debug)] diff --git a/ext/web/lib.rs b/ext/web/lib.rs index af0fc2c276563e..d6c9fe5b56588f 100644 --- a/ext/web/lib.rs +++ b/ext/web/lib.rs @@ -129,20 +129,27 @@ deno_core::extension!(deno_web, } ); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum WebError { + #[class("DOMExceptionInvalidCharacterError")] #[error("Failed to decode base64")] Base64Decode, + #[class(RANGE)] #[error("The encoding label provided ('{0}') is invalid.")] InvalidEncodingLabel(String), + #[class(TYPE)] #[error("buffer exceeds maximum length")] BufferTooLong, + #[class(RANGE)] #[error("Value too large to decode")] ValueTooLarge, + #[class(RANGE)] #[error("Provided buffer too small")] BufferTooSmall, + #[class(TYPE)] #[error("The encoded data is not valid")] DataInvalid, + #[class(GENERIC)] #[error(transparent)] DataError(#[from] v8::DataError), } diff --git a/ext/web/message_port.rs b/ext/web/message_port.rs index 1a4a09073d176d..459ea2496ef835 100644 --- a/ext/web/message_port.rs +++ b/ext/web/message_port.rs @@ -21,18 +21,23 @@ use tokio::sync::mpsc::unbounded_channel; use tokio::sync::mpsc::UnboundedReceiver; use tokio::sync::mpsc::UnboundedSender; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum MessagePortError { + #[class(TYPE)] #[error("Invalid message port transfer")] InvalidTransfer, + #[class(TYPE)] #[error("Message port is not ready for transfer")] NotReady, + #[class(TYPE)] #[error("Can not transfer self message port")] TransferSelf, + #[class(inherit)] #[error(transparent)] - Canceled(#[from] deno_core::Canceled), + Canceled(#[from] #[inherit] deno_core::Canceled), + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[inherit] deno_core::error::ResourceError), } pub enum Transferable { diff --git a/ext/web/stream_resource.rs b/ext/web/stream_resource.rs index c44a385ea9d59d..b544bce343a595 100644 --- a/ext/web/stream_resource.rs +++ b/ext/web/stream_resource.rs @@ -30,10 +30,12 @@ use std::task::Context; use std::task::Poll; use std::task::Waker; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum StreamResourceError { + #[class(inherit)] #[error(transparent)] - Canceled(#[from] deno_core::Canceled), + Canceled(#[from] #[inherit] deno_core::Canceled), + #[class(TYPE)] #[error("{0}")] Js(String), } @@ -403,7 +405,10 @@ impl Resource for ReadableStreamResource { } fn read(self: Rc, limit: usize) -> AsyncResult { - Box::pin(ReadableStreamResource::read(self, limit).map_err(|e| e.into())) + Box::pin( + ReadableStreamResource::read(self, limit) + .map_err(|e| deno_core::error::JsNativeError::from_err(e)), + ) } fn close(self: Rc) { diff --git a/ext/webgpu/binding.rs b/ext/webgpu/binding.rs index 41708acc7f1a43..7b8c8eb9b41311 100644 --- a/ext/webgpu/binding.rs +++ b/ext/webgpu/binding.rs @@ -1,6 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::AnyError; +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -169,7 +169,7 @@ pub fn op_webgpu_create_bind_group_layout( #[smi] device_rid: ResourceId, #[string] label: Cow, #[serde] entries: Vec, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table @@ -208,7 +208,7 @@ pub fn op_webgpu_create_pipeline_layout( #[smi] device_rid: ResourceId, #[string] label: Cow, #[serde] bind_group_layouts: Vec, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table @@ -222,7 +222,7 @@ pub fn op_webgpu_create_pipeline_layout( state.resource_table.get::(rid)?; Ok(bind_group_layout.1) }) - .collect::, AnyError>>()?; + .collect::, ResourceError>>()?; let descriptor = wgpu_core::binding_model::PipelineLayoutDescriptor { label: Some(label), @@ -255,7 +255,7 @@ pub fn op_webgpu_create_bind_group( #[string] label: Cow, #[smi] layout: ResourceId, #[serde] entries: Vec, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table @@ -303,7 +303,7 @@ pub fn op_webgpu_create_bind_group( }, }) }) - .collect::, AnyError>>()?; + .collect::, ResourceError>>()?; let bind_group_layout = state.resource_table.get::(layout)?; diff --git a/ext/webgpu/buffer.rs b/ext/webgpu/buffer.rs index c2b53890e0ccef..d73d52538a5dd5 100644 --- a/ext/webgpu/buffer.rs +++ b/ext/webgpu/buffer.rs @@ -13,12 +13,15 @@ use std::time::Duration; use super::error::WebGpuResult; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum BufferError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(TYPE)] #[error("usage is not valid")] InvalidUsage, + #[class("DOMExceptionOperationError")] #[error(transparent)] Access(wgpu_core::resource::BufferAccessError), } @@ -57,8 +60,7 @@ pub fn op_webgpu_create_buffer( let instance = state.borrow::(); let device_resource = state .resource_table - .get::(device_rid) - .map_err(BufferError::Resource)?; + .get::(device_rid)?; let device = device_resource.1; let descriptor = wgpu_core::resource::BufferDescriptor { @@ -91,15 +93,12 @@ pub async fn op_webgpu_buffer_get_map_async( { let state_ = state.borrow(); let instance = state_.borrow::(); - let buffer_resource = state_ - .resource_table - .get::(buffer_rid) - .map_err(BufferError::Resource)?; + let buffer_resource = + state_.resource_table.get::(buffer_rid)?; let buffer = buffer_resource.1; let device_resource = state_ .resource_table - .get::(device_rid) - .map_err(BufferError::Resource)?; + .get::(device_rid)?; device = device_resource.1; let done_ = done.clone(); @@ -154,10 +153,7 @@ pub fn op_webgpu_buffer_get_mapped_range( #[buffer] buf: &mut [u8], ) -> Result { let instance = state.borrow::(); - let buffer_resource = state - .resource_table - .get::(buffer_rid) - .map_err(BufferError::Resource)?; + let buffer_resource = state.resource_table.get::(buffer_rid)?; let buffer = buffer_resource.1; let (slice_pointer, range_size) = @@ -191,13 +187,9 @@ pub fn op_webgpu_buffer_unmap( ) -> Result { let mapped_resource = state .resource_table - .take::(mapped_rid) - .map_err(BufferError::Resource)?; + .take::(mapped_rid)?; let instance = state.borrow::(); - let buffer_resource = state - .resource_table - .get::(buffer_rid) - .map_err(BufferError::Resource)?; + let buffer_resource = state.resource_table.get::(buffer_rid)?; let buffer = buffer_resource.1; if let Some(buf) = buf { diff --git a/ext/webgpu/bundle.rs b/ext/webgpu/bundle.rs index d9a5b29539aa93..0b57bc3b37892f 100644 --- a/ext/webgpu/bundle.rs +++ b/ext/webgpu/bundle.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -11,10 +12,12 @@ use std::rc::Rc; use super::error::WebGpuResult; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum BundleError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] ResourceError), + #[class(TYPE)] #[error("size must be larger than 0")] InvalidSize, } @@ -59,7 +62,7 @@ pub struct CreateRenderBundleEncoderArgs { pub fn op_webgpu_create_render_bundle_encoder( state: &mut OpState, #[serde] args: CreateRenderBundleEncoderArgs, -) -> Result { +) -> Result { let device_resource = state .resource_table .get::(args.device_rid)?; @@ -106,7 +109,7 @@ pub fn op_webgpu_render_bundle_encoder_finish( state: &mut OpState, #[smi] render_bundle_encoder_rid: ResourceId, #[string] label: Cow, -) -> Result { +) -> Result { let render_bundle_encoder_resource = state .resource_table @@ -137,7 +140,7 @@ pub fn op_webgpu_render_bundle_encoder_set_bind_group( #[buffer] dynamic_offsets_data: &[u32], #[number] dynamic_offsets_data_start: usize, #[number] dynamic_offsets_data_length: usize, -) -> Result { +) -> Result { let bind_group_resource = state .resource_table @@ -177,7 +180,7 @@ pub fn op_webgpu_render_bundle_encoder_push_debug_group( state: &mut OpState, #[smi] render_bundle_encoder_rid: ResourceId, #[string] group_label: &str, -) -> Result { +) -> Result { let render_bundle_encoder_resource = state .resource_table @@ -201,7 +204,7 @@ pub fn op_webgpu_render_bundle_encoder_push_debug_group( pub fn op_webgpu_render_bundle_encoder_pop_debug_group( state: &mut OpState, #[smi] render_bundle_encoder_rid: ResourceId, -) -> Result { +) -> Result { let render_bundle_encoder_resource = state .resource_table @@ -220,7 +223,7 @@ pub fn op_webgpu_render_bundle_encoder_insert_debug_marker( state: &mut OpState, #[smi] render_bundle_encoder_rid: ResourceId, #[string] marker_label: &str, -) -> Result { +) -> Result { let render_bundle_encoder_resource = state .resource_table @@ -245,7 +248,7 @@ pub fn op_webgpu_render_bundle_encoder_set_pipeline( state: &mut OpState, #[smi] render_bundle_encoder_rid: ResourceId, #[smi] pipeline: ResourceId, -) -> Result { +) -> Result { let render_pipeline_resource = state .resource_table @@ -275,12 +278,11 @@ pub fn op_webgpu_render_bundle_encoder_set_index_buffer( ) -> Result { let buffer_resource = state .resource_table - .get::(buffer) - .map_err(BundleError::Resource)?; - let render_bundle_encoder_resource = state - .resource_table - .get::(render_bundle_encoder_rid) - .map_err(BundleError::Resource)?; + .get::(buffer)?; + let render_bundle_encoder_resource = + state + .resource_table + .get::(render_bundle_encoder_rid)?; let size = Some(std::num::NonZeroU64::new(size).ok_or(BundleError::InvalidSize)?); @@ -304,12 +306,11 @@ pub fn op_webgpu_render_bundle_encoder_set_vertex_buffer( ) -> Result { let buffer_resource = state .resource_table - .get::(buffer) - .map_err(BundleError::Resource)?; - let render_bundle_encoder_resource = state - .resource_table - .get::(render_bundle_encoder_rid) - .map_err(BundleError::Resource)?; + .get::(buffer)?; + let render_bundle_encoder_resource = + state + .resource_table + .get::(render_bundle_encoder_rid)?; let size = if let Some(size) = size { Some(std::num::NonZeroU64::new(size).ok_or(BundleError::InvalidSize)?) } else { @@ -336,7 +337,7 @@ pub fn op_webgpu_render_bundle_encoder_draw( instance_count: u32, first_vertex: u32, first_instance: u32, -) -> Result { +) -> Result { let render_bundle_encoder_resource = state .resource_table @@ -363,7 +364,7 @@ pub fn op_webgpu_render_bundle_encoder_draw_indexed( first_index: u32, base_vertex: i32, first_instance: u32, -) -> Result { +) -> Result { let render_bundle_encoder_resource = state .resource_table @@ -388,7 +389,7 @@ pub fn op_webgpu_render_bundle_encoder_draw_indirect( #[smi] render_bundle_encoder_rid: ResourceId, #[smi] indirect_buffer: ResourceId, #[number] indirect_offset: u64, -) -> Result { +) -> Result { let buffer_resource = state .resource_table .get::(indirect_buffer)?; diff --git a/ext/webgpu/byow.rs b/ext/webgpu/byow.rs index c9e1177b1efe53..c76f2f4f4044b1 100644 --- a/ext/webgpu/byow.rs +++ b/ext/webgpu/byow.rs @@ -11,21 +11,25 @@ use std::ffi::c_void; target_os = "openbsd" ))] use std::ptr::NonNull; - use crate::surface::WebGpuSurface; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum ByowError { + #[class(TYPE)] #[error("Cannot create surface outside of WebGPU context. Did you forget to call `navigator.gpu.requestAdapter()`?")] WebGPUNotInitiated, + #[class(TYPE)] #[error("Invalid parameters")] InvalidParameters, + #[class(GENERIC)] #[error(transparent)] CreateSurface(wgpu_core::instance::CreateSurfaceError), #[cfg(target_os = "windows")] + #[class(TYPE)] #[error("Invalid system on Windows")] InvalidSystem, #[cfg(target_os = "macos")] + #[class(TYPE)] #[error("Invalid system on macOS")] InvalidSystem, #[cfg(any( @@ -33,6 +37,7 @@ pub enum ByowError { target_os = "freebsd", target_os = "openbsd" ))] + #[class(TYPE)] #[error("Invalid system on Linux/BSD")] InvalidSystem, #[cfg(any( @@ -41,6 +46,7 @@ pub enum ByowError { target_os = "freebsd", target_os = "openbsd" ))] + #[class(TYPE)] #[error("window is null")] NullWindow, #[cfg(any( @@ -48,9 +54,11 @@ pub enum ByowError { target_os = "freebsd", target_os = "openbsd" ))] + #[class(TYPE)] #[error("display is null")] NullDisplay, #[cfg(target_os = "macos")] + #[class(TYPE)] #[error("ns_view is null")] NSViewDisplay, } @@ -198,6 +206,6 @@ fn raw_window( _system: &str, _window: *const c_void, _display: *const c_void, -) -> Result { - Err(deno_core::error::type_error("Unsupported platform")) +) -> Result { + Err(deno_core::error::JsNativeError::type_error("Unsupported platform")) } diff --git a/ext/webgpu/command_encoder.rs b/ext/webgpu/command_encoder.rs index 4bee7aac301795..ca2fa6e1776fbc 100644 --- a/ext/webgpu/command_encoder.rs +++ b/ext/webgpu/command_encoder.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::WebGpuQuerySet; -use deno_core::error::AnyError; +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -49,7 +49,7 @@ pub fn op_webgpu_create_command_encoder( state: &mut OpState, #[smi] device_rid: ResourceId, #[string] label: Cow, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table @@ -109,7 +109,7 @@ pub fn op_webgpu_command_encoder_begin_render_pass( >, #[smi] occlusion_query_set: Option, #[serde] timestamp_writes: Option, -) -> Result { +) -> Result { let command_encoder_resource = state .resource_table .get::(command_encoder_rid)?; @@ -148,7 +148,7 @@ pub fn op_webgpu_command_encoder_begin_render_pass( }; Ok(rp_at) }) - .collect::, AnyError>>()?; + .collect::, ResourceError>>()?; let mut processed_depth_stencil_attachment = None; @@ -244,7 +244,7 @@ pub fn op_webgpu_command_encoder_begin_compute_pass( #[smi] command_encoder_rid: ResourceId, #[string] label: Cow, #[serde] timestamp_writes: Option, -) -> Result { +) -> Result { let command_encoder_resource = state .resource_table .get::(command_encoder_rid)?; @@ -294,7 +294,7 @@ pub fn op_webgpu_command_encoder_copy_buffer_to_buffer( #[smi] destination: ResourceId, #[number] destination_offset: u64, #[number] size: u64, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -346,7 +346,7 @@ pub fn op_webgpu_command_encoder_copy_buffer_to_texture( #[serde] source: GpuImageCopyBuffer, #[serde] destination: GpuImageCopyTexture, #[serde] copy_size: wgpu_types::Extent3d, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -391,7 +391,7 @@ pub fn op_webgpu_command_encoder_copy_texture_to_buffer( #[serde] source: GpuImageCopyTexture, #[serde] destination: GpuImageCopyBuffer, #[serde] copy_size: wgpu_types::Extent3d, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -436,7 +436,7 @@ pub fn op_webgpu_command_encoder_copy_texture_to_texture( #[serde] source: GpuImageCopyTexture, #[serde] destination: GpuImageCopyTexture, #[serde] copy_size: wgpu_types::Extent3d, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -479,7 +479,7 @@ pub fn op_webgpu_command_encoder_clear_buffer( #[smi] buffer_rid: ResourceId, #[number] offset: u64, #[number] size: u64, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -503,7 +503,7 @@ pub fn op_webgpu_command_encoder_push_debug_group( state: &mut OpState, #[smi] command_encoder_rid: ResourceId, #[string] group_label: &str, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -518,7 +518,7 @@ pub fn op_webgpu_command_encoder_push_debug_group( pub fn op_webgpu_command_encoder_pop_debug_group( state: &mut OpState, #[smi] command_encoder_rid: ResourceId, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -534,7 +534,7 @@ pub fn op_webgpu_command_encoder_insert_debug_marker( state: &mut OpState, #[smi] command_encoder_rid: ResourceId, #[string] marker_label: &str, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -554,7 +554,7 @@ pub fn op_webgpu_command_encoder_write_timestamp( #[smi] command_encoder_rid: ResourceId, #[smi] query_set: ResourceId, query_index: u32, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -581,7 +581,7 @@ pub fn op_webgpu_command_encoder_resolve_query_set( query_count: u32, #[smi] destination: ResourceId, #[number] destination_offset: u64, -) -> Result { +) -> Result { let instance = state.borrow::(); let command_encoder_resource = state .resource_table @@ -610,7 +610,7 @@ pub fn op_webgpu_command_encoder_finish( state: &mut OpState, #[smi] command_encoder_rid: ResourceId, #[string] label: Cow, -) -> Result { +) -> Result { let command_encoder_resource = state .resource_table .take::(command_encoder_rid)?; diff --git a/ext/webgpu/compute_pass.rs b/ext/webgpu/compute_pass.rs index 17043c76713973..b52f5a818a30a7 100644 --- a/ext/webgpu/compute_pass.rs +++ b/ext/webgpu/compute_pass.rs @@ -1,6 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::AnyError; +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -25,7 +25,7 @@ pub fn op_webgpu_compute_pass_set_pipeline( state: &mut OpState, #[smi] compute_pass_rid: ResourceId, #[smi] pipeline: ResourceId, -) -> Result { +) -> Result { let compute_pipeline_resource = state .resource_table @@ -50,7 +50,7 @@ pub fn op_webgpu_compute_pass_dispatch_workgroups( x: u32, y: u32, z: u32, -) -> Result { +) -> Result { let compute_pass_resource = state .resource_table .get::(compute_pass_rid)?; @@ -72,7 +72,7 @@ pub fn op_webgpu_compute_pass_dispatch_workgroups_indirect( #[smi] compute_pass_rid: ResourceId, #[smi] indirect_buffer: ResourceId, #[number] indirect_offset: u64, -) -> Result { +) -> Result { let buffer_resource = state .resource_table .get::(indirect_buffer)?; @@ -95,7 +95,7 @@ pub fn op_webgpu_compute_pass_end( state: &mut OpState, #[smi] command_encoder_rid: ResourceId, #[smi] compute_pass_rid: ResourceId, -) -> Result { +) -> Result { let command_encoder_resource = state .resource_table .get::( @@ -124,7 +124,7 @@ pub fn op_webgpu_compute_pass_set_bind_group( #[buffer] dynamic_offsets_data: &[u32], #[number] dynamic_offsets_data_start: usize, #[number] dynamic_offsets_data_length: usize, -) -> Result { +) -> Result { let bind_group_resource = state .resource_table @@ -158,7 +158,7 @@ pub fn op_webgpu_compute_pass_push_debug_group( state: &mut OpState, #[smi] compute_pass_rid: ResourceId, #[string] group_label: &str, -) -> Result { +) -> Result { let compute_pass_resource = state .resource_table .get::(compute_pass_rid)?; @@ -177,7 +177,7 @@ pub fn op_webgpu_compute_pass_push_debug_group( pub fn op_webgpu_compute_pass_pop_debug_group( state: &mut OpState, #[smi] compute_pass_rid: ResourceId, -) -> Result { +) -> Result { let compute_pass_resource = state .resource_table .get::(compute_pass_rid)?; @@ -195,7 +195,7 @@ pub fn op_webgpu_compute_pass_insert_debug_marker( state: &mut OpState, #[smi] compute_pass_rid: ResourceId, #[string] marker_label: &str, -) -> Result { +) -> Result { let compute_pass_resource = state .resource_table .get::(compute_pass_rid)?; diff --git a/ext/webgpu/lib.rs b/ext/webgpu/lib.rs index 5dc8278e410b54..e376b81c55d06c 100644 --- a/ext/webgpu/lib.rs +++ b/ext/webgpu/lib.rs @@ -83,14 +83,18 @@ pub mod shader; pub mod surface; pub mod texture; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum InitError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(GENERIC)] #[error(transparent)] InvalidAdapter(wgpu_core::instance::InvalidAdapter), + #[class("DOMExceptionOperationError")] #[error(transparent)] RequestDevice(wgpu_core::instance::RequestDeviceError), + #[class(GENERIC)] #[error(transparent)] InvalidDevice(wgpu_core::device::InvalidDevice), } @@ -676,10 +680,8 @@ pub fn op_webgpu_request_device( #[serde] required_limits: Option, ) -> Result { let mut state = state.borrow_mut(); - let adapter_resource = state - .resource_table - .take::(adapter_rid) - .map_err(InitError::Resource)?; + let adapter_resource = + state.resource_table.take::(adapter_rid)?; let adapter = adapter_resource.1; let instance = state.borrow::(); @@ -738,10 +740,8 @@ pub fn op_webgpu_request_adapter_info( #[smi] adapter_rid: ResourceId, ) -> Result { let state = state.borrow_mut(); - let adapter_resource = state - .resource_table - .get::(adapter_rid) - .map_err(InitError::Resource)?; + let adapter_resource = + state.resource_table.get::(adapter_rid)?; let adapter = adapter_resource.1; let instance = state.borrow::(); @@ -788,10 +788,8 @@ pub fn op_webgpu_create_query_set( state: &mut OpState, #[serde] args: CreateQuerySetArgs, ) -> Result { - let device_resource = state - .resource_table - .get::(args.device_rid) - .map_err(InitError::Resource)?; + let device_resource = + state.resource_table.get::(args.device_rid)?; let device = device_resource.1; let instance = state.borrow::(); diff --git a/ext/webgpu/pipeline.rs b/ext/webgpu/pipeline.rs index a6b0cb8cec8e11..abec788f47ed9a 100644 --- a/ext/webgpu/pipeline.rs +++ b/ext/webgpu/pipeline.rs @@ -1,6 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::AnyError; +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -87,7 +87,7 @@ pub fn op_webgpu_create_compute_pipeline( #[string] label: Cow, #[serde] layout: GPUPipelineLayoutOrGPUAutoLayoutMode, #[serde] compute: GpuProgrammableStage, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table @@ -155,7 +155,7 @@ pub fn op_webgpu_compute_pipeline_get_bind_group_layout( state: &mut OpState, #[smi] compute_pipeline_rid: ResourceId, index: u32, -) -> Result { +) -> Result { let instance = state.borrow::(); let compute_pipeline_resource = state .resource_table @@ -334,7 +334,7 @@ pub struct CreateRenderPipelineArgs { pub fn op_webgpu_create_render_pipeline( state: &mut OpState, #[serde] args: CreateRenderPipelineArgs, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table @@ -433,7 +433,7 @@ pub fn op_webgpu_render_pipeline_get_bind_group_layout( state: &mut OpState, #[smi] render_pipeline_rid: ResourceId, index: u32, -) -> Result { +) -> Result { let instance = state.borrow::(); let render_pipeline_resource = state .resource_table diff --git a/ext/webgpu/queue.rs b/ext/webgpu/queue.rs index 8c8bbec95efb93..93e3de7fa5a3f7 100644 --- a/ext/webgpu/queue.rs +++ b/ext/webgpu/queue.rs @@ -2,7 +2,7 @@ use crate::command_encoder::WebGpuCommandBuffer; use crate::Instance; -use deno_core::error::AnyError; +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -30,7 +30,7 @@ pub fn op_webgpu_queue_submit( state: &mut OpState, #[smi] queue_rid: ResourceId, #[serde] command_buffers: Vec, -) -> Result { +) -> Result { let instance = state.borrow::(); let queue_resource = state.resource_table.get::(queue_rid)?; let queue = queue_resource.1; @@ -43,7 +43,7 @@ pub fn op_webgpu_queue_submit( let mut id = buffer_resource.1.borrow_mut(); Ok(id.take().unwrap()) }) - .collect::, AnyError>>()?; + .collect::, ResourceError>>()?; let maybe_err = gfx_select!(queue => instance.queue_submit(queue, &ids)).err(); @@ -84,7 +84,7 @@ pub fn op_webgpu_write_buffer( #[number] data_offset: usize, #[number] size: Option, #[buffer] buf: &[u8], -) -> Result { +) -> Result { let instance = state.borrow::(); let buffer_resource = state .resource_table @@ -117,7 +117,7 @@ pub fn op_webgpu_write_texture( #[serde] data_layout: GpuImageDataLayout, #[serde] size: wgpu_types::Extent3d, #[buffer] buf: &[u8], -) -> Result { +) -> Result { let instance = state.borrow::(); let texture_resource = state .resource_table diff --git a/ext/webgpu/render_pass.rs b/ext/webgpu/render_pass.rs index 9b9d87d9fc05a6..a0b19d5dd42a3d 100644 --- a/ext/webgpu/render_pass.rs +++ b/ext/webgpu/render_pass.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -10,10 +11,12 @@ use std::cell::RefCell; use super::error::WebGpuResult; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum RenderPassError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] ResourceError), + #[class(TYPE)] #[error("size must be larger than 0")] InvalidSize, } @@ -44,7 +47,7 @@ pub struct RenderPassSetViewportArgs { pub fn op_webgpu_render_pass_set_viewport( state: &mut OpState, #[serde] args: RenderPassSetViewportArgs, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(args.render_pass_rid)?; @@ -71,7 +74,7 @@ pub fn op_webgpu_render_pass_set_scissor_rect( y: u32, width: u32, height: u32, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -93,7 +96,7 @@ pub fn op_webgpu_render_pass_set_blend_constant( state: &mut OpState, #[smi] render_pass_rid: ResourceId, #[serde] color: wgpu_types::Color, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -112,7 +115,7 @@ pub fn op_webgpu_render_pass_set_stencil_reference( state: &mut OpState, #[smi] render_pass_rid: ResourceId, reference: u32, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -131,7 +134,7 @@ pub fn op_webgpu_render_pass_begin_occlusion_query( state: &mut OpState, #[smi] render_pass_rid: ResourceId, query_index: u32, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -149,7 +152,7 @@ pub fn op_webgpu_render_pass_begin_occlusion_query( pub fn op_webgpu_render_pass_end_occlusion_query( state: &mut OpState, #[smi] render_pass_rid: ResourceId, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -167,7 +170,7 @@ pub fn op_webgpu_render_pass_execute_bundles( state: &mut OpState, #[smi] render_pass_rid: ResourceId, #[serde] bundles: Vec, -) -> Result { +) -> Result { let bundles = bundles .iter() .map(|rid| { @@ -177,7 +180,7 @@ pub fn op_webgpu_render_pass_execute_bundles( .get::(*rid)?; Ok(render_bundle_resource.1) }) - .collect::, deno_core::error::AnyError>>()?; + .collect::, ResourceError>>()?; let render_pass_resource = state .resource_table @@ -197,7 +200,7 @@ pub fn op_webgpu_render_pass_end( state: &mut OpState, #[smi] command_encoder_rid: ResourceId, #[smi] render_pass_rid: ResourceId, -) -> Result { +) -> Result { let command_encoder_resource = state .resource_table .get::( @@ -223,7 +226,7 @@ pub fn op_webgpu_render_pass_set_bind_group( #[buffer] dynamic_offsets_data: &[u32], #[number] dynamic_offsets_data_start: usize, #[number] dynamic_offsets_data_length: usize, -) -> Result { +) -> Result { let bind_group_resource = state .resource_table @@ -257,7 +260,7 @@ pub fn op_webgpu_render_pass_push_debug_group( state: &mut OpState, #[smi] render_pass_rid: ResourceId, #[string] group_label: &str, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -276,7 +279,7 @@ pub fn op_webgpu_render_pass_push_debug_group( pub fn op_webgpu_render_pass_pop_debug_group( state: &mut OpState, #[smi] render_pass_rid: ResourceId, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -294,7 +297,7 @@ pub fn op_webgpu_render_pass_insert_debug_marker( state: &mut OpState, #[smi] render_pass_rid: ResourceId, #[string] marker_label: &str, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -314,7 +317,7 @@ pub fn op_webgpu_render_pass_set_pipeline( state: &mut OpState, #[smi] render_pass_rid: ResourceId, pipeline: u32, -) -> Result { +) -> Result { let render_pipeline_resource = state .resource_table @@ -343,12 +346,10 @@ pub fn op_webgpu_render_pass_set_index_buffer( ) -> Result { let buffer_resource = state .resource_table - .get::(buffer) - .map_err(RenderPassError::Resource)?; + .get::(buffer)?; let render_pass_resource = state .resource_table - .get::(render_pass_rid) - .map_err(RenderPassError::Resource)?; + .get::(render_pass_rid)?; let size = if let Some(size) = size { Some(std::num::NonZeroU64::new(size).ok_or(RenderPassError::InvalidSize)?) @@ -378,12 +379,10 @@ pub fn op_webgpu_render_pass_set_vertex_buffer( ) -> Result { let buffer_resource = state .resource_table - .get::(buffer) - .map_err(RenderPassError::Resource)?; + .get::(buffer)?; let render_pass_resource = state .resource_table - .get::(render_pass_rid) - .map_err(RenderPassError::Resource)?; + .get::(render_pass_rid)?; let size = if let Some(size) = size { Some(std::num::NonZeroU64::new(size).ok_or(RenderPassError::InvalidSize)?) @@ -411,7 +410,7 @@ pub fn op_webgpu_render_pass_draw( instance_count: u32, first_vertex: u32, first_instance: u32, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -437,7 +436,7 @@ pub fn op_webgpu_render_pass_draw_indexed( first_index: u32, base_vertex: i32, first_instance: u32, -) -> Result { +) -> Result { let render_pass_resource = state .resource_table .get::(render_pass_rid)?; @@ -461,7 +460,7 @@ pub fn op_webgpu_render_pass_draw_indirect( #[smi] render_pass_rid: ResourceId, indirect_buffer: u32, #[number] indirect_offset: u64, -) -> Result { +) -> Result { let buffer_resource = state .resource_table .get::(indirect_buffer)?; @@ -485,7 +484,7 @@ pub fn op_webgpu_render_pass_draw_indexed_indirect( #[smi] render_pass_rid: ResourceId, indirect_buffer: u32, #[number] indirect_offset: u64, -) -> Result { +) -> Result { let buffer_resource = state .resource_table .get::(indirect_buffer)?; diff --git a/ext/webgpu/sampler.rs b/ext/webgpu/sampler.rs index 9fc1269ea7b758..8933c3848cb47e 100644 --- a/ext/webgpu/sampler.rs +++ b/ext/webgpu/sampler.rs @@ -46,7 +46,7 @@ pub struct CreateSamplerArgs { pub fn op_webgpu_create_sampler( state: &mut OpState, #[serde] args: CreateSamplerArgs, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table diff --git a/ext/webgpu/shader.rs b/ext/webgpu/shader.rs index 4653bd85bf05c6..1d8e9fb851de2e 100644 --- a/ext/webgpu/shader.rs +++ b/ext/webgpu/shader.rs @@ -30,7 +30,7 @@ pub fn op_webgpu_create_shader_module( #[smi] device_rid: ResourceId, #[string] label: Cow, #[string] code: Cow, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table diff --git a/ext/webgpu/surface.rs b/ext/webgpu/surface.rs index 297eaeb00874ae..0a85dfff2a4408 100644 --- a/ext/webgpu/surface.rs +++ b/ext/webgpu/surface.rs @@ -1,6 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use super::WebGpuResult; +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; @@ -10,12 +11,15 @@ use std::borrow::Cow; use std::rc::Rc; use wgpu_types::SurfaceStatus; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum SurfaceError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] ResourceError), + #[class(GENERIC)] #[error("Invalid Surface Status")] InvalidStatus, + #[class(GENERIC)] #[error(transparent)] Surface(wgpu_core::present::SurfaceError), } @@ -50,7 +54,7 @@ pub struct SurfaceConfigureArgs { pub fn op_webgpu_surface_configure( state: &mut OpState, #[serde] args: SurfaceConfigureArgs, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table @@ -88,13 +92,10 @@ pub fn op_webgpu_surface_get_current_texture( let instance = state.borrow::(); let device_resource = state .resource_table - .get::(device_rid) - .map_err(SurfaceError::Resource)?; + .get::(device_rid)?; let device = device_resource.1; - let surface_resource = state - .resource_table - .get::(surface_rid) - .map_err(SurfaceError::Resource)?; + let surface_resource = + state.resource_table.get::(surface_rid)?; let surface = surface_resource.1; let output = @@ -124,13 +125,10 @@ pub fn op_webgpu_surface_present( let instance = state.borrow::(); let device_resource = state .resource_table - .get::(device_rid) - .map_err(SurfaceError::Resource)?; + .get::(device_rid)?; let device = device_resource.1; - let surface_resource = state - .resource_table - .get::(surface_rid) - .map_err(SurfaceError::Resource)?; + let surface_resource = + state.resource_table.get::(surface_rid)?; let surface = surface_resource.1; let _ = gfx_select!(device => instance.surface_present(surface)) diff --git a/ext/webgpu/texture.rs b/ext/webgpu/texture.rs index f8a5e05a3e2b15..aa6f8408ecbbe3 100644 --- a/ext/webgpu/texture.rs +++ b/ext/webgpu/texture.rs @@ -61,7 +61,7 @@ pub struct CreateTextureArgs { pub fn op_webgpu_create_texture( state: &mut OpState, #[serde] args: CreateTextureArgs, -) -> Result { +) -> Result { let instance = state.borrow::(); let device_resource = state .resource_table @@ -110,7 +110,7 @@ pub struct CreateTextureViewArgs { pub fn op_webgpu_create_texture_view( state: &mut OpState, #[serde] args: CreateTextureViewArgs, -) -> Result { +) -> Result { let instance = state.borrow::(); let texture_resource = state .resource_table diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index a5734271cf17be..36b8992d7bc8e0 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -44,6 +44,7 @@ use std::num::NonZeroUsize; use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; +use deno_core::error::JsNativeError; use tokio::io::AsyncRead; use tokio::io::AsyncWrite; use tokio::io::ReadHalf; @@ -71,24 +72,32 @@ static USE_WRITEV: Lazy = Lazy::new(|| { false }); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum WebsocketError { + #[class(inherit)] #[error(transparent)] - Url(url::ParseError), + Url(#[inherit] url::ParseError), + #[class(inherit)] #[error(transparent)] - Permission(#[from] PermissionCheckError), + Permission(#[from] #[inherit] PermissionCheckError), + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(GENERIC)] #[error(transparent)] Uri(#[from] http::uri::InvalidUri), + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), + #[class(TYPE)] #[error(transparent)] WebSocket(#[from] fastwebsockets::WebSocketError), + #[class("DOMExceptionNetworkError")] #[error("failed to connect to WebSocket: {0}")] ConnectionFailed(#[from] HandshakeError), + #[class(inherit)] #[error(transparent)] - Canceled(#[from] deno_core::Canceled), + Canceled(#[from] #[inherit] deno_core::Canceled), } #[derive(Clone)] @@ -97,7 +106,7 @@ pub struct WsRootStoreProvider(Option>); impl WsRootStoreProvider { pub fn get_or_try_init( &self, - ) -> Result, deno_core::error::AnyError> { + ) -> Result, JsNativeError> { Ok(match &self.0 { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, @@ -182,32 +191,45 @@ pub struct CreateResponse { extensions: String, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum HandshakeError { + #[class(TYPE)] #[error("Missing path in url")] MissingPath, + #[class(GENERIC)] #[error("Invalid status code {0}")] InvalidStatusCode(StatusCode), + #[class(GENERIC)] #[error(transparent)] Http(#[from] http::Error), + #[class(TYPE)] #[error(transparent)] WebSocket(#[from] fastwebsockets::WebSocketError), + #[class(GENERIC)] #[error("Didn't receive h2 alpn, aborting connection")] NoH2Alpn, + #[class(GENERIC)] #[error(transparent)] Rustls(#[from] deno_tls::rustls::Error), + #[class(inherit)] #[error(transparent)] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), + #[class(GENERIC)] #[error(transparent)] H2(#[from] h2::Error), + #[class(TYPE)] #[error("Invalid hostname: '{0}'")] InvalidHostname(String), + #[class(inherit)] #[error(transparent)] - RootStoreError(deno_core::error::AnyError), + RootStoreError(#[inherit] JsNativeError), + #[class(inherit)] #[error(transparent)] - Tls(deno_tls::TlsError), + Tls(#[inherit] deno_tls::TlsError), + #[class(TYPE)] #[error(transparent)] HeaderName(#[from] http::header::InvalidHeaderName), + #[class(TYPE)] #[error(transparent)] HeaderValue(#[from] http::header::InvalidHeaderValue), } @@ -472,8 +494,7 @@ where let r = state .borrow_mut() .resource_table - .get::(cancel_rid) - .map_err(WebsocketError::Resource)?; + .get::(cancel_rid)?; Some(r.0.clone()) } else { None @@ -677,8 +698,7 @@ pub async fn op_ws_send_binary_async( let resource = state .borrow_mut() .resource_table - .get::(rid) - .map_err(WebsocketError::Resource)?; + .get::(rid)?; let data = data.to_vec(); let lock = resource.reserve_lock(); resource @@ -696,8 +716,7 @@ pub async fn op_ws_send_text_async( let resource = state .borrow_mut() .resource_table - .get::(rid) - .map_err(WebsocketError::Resource)?; + .get::(rid)?; let lock = resource.reserve_lock(); resource .write_frame( @@ -731,8 +750,7 @@ pub async fn op_ws_send_ping( let resource = state .borrow_mut() .resource_table - .get::(rid) - .map_err(WebsocketError::Resource)?; + .get::(rid)?; let lock = resource.reserve_lock(); resource .write_frame( diff --git a/ext/webstorage/lib.rs b/ext/webstorage/lib.rs index 40946f05a7ec81..035ab32c594468 100644 --- a/ext/webstorage/lib.rs +++ b/ext/webstorage/lib.rs @@ -2,24 +2,27 @@ // NOTE to all: use **cached** prepared statements when interfacing with SQLite. -use std::path::PathBuf; - use deno_core::op2; use deno_core::OpState; use rusqlite::params; use rusqlite::Connection; use rusqlite::OptionalExtension; +use std::path::PathBuf; pub use rusqlite; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum WebStorageError { + #[class("DOMExceptionNotSupportedError")] #[error("LocalStorage is not supported in this context.")] ContextNotSupported, + #[class(GENERIC)] #[error(transparent)] Sqlite(#[from] rusqlite::Error), + #[class(inherit)] #[error(transparent)] - Io(std::io::Error), + Io(#[inherit] std::io::Error), + #[class("DOMExceptionQuotaExceededError")] #[error("Exceeded maximum storage size")] StorageExceeded, } diff --git a/runtime/errors.rs b/runtime/errors.rs deleted file mode 100644 index 5716944b7e3940..00000000000000 --- a/runtime/errors.rs +++ /dev/null @@ -1,1932 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -//! There are many types of errors in Deno: -//! - AnyError: a generic wrapper that can encapsulate any type of error. -//! - JsError: a container for the error message and stack trace for exceptions -//! thrown in JavaScript code. We use this to pretty-print stack traces. -//! - Diagnostic: these are errors that originate in TypeScript's compiler. -//! They're similar to JsError, in that they have line numbers. But -//! Diagnostics are compile-time type errors, whereas JsErrors are runtime -//! exceptions. - -use crate::ops::fs_events::FsEventsError; -use crate::ops::http::HttpStartError; -use crate::ops::os::OsError; -use crate::ops::permissions::PermissionError; -use crate::ops::process::CheckRunPermissionError; -use crate::ops::process::ProcessError; -use crate::ops::signal::SignalError; -use crate::ops::tty::TtyError; -use crate::ops::web_worker::SyncFetchError; -use crate::ops::worker_host::CreateWorkerError; -use deno_broadcast_channel::BroadcastChannelError; -use deno_cache::CacheError; -use deno_canvas::CanvasError; -use deno_core::error::AnyError; -use deno_core::serde_json; -use deno_core::url; -use deno_core::ModuleResolutionError; -use deno_cron::CronError; -use deno_crypto::DecryptError; -use deno_crypto::EncryptError; -use deno_crypto::ExportKeyError; -use deno_crypto::GenerateKeyError; -use deno_crypto::ImportKeyError; -use deno_fetch::FetchError; -use deno_fetch::HttpClientCreateError; -use deno_ffi::CallError; -use deno_ffi::CallbackError; -use deno_ffi::DlfcnError; -use deno_ffi::IRError; -use deno_ffi::ReprError; -use deno_ffi::StaticError; -use deno_fs::FsOpsError; -use deno_http::HttpError; -use deno_http::HttpNextError; -use deno_http::WebSocketUpgradeError; -use deno_io::fs::FsError; -use deno_kv::KvCheckError; -use deno_kv::KvError; -use deno_kv::KvMutationError; -use deno_napi::NApiError; -use deno_net::ops::NetError; -use deno_permissions::ChildPermissionError; -use deno_permissions::NetDescriptorFromUrlParseError; -use deno_permissions::PathResolveError; -use deno_permissions::PermissionCheckError; -use deno_permissions::RunDescriptorParseError; -use deno_permissions::SysDescriptorParseError; -use deno_tls::TlsError; -use deno_web::BlobError; -use deno_web::CompressionError; -use deno_web::MessagePortError; -use deno_web::StreamResourceError; -use deno_web::WebError; -use deno_websocket::HandshakeError; -use deno_websocket::WebsocketError; -use deno_webstorage::WebStorageError; -use rustyline::error::ReadlineError; -use std::env; -use std::error::Error; -use std::io; -use std::sync::Arc; - -fn get_run_descriptor_parse_error(e: &RunDescriptorParseError) -> &'static str { - match e { - RunDescriptorParseError::Which(_) => "Error", - RunDescriptorParseError::PathResolve(e) => get_path_resolve_error(e), - RunDescriptorParseError::EmptyRunQuery => "Error", - } -} - -fn get_sys_descriptor_parse_error(e: &SysDescriptorParseError) -> &'static str { - match e { - SysDescriptorParseError::InvalidKind(_) => "TypeError", - SysDescriptorParseError::Empty => "Error", - } -} - -fn get_path_resolve_error(e: &PathResolveError) -> &'static str { - match e { - PathResolveError::CwdResolve(e) => get_io_error_class(e), - PathResolveError::EmptyPath => "Error", - } -} - -fn get_permission_error_class(e: &PermissionError) -> &'static str { - match e { - PermissionError::InvalidPermissionName(_) => "ReferenceError", - PermissionError::PathResolve(e) => get_path_resolve_error(e), - PermissionError::NetDescriptorParse(_) => "URIError", - PermissionError::SysDescriptorParse(e) => get_sys_descriptor_parse_error(e), - PermissionError::RunDescriptorParse(e) => get_run_descriptor_parse_error(e), - } -} - -fn get_permission_check_error_class(e: &PermissionCheckError) -> &'static str { - match e { - PermissionCheckError::PermissionDenied(_) => "NotCapable", - PermissionCheckError::InvalidFilePath(_) => "URIError", - PermissionCheckError::NetDescriptorForUrlParse(e) => match e { - NetDescriptorFromUrlParseError::MissingHost(_) => "TypeError", - NetDescriptorFromUrlParseError::Host(_) => "URIError", - }, - PermissionCheckError::SysDescriptorParse(e) => { - get_sys_descriptor_parse_error(e) - } - PermissionCheckError::PathResolve(e) => get_path_resolve_error(e), - PermissionCheckError::HostParse(_) => "URIError", - } -} - -fn get_dlopen_error_class(error: &dlopen2::Error) -> &'static str { - use dlopen2::Error::*; - match error { - NullCharacter(_) => "InvalidData", - OpeningLibraryError(ref e) => get_io_error_class(e), - SymbolGettingError(ref e) => get_io_error_class(e), - AddrNotMatchingDll(ref e) => get_io_error_class(e), - NullSymbol => "NotFound", - } -} - -fn get_env_var_error_class(error: &env::VarError) -> &'static str { - use env::VarError::*; - match error { - NotPresent => "NotFound", - NotUnicode(..) => "InvalidData", - } -} - -fn get_io_error_class(error: &io::Error) -> &'static str { - use io::ErrorKind::*; - match error.kind() { - NotFound => "NotFound", - PermissionDenied => "PermissionDenied", - ConnectionRefused => "ConnectionRefused", - ConnectionReset => "ConnectionReset", - ConnectionAborted => "ConnectionAborted", - NotConnected => "NotConnected", - AddrInUse => "AddrInUse", - AddrNotAvailable => "AddrNotAvailable", - BrokenPipe => "BrokenPipe", - AlreadyExists => "AlreadyExists", - InvalidInput => "TypeError", - InvalidData => "InvalidData", - TimedOut => "TimedOut", - Interrupted => "Interrupted", - WriteZero => "WriteZero", - UnexpectedEof => "UnexpectedEof", - Other => "Error", - WouldBlock => "WouldBlock", - // Non-exhaustive enum - might add new variants - // in the future - kind => { - let kind_str = kind.to_string(); - match kind_str.as_str() { - "FilesystemLoop" => "FilesystemLoop", - "IsADirectory" => "IsADirectory", - "NetworkUnreachable" => "NetworkUnreachable", - "NotADirectory" => "NotADirectory", - _ => "Error", - } - } - } -} - -fn get_module_resolution_error_class( - _: &ModuleResolutionError, -) -> &'static str { - "URIError" -} - -fn get_notify_error_class(error: ¬ify::Error) -> &'static str { - use notify::ErrorKind::*; - match error.kind { - Generic(_) => "Error", - Io(ref e) => get_io_error_class(e), - PathNotFound => "NotFound", - WatchNotFound => "NotFound", - InvalidConfig(_) => "InvalidData", - MaxFilesWatch => "Error", - } -} - -fn get_regex_error_class(error: ®ex::Error) -> &'static str { - use regex::Error::*; - match error { - Syntax(_) => "SyntaxError", - CompiledTooBig(_) => "RangeError", - _ => "Error", - } -} - -fn get_serde_json_error_class( - error: &serde_json::error::Error, -) -> &'static str { - use deno_core::serde_json::error::*; - match error.classify() { - Category::Io => error - .source() - .and_then(|e| e.downcast_ref::()) - .map(get_io_error_class) - .unwrap(), - Category::Syntax => "SyntaxError", - Category::Data => "InvalidData", - Category::Eof => "UnexpectedEof", - } -} - -fn get_url_parse_error_class(_error: &url::ParseError) -> &'static str { - "URIError" -} - -fn get_hyper_error_class(_error: &hyper::Error) -> &'static str { - "Http" -} - -fn get_hyper_util_error_class( - _error: &hyper_util::client::legacy::Error, -) -> &'static str { - "Http" -} - -fn get_hyper_v014_error_class(_error: &hyper_v014::Error) -> &'static str { - "Http" -} - -#[cfg(unix)] -pub fn get_nix_error_class(error: &nix::Error) -> &'static str { - match error { - nix::Error::ECHILD => "NotFound", - nix::Error::EINVAL => "TypeError", - nix::Error::ENOENT => "NotFound", - nix::Error::ENOTTY => "BadResource", - nix::Error::EPERM => "PermissionDenied", - nix::Error::ESRCH => "NotFound", - nix::Error::ELOOP => "FilesystemLoop", - nix::Error::ENOTDIR => "NotADirectory", - nix::Error::ENETUNREACH => "NetworkUnreachable", - nix::Error::EISDIR => "IsADirectory", - nix::Error::UnknownErrno => "Error", - &nix::Error::ENOTSUP => unreachable!(), - _ => "Error", - } -} - -fn get_webgpu_error_class(e: &deno_webgpu::InitError) -> &'static str { - match e { - deno_webgpu::InitError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - deno_webgpu::InitError::InvalidAdapter(_) => "Error", - deno_webgpu::InitError::RequestDevice(_) => "DOMExceptionOperationError", - deno_webgpu::InitError::InvalidDevice(_) => "Error", - } -} - -fn get_webgpu_buffer_error_class( - e: &deno_webgpu::buffer::BufferError, -) -> &'static str { - match e { - deno_webgpu::buffer::BufferError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - deno_webgpu::buffer::BufferError::InvalidUsage => "TypeError", - deno_webgpu::buffer::BufferError::Access(_) => "DOMExceptionOperationError", - } -} - -fn get_webgpu_bundle_error_class( - e: &deno_webgpu::bundle::BundleError, -) -> &'static str { - match e { - deno_webgpu::bundle::BundleError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - deno_webgpu::bundle::BundleError::InvalidSize => "TypeError", - } -} - -fn get_webgpu_byow_error_class( - e: &deno_webgpu::byow::ByowError, -) -> &'static str { - match e { - deno_webgpu::byow::ByowError::WebGPUNotInitiated => "TypeError", - deno_webgpu::byow::ByowError::InvalidParameters => "TypeError", - deno_webgpu::byow::ByowError::CreateSurface(_) => "Error", - deno_webgpu::byow::ByowError::InvalidSystem => "TypeError", - #[cfg(any( - target_os = "windows", - target_os = "linux", - target_os = "freebsd", - target_os = "openbsd" - ))] - deno_webgpu::byow::ByowError::NullWindow => "TypeError", - #[cfg(any( - target_os = "linux", - target_os = "freebsd", - target_os = "openbsd" - ))] - deno_webgpu::byow::ByowError::NullDisplay => "TypeError", - #[cfg(target_os = "macos")] - deno_webgpu::byow::ByowError::NSViewDisplay => "TypeError", - } -} - -fn get_webgpu_render_pass_error_class( - e: &deno_webgpu::render_pass::RenderPassError, -) -> &'static str { - match e { - deno_webgpu::render_pass::RenderPassError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - deno_webgpu::render_pass::RenderPassError::InvalidSize => "TypeError", - } -} - -fn get_webgpu_surface_error_class( - e: &deno_webgpu::surface::SurfaceError, -) -> &'static str { - match e { - deno_webgpu::surface::SurfaceError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - deno_webgpu::surface::SurfaceError::Surface(_) => "Error", - deno_webgpu::surface::SurfaceError::InvalidStatus => "Error", - } -} - -fn get_crypto_decrypt_error_class(e: &DecryptError) -> &'static str { - match e { - DecryptError::General(e) => get_crypto_shared_error_class(e), - DecryptError::Pkcs1(_) => "Error", - DecryptError::Failed => "DOMExceptionOperationError", - DecryptError::InvalidLength => "TypeError", - DecryptError::InvalidCounterLength => "TypeError", - DecryptError::InvalidTagLength => "TypeError", - DecryptError::InvalidKeyOrIv => "DOMExceptionOperationError", - DecryptError::TooMuchData => "DOMExceptionOperationError", - DecryptError::InvalidIvLength => "TypeError", - DecryptError::Rsa(_) => "DOMExceptionOperationError", - } -} - -fn get_crypto_encrypt_error_class(e: &EncryptError) -> &'static str { - match e { - EncryptError::General(e) => get_crypto_shared_error_class(e), - EncryptError::InvalidKeyOrIv => "DOMExceptionOperationError", - EncryptError::Failed => "DOMExceptionOperationError", - EncryptError::InvalidLength => "TypeError", - EncryptError::InvalidIvLength => "TypeError", - EncryptError::InvalidCounterLength => "TypeError", - EncryptError::TooMuchData => "DOMExceptionOperationError", - } -} - -fn get_crypto_shared_error_class(e: &deno_crypto::SharedError) -> &'static str { - match e { - deno_crypto::SharedError::ExpectedValidPrivateKey => "TypeError", - deno_crypto::SharedError::ExpectedValidPublicKey => "TypeError", - deno_crypto::SharedError::ExpectedValidPrivateECKey => "TypeError", - deno_crypto::SharedError::ExpectedValidPublicECKey => "TypeError", - deno_crypto::SharedError::ExpectedPrivateKey => "TypeError", - deno_crypto::SharedError::ExpectedPublicKey => "TypeError", - deno_crypto::SharedError::ExpectedSecretKey => "TypeError", - deno_crypto::SharedError::FailedDecodePrivateKey => { - "DOMExceptionOperationError" - } - deno_crypto::SharedError::FailedDecodePublicKey => { - "DOMExceptionOperationError" - } - deno_crypto::SharedError::UnsupportedFormat => { - "DOMExceptionNotSupportedError" - } - } -} - -fn get_crypto_ed25519_error_class( - e: &deno_crypto::Ed25519Error, -) -> &'static str { - match e { - deno_crypto::Ed25519Error::FailedExport => "DOMExceptionOperationError", - deno_crypto::Ed25519Error::Der(_) => "Error", - deno_crypto::Ed25519Error::KeyRejected(_) => "Error", - } -} - -fn get_crypto_export_key_error_class(e: &ExportKeyError) -> &'static str { - match e { - ExportKeyError::General(e) => get_crypto_shared_error_class(e), - ExportKeyError::Der(_) => "Error", - ExportKeyError::UnsupportedNamedCurve => "DOMExceptionNotSupportedError", - } -} - -fn get_crypto_generate_key_error_class(e: &GenerateKeyError) -> &'static str { - match e { - GenerateKeyError::General(e) => get_crypto_shared_error_class(e), - GenerateKeyError::BadPublicExponent => "DOMExceptionOperationError", - GenerateKeyError::InvalidHMACKeyLength => "DOMExceptionOperationError", - GenerateKeyError::FailedRSAKeySerialization => "DOMExceptionOperationError", - GenerateKeyError::InvalidAESKeyLength => "DOMExceptionOperationError", - GenerateKeyError::FailedRSAKeyGeneration => "DOMExceptionOperationError", - GenerateKeyError::FailedECKeyGeneration => "DOMExceptionOperationError", - GenerateKeyError::FailedKeyGeneration => "DOMExceptionOperationError", - } -} - -fn get_crypto_import_key_error_class(e: &ImportKeyError) -> &'static str { - match e { - ImportKeyError::General(e) => get_crypto_shared_error_class(e), - ImportKeyError::InvalidModulus => "DOMExceptionDataError", - ImportKeyError::InvalidPublicExponent => "DOMExceptionDataError", - ImportKeyError::InvalidPrivateExponent => "DOMExceptionDataError", - ImportKeyError::InvalidFirstPrimeFactor => "DOMExceptionDataError", - ImportKeyError::InvalidSecondPrimeFactor => "DOMExceptionDataError", - ImportKeyError::InvalidFirstCRTExponent => "DOMExceptionDataError", - ImportKeyError::InvalidSecondCRTExponent => "DOMExceptionDataError", - ImportKeyError::InvalidCRTCoefficient => "DOMExceptionDataError", - ImportKeyError::InvalidB64Coordinate => "DOMExceptionDataError", - ImportKeyError::InvalidRSAPublicKey => "DOMExceptionDataError", - ImportKeyError::InvalidRSAPrivateKey => "DOMExceptionDataError", - ImportKeyError::UnsupportedAlgorithm => "DOMExceptionDataError", - ImportKeyError::PublicKeyTooLong => "DOMExceptionDataError", - ImportKeyError::PrivateKeyTooLong => "DOMExceptionDataError", - ImportKeyError::InvalidP256ECPoint => "DOMExceptionDataError", - ImportKeyError::InvalidP384ECPoint => "DOMExceptionDataError", - ImportKeyError::InvalidP521ECPoint => "DOMExceptionDataError", - ImportKeyError::UnsupportedNamedCurve => "DOMExceptionDataError", - ImportKeyError::CurveMismatch => "DOMExceptionDataError", - ImportKeyError::InvalidKeyData => "DOMExceptionDataError", - ImportKeyError::InvalidJWKPrivateKey => "DOMExceptionDataError", - ImportKeyError::EllipticCurve(_) => "DOMExceptionDataError", - ImportKeyError::ExpectedValidPkcs8Data => "DOMExceptionDataError", - ImportKeyError::MalformedParameters => "DOMExceptionDataError", - ImportKeyError::Spki(_) => "DOMExceptionDataError", - ImportKeyError::InvalidP256ECSPKIData => "DOMExceptionDataError", - ImportKeyError::InvalidP384ECSPKIData => "DOMExceptionDataError", - ImportKeyError::InvalidP521ECSPKIData => "DOMExceptionDataError", - ImportKeyError::Der(_) => "DOMExceptionDataError", - } -} - -fn get_crypto_x448_error_class(e: &deno_crypto::X448Error) -> &'static str { - match e { - deno_crypto::X448Error::FailedExport => "DOMExceptionOperationError", - deno_crypto::X448Error::Der(_) => "Error", - } -} - -fn get_crypto_x25519_error_class(e: &deno_crypto::X25519Error) -> &'static str { - match e { - deno_crypto::X25519Error::FailedExport => "DOMExceptionOperationError", - deno_crypto::X25519Error::Der(_) => "Error", - } -} - -fn get_crypto_error_class(e: &deno_crypto::Error) -> &'static str { - match e { - deno_crypto::Error::Der(_) => "Error", - deno_crypto::Error::JoinError(_) => "Error", - deno_crypto::Error::MissingArgumentHash => "TypeError", - deno_crypto::Error::MissingArgumentSaltLength => "TypeError", - deno_crypto::Error::Other(e) => get_error_class_name(e).unwrap_or("Error"), - deno_crypto::Error::UnsupportedAlgorithm => "TypeError", - deno_crypto::Error::KeyRejected(_) => "Error", - deno_crypto::Error::RSA(_) => "Error", - deno_crypto::Error::Pkcs1(_) => "Error", - deno_crypto::Error::Unspecified(_) => "Error", - deno_crypto::Error::InvalidKeyFormat => "TypeError", - deno_crypto::Error::MissingArgumentPublicKey => "TypeError", - deno_crypto::Error::P256Ecdsa(_) => "Error", - deno_crypto::Error::DecodePrivateKey => "TypeError", - deno_crypto::Error::MissingArgumentNamedCurve => "TypeError", - deno_crypto::Error::MissingArgumentInfo => "TypeError", - deno_crypto::Error::HKDFLengthTooLarge => "DOMExceptionOperationError", - deno_crypto::Error::General(e) => get_crypto_shared_error_class(e), - deno_crypto::Error::Base64Decode(_) => "Error", - deno_crypto::Error::DataInvalidSize => "TypeError", - deno_crypto::Error::InvalidKeyLength => "TypeError", - deno_crypto::Error::EncryptionError => "DOMExceptionOperationError", - deno_crypto::Error::DecryptionError => "DOMExceptionOperationError", - deno_crypto::Error::ArrayBufferViewLengthExceeded(_) => { - "DOMExceptionQuotaExceededError" - } - } -} - -fn get_napi_error_class(e: &NApiError) -> &'static str { - match e { - NApiError::InvalidPath - | NApiError::LibLoading(_) - | NApiError::ModuleNotFound(_) => "TypeError", - NApiError::Permission(e) => get_permission_check_error_class(e), - } -} - -fn get_web_error_class(e: &WebError) -> &'static str { - match e { - WebError::Base64Decode => "DOMExceptionInvalidCharacterError", - WebError::InvalidEncodingLabel(_) => "RangeError", - WebError::BufferTooLong => "TypeError", - WebError::ValueTooLarge => "RangeError", - WebError::BufferTooSmall => "RangeError", - WebError::DataInvalid => "TypeError", - WebError::DataError(_) => "Error", - } -} - -fn get_web_compression_error_class(e: &CompressionError) -> &'static str { - match e { - CompressionError::UnsupportedFormat => "TypeError", - CompressionError::ResourceClosed => "TypeError", - CompressionError::IoTypeError(_) => "TypeError", - CompressionError::Io(e) => get_io_error_class(e), - } -} - -fn get_web_message_port_error_class(e: &MessagePortError) -> &'static str { - match e { - MessagePortError::InvalidTransfer => "TypeError", - MessagePortError::NotReady => "TypeError", - MessagePortError::TransferSelf => "TypeError", - MessagePortError::Canceled(e) => { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - MessagePortError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - } -} - -fn get_web_stream_resource_error_class( - e: &StreamResourceError, -) -> &'static str { - match e { - StreamResourceError::Canceled(e) => { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - StreamResourceError::Js(_) => "TypeError", - } -} - -fn get_web_blob_error_class(e: &BlobError) -> &'static str { - match e { - BlobError::BlobPartNotFound => "TypeError", - BlobError::SizeLargerThanBlobPart => "TypeError", - BlobError::BlobURLsNotSupported => "TypeError", - BlobError::Url(_) => "Error", - } -} - -fn get_ffi_repr_error_class(e: &ReprError) -> &'static str { - match e { - ReprError::InvalidOffset => "TypeError", - ReprError::InvalidArrayBuffer => "TypeError", - ReprError::DestinationLengthTooShort => "RangeError", - ReprError::InvalidCString => "TypeError", - ReprError::CStringTooLong => "TypeError", - ReprError::InvalidBool => "TypeError", - ReprError::InvalidU8 => "TypeError", - ReprError::InvalidI8 => "TypeError", - ReprError::InvalidU16 => "TypeError", - ReprError::InvalidI16 => "TypeError", - ReprError::InvalidU32 => "TypeError", - ReprError::InvalidI32 => "TypeError", - ReprError::InvalidU64 => "TypeError", - ReprError::InvalidI64 => "TypeError", - ReprError::InvalidF32 => "TypeError", - ReprError::InvalidF64 => "TypeError", - ReprError::InvalidPointer => "TypeError", - ReprError::Permission(e) => get_permission_check_error_class(e), - } -} - -fn get_ffi_dlfcn_error_class(e: &DlfcnError) -> &'static str { - match e { - DlfcnError::RegisterSymbol { .. } => "Error", - DlfcnError::Dlopen(_) => "Error", - DlfcnError::Permission(e) => get_permission_check_error_class(e), - DlfcnError::Other(e) => get_error_class_name(e).unwrap_or("Error"), - } -} - -fn get_ffi_static_error_class(e: &StaticError) -> &'static str { - match e { - StaticError::Dlfcn(e) => get_ffi_dlfcn_error_class(e), - StaticError::InvalidTypeVoid => "TypeError", - StaticError::InvalidTypeStruct => "TypeError", - StaticError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - } -} - -fn get_ffi_callback_error_class(e: &CallbackError) -> &'static str { - match e { - CallbackError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - CallbackError::Other(e) => get_error_class_name(e).unwrap_or("Error"), - CallbackError::Permission(e) => get_permission_check_error_class(e), - } -} - -fn get_ffi_call_error_class(e: &CallError) -> &'static str { - match e { - CallError::IR(_) => "TypeError", - CallError::NonblockingCallFailure(_) => "Error", - CallError::InvalidSymbol(_) => "TypeError", - CallError::Permission(e) => get_permission_check_error_class(e), - CallError::Callback(e) => get_ffi_callback_error_class(e), - CallError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - } -} - -fn get_webstorage_class_name(e: &WebStorageError) -> &'static str { - match e { - WebStorageError::ContextNotSupported => "DOMExceptionNotSupportedError", - WebStorageError::Sqlite(_) => todo!(), - WebStorageError::Io(e) => get_io_error_class(e), - WebStorageError::StorageExceeded => "DOMExceptionQuotaExceededError", - } -} - -fn get_tls_error_class(e: &TlsError) -> &'static str { - match e { - TlsError::Rustls(_) => "Error", - TlsError::UnableAddPemFileToCert(e) => get_io_error_class(e), - TlsError::CertInvalid - | TlsError::CertsNotFound - | TlsError::KeysNotFound - | TlsError::KeyDecode => "InvalidData", - } -} - -pub fn get_cron_error_class(e: &CronError) -> &'static str { - match e { - CronError::Resource(e) => { - deno_core::error::get_custom_error_class(e).unwrap_or("Error") - } - CronError::NameExceeded(_) => "TypeError", - CronError::NameInvalid => "TypeError", - CronError::AlreadyExists => "TypeError", - CronError::TooManyCrons => "TypeError", - CronError::InvalidCron => "TypeError", - CronError::InvalidBackoff => "TypeError", - CronError::AcquireError(_) => "Error", - CronError::Other(e) => get_error_class_name(e).unwrap_or("Error"), - } -} - -fn get_canvas_error(e: &CanvasError) -> &'static str { - match e { - CanvasError::UnsupportedColorType(_) => "TypeError", - CanvasError::Image(_) => "Error", - } -} - -pub fn get_cache_error(error: &CacheError) -> &'static str { - match error { - CacheError::Sqlite(_) => "Error", - CacheError::JoinError(_) => "Error", - CacheError::Resource(err) => { - deno_core::error::get_custom_error_class(err).unwrap_or("Error") - } - CacheError::Other(e) => get_error_class_name(e).unwrap_or("Error"), - CacheError::Io(err) => get_io_error_class(err), - } -} - -fn get_broadcast_channel_error(error: &BroadcastChannelError) -> &'static str { - match error { - BroadcastChannelError::Resource(err) => { - deno_core::error::get_custom_error_class(err).unwrap() - } - BroadcastChannelError::MPSCSendError(_) => "Error", - BroadcastChannelError::BroadcastSendError(_) => "Error", - BroadcastChannelError::Other(err) => { - get_error_class_name(err).unwrap_or("Error") - } - } -} - -fn get_fetch_error(error: &FetchError) -> &'static str { - match error { - FetchError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - FetchError::Permission(e) => get_permission_check_error_class(e), - FetchError::NetworkError => "TypeError", - FetchError::FsNotGet(_) => "TypeError", - FetchError::InvalidUrl(_) => "TypeError", - FetchError::InvalidHeaderName(_) => "TypeError", - FetchError::InvalidHeaderValue(_) => "TypeError", - FetchError::DataUrl(_) => "TypeError", - FetchError::Base64(_) => "TypeError", - FetchError::BlobNotFound => "TypeError", - FetchError::SchemeNotSupported(_) => "TypeError", - FetchError::RequestCanceled => "TypeError", - FetchError::Http(_) => "Error", - FetchError::ClientCreate(e) => get_http_client_create_error(e), - FetchError::Url(e) => get_url_parse_error_class(e), - FetchError::Method(_) => "TypeError", - FetchError::ClientSend(_) => "TypeError", - FetchError::RequestBuilderHook(_) => "TypeError", - FetchError::Io(e) => get_io_error_class(e), - FetchError::Hyper(e) => get_hyper_error_class(e), - } -} - -fn get_http_client_create_error(error: &HttpClientCreateError) -> &'static str { - match error { - HttpClientCreateError::Tls(_) => "TypeError", - HttpClientCreateError::InvalidUserAgent(_) => "TypeError", - HttpClientCreateError::InvalidProxyUrl => "TypeError", - HttpClientCreateError::HttpVersionSelectionInvalid => "TypeError", - HttpClientCreateError::RootCertStore(_) => "TypeError", - } -} - -fn get_websocket_error(error: &WebsocketError) -> &'static str { - match error { - WebsocketError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - WebsocketError::Permission(e) => get_permission_check_error_class(e), - WebsocketError::Url(e) => get_url_parse_error_class(e), - WebsocketError::Io(e) => get_io_error_class(e), - WebsocketError::WebSocket(_) => "TypeError", - WebsocketError::ConnectionFailed(_) => "DOMExceptionNetworkError", - WebsocketError::Uri(_) => "Error", - WebsocketError::Canceled(e) => { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - } -} - -fn get_websocket_handshake_error(error: &HandshakeError) -> &'static str { - match error { - HandshakeError::RootStoreError(e) => { - get_error_class_name(e).unwrap_or("Error") - } - HandshakeError::Tls(e) => get_tls_error_class(e), - HandshakeError::MissingPath => "TypeError", - HandshakeError::Http(_) => "Error", - HandshakeError::InvalidHostname(_) => "TypeError", - HandshakeError::Io(e) => get_io_error_class(e), - HandshakeError::Rustls(_) => "Error", - HandshakeError::H2(_) => "Error", - HandshakeError::NoH2Alpn => "Error", - HandshakeError::InvalidStatusCode(_) => "Error", - HandshakeError::WebSocket(_) => "TypeError", - HandshakeError::HeaderName(_) => "TypeError", - HandshakeError::HeaderValue(_) => "TypeError", - } -} - -fn get_fs_ops_error(error: &FsOpsError) -> &'static str { - match error { - FsOpsError::Io(e) => get_io_error_class(e), - FsOpsError::OperationError(e) => get_fs_error(&e.err), - FsOpsError::Permission(e) => get_permission_check_error_class(e), - FsOpsError::Resource(e) | FsOpsError::Other(e) => { - get_error_class_name(e).unwrap_or("Error") - } - FsOpsError::InvalidUtf8(_) => "InvalidData", - FsOpsError::StripPrefix(_) => "Error", - FsOpsError::Canceled(e) => { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - FsOpsError::InvalidSeekMode(_) => "TypeError", - FsOpsError::InvalidControlCharacter(_) => "Error", - FsOpsError::InvalidCharacter(_) => "Error", - #[cfg(windows)] - FsOpsError::InvalidTrailingCharacter => "Error", - FsOpsError::NotCapableAccess { .. } => "NotCapable", - FsOpsError::NotCapable(_) => "NotCapable", - } -} - -fn get_kv_error(error: &KvError) -> &'static str { - match error { - KvError::DatabaseHandler(e) | KvError::Resource(e) | KvError::Kv(e) => { - get_error_class_name(e).unwrap_or("Error") - } - KvError::TooManyRanges(_) => "TypeError", - KvError::TooManyEntries(_) => "TypeError", - KvError::TooManyChecks(_) => "TypeError", - KvError::TooManyMutations(_) => "TypeError", - KvError::TooManyKeys(_) => "TypeError", - KvError::InvalidLimit => "TypeError", - KvError::InvalidBoundaryKey => "TypeError", - KvError::KeyTooLargeToRead(_) => "TypeError", - KvError::KeyTooLargeToWrite(_) => "TypeError", - KvError::TotalMutationTooLarge(_) => "TypeError", - KvError::TotalKeyTooLarge(_) => "TypeError", - KvError::Io(e) => get_io_error_class(e), - KvError::QueueMessageNotFound => "TypeError", - KvError::StartKeyNotInKeyspace => "TypeError", - KvError::EndKeyNotInKeyspace => "TypeError", - KvError::StartKeyGreaterThanEndKey => "TypeError", - KvError::InvalidCheck(e) => match e { - KvCheckError::InvalidVersionstamp => "TypeError", - KvCheckError::Io(e) => get_io_error_class(e), - }, - KvError::InvalidMutation(e) => match e { - KvMutationError::BigInt(_) => "Error", - KvMutationError::Io(e) => get_io_error_class(e), - KvMutationError::InvalidMutationWithValue(_) => "TypeError", - KvMutationError::InvalidMutationWithoutValue(_) => "TypeError", - }, - KvError::InvalidEnqueue(e) => get_io_error_class(e), - KvError::EmptyKey => "TypeError", - KvError::ValueTooLarge(_) => "TypeError", - KvError::EnqueuePayloadTooLarge(_) => "TypeError", - KvError::InvalidCursor => "TypeError", - KvError::CursorOutOfBounds => "TypeError", - KvError::InvalidRange => "TypeError", - } -} - -fn get_net_error(error: &NetError) -> &'static str { - match error { - NetError::ListenerClosed => "BadResource", - NetError::ListenerBusy => "Busy", - NetError::SocketClosed => "BadResource", - NetError::SocketClosedNotConnected => "NotConnected", - NetError::SocketBusy => "Busy", - NetError::Io(e) => get_io_error_class(e), - NetError::AcceptTaskOngoing => "Busy", - NetError::RootCertStore(e) | NetError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - NetError::Permission(e) => get_permission_check_error_class(e), - NetError::NoResolvedAddress => "Error", - NetError::AddrParse(_) => "Error", - NetError::Map(e) => get_net_map_error(e), - NetError::Canceled(e) => { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - NetError::DnsNotFound(_) => "NotFound", - NetError::DnsNotConnected(_) => "NotConnected", - NetError::DnsTimedOut(_) => "TimedOut", - NetError::Dns(_) => "Error", - NetError::UnsupportedRecordType => "NotSupported", - NetError::InvalidUtf8(_) => "InvalidData", - NetError::UnexpectedKeyType => "Error", - NetError::InvalidHostname(_) => "TypeError", - NetError::TcpStreamBusy => "Busy", - NetError::Rustls(_) => "Error", - NetError::Tls(e) => get_tls_error_class(e), - NetError::ListenTlsRequiresKey => "InvalidData", - NetError::Reunite(_) => "Error", - } -} - -fn get_net_map_error(error: &deno_net::io::MapError) -> &'static str { - match error { - deno_net::io::MapError::Io(e) => get_io_error_class(e), - deno_net::io::MapError::NoResources => "Error", - } -} - -fn get_child_permission_error(e: &ChildPermissionError) -> &'static str { - match e { - ChildPermissionError::Escalation => "NotCapable", - ChildPermissionError::PathResolve(e) => get_path_resolve_error(e), - ChildPermissionError::NetDescriptorParse(_) => "URIError", - ChildPermissionError::EnvDescriptorParse(_) => "Error", - ChildPermissionError::SysDescriptorParse(e) => { - get_sys_descriptor_parse_error(e) - } - ChildPermissionError::RunDescriptorParse(e) => { - get_run_descriptor_parse_error(e) - } - } -} - -fn get_create_worker_error(error: &CreateWorkerError) -> &'static str { - match error { - CreateWorkerError::ClassicWorkers => "DOMExceptionNotSupportedError", - CreateWorkerError::Permission(e) => get_child_permission_error(e), - CreateWorkerError::ModuleResolution(e) => { - get_module_resolution_error_class(e) - } - CreateWorkerError::Io(e) => get_io_error_class(e), - CreateWorkerError::MessagePort(e) => get_web_message_port_error_class(e), - } -} - -fn get_tty_error(error: &TtyError) -> &'static str { - match error { - TtyError::Resource(e) | TtyError::Other(e) => { - get_error_class_name(e).unwrap_or("Error") - } - TtyError::Io(e) => get_io_error_class(e), - #[cfg(unix)] - TtyError::Nix(e) => get_nix_error_class(e), - } -} - -fn get_readline_error(error: &ReadlineError) -> &'static str { - match error { - ReadlineError::Io(e) => get_io_error_class(e), - ReadlineError::Eof => "Error", - ReadlineError::Interrupted => "Error", - #[cfg(unix)] - ReadlineError::Errno(e) => get_nix_error_class(e), - ReadlineError::WindowResized => "Error", - #[cfg(windows)] - ReadlineError::Decode(_) => "Error", - #[cfg(windows)] - ReadlineError::SystemError(_) => "Error", - _ => "Error", - } -} - -fn get_signal_error(error: &SignalError) -> &'static str { - match error { - SignalError::InvalidSignalStr(_) => "TypeError", - SignalError::InvalidSignalInt(_) => "TypeError", - SignalError::SignalNotAllowed(_) => "TypeError", - SignalError::Io(e) => get_io_error_class(e), - } -} - -fn get_fs_events_error(error: &FsEventsError) -> &'static str { - match error { - FsEventsError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - FsEventsError::Permission(e) => get_permission_check_error_class(e), - FsEventsError::Notify(e) => get_notify_error_class(e), - FsEventsError::Canceled(e) => { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - } -} - -fn get_http_start_error(error: &HttpStartError) -> &'static str { - match error { - HttpStartError::TcpStreamInUse => "Busy", - HttpStartError::TlsStreamInUse => "Busy", - HttpStartError::UnixSocketInUse => "Busy", - HttpStartError::ReuniteTcp(_) => "Error", - #[cfg(unix)] - HttpStartError::ReuniteUnix(_) => "Error", - HttpStartError::Io(e) => get_io_error_class(e), - HttpStartError::Other(e) => get_error_class_name(e).unwrap_or("Error"), - } -} - -fn get_process_error(error: &ProcessError) -> &'static str { - match error { - ProcessError::SpawnFailed { error, .. } => get_process_error(error), - ProcessError::FailedResolvingCwd(e) | ProcessError::Io(e) => { - get_io_error_class(e) - } - ProcessError::Permission(e) => get_permission_check_error_class(e), - ProcessError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - ProcessError::BorrowMut(_) => "Error", - ProcessError::Which(_) => "Error", - ProcessError::ChildProcessAlreadyTerminated => "TypeError", - ProcessError::Signal(e) => get_signal_error(e), - ProcessError::MissingCmd => "Error", - ProcessError::InvalidPid => "TypeError", - #[cfg(unix)] - ProcessError::Nix(e) => get_nix_error_class(e), - ProcessError::RunPermission(e) => match e { - CheckRunPermissionError::Permission(e) => { - get_permission_check_error_class(e) - } - CheckRunPermissionError::Other(e) => { - get_error_class_name(e).unwrap_or("Error") - } - }, - } -} - -fn get_http_error(error: &HttpError) -> &'static str { - match error { - HttpError::Canceled(e) => { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - HttpError::HyperV014(e) => get_hyper_v014_error_class(e), - HttpError::InvalidHeaderName(_) => "Error", - HttpError::InvalidHeaderValue(_) => "Error", - HttpError::Http(_) => "Error", - HttpError::ResponseHeadersAlreadySent => "Http", - HttpError::ConnectionClosedWhileSendingResponse => "Http", - HttpError::AlreadyInUse => "Http", - HttpError::Io(e) => get_io_error_class(e), - HttpError::NoResponseHeaders => "Http", - HttpError::ResponseAlreadyCompleted => "Http", - HttpError::UpgradeBodyUsed => "Http", - HttpError::Resource(e) | HttpError::Other(e) => { - get_error_class_name(e).unwrap_or("Error") - } - } -} - -fn get_http_next_error(error: &HttpNextError) -> &'static str { - match error { - HttpNextError::Io(e) => get_io_error_class(e), - HttpNextError::WebSocketUpgrade(e) => get_websocket_upgrade_error(e), - HttpNextError::Hyper(e) => get_hyper_error_class(e), - HttpNextError::JoinError(_) => "Error", - HttpNextError::Canceled(e) => { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - HttpNextError::UpgradeUnavailable(_) => "Error", - HttpNextError::HttpPropertyExtractor(e) | HttpNextError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - } -} - -fn get_websocket_upgrade_error(error: &WebSocketUpgradeError) -> &'static str { - match error { - WebSocketUpgradeError::InvalidHeaders => "Http", - WebSocketUpgradeError::HttpParse(_) => "Error", - WebSocketUpgradeError::Http(_) => "Error", - WebSocketUpgradeError::Utf8(_) => "Error", - WebSocketUpgradeError::InvalidHeaderName(_) => "Error", - WebSocketUpgradeError::InvalidHeaderValue(_) => "Error", - WebSocketUpgradeError::InvalidHttpStatusLine => "Http", - WebSocketUpgradeError::UpgradeBufferAlreadyCompleted => "Http", - } -} - -fn get_fs_error(e: &FsError) -> &'static str { - match &e { - FsError::Io(e) => get_io_error_class(e), - FsError::FileBusy => "Busy", - FsError::NotSupported => "NotSupported", - FsError::NotCapable(_) => "NotCapable", - } -} - -mod node { - use super::get_error_class_name; - use super::get_io_error_class; - use super::get_permission_check_error_class; - use super::get_serde_json_error_class; - use super::get_url_parse_error_class; - pub use deno_node::ops::blocklist::BlocklistError; - pub use deno_node::ops::crypto::cipher::CipherContextError; - pub use deno_node::ops::crypto::cipher::CipherError; - pub use deno_node::ops::crypto::cipher::DecipherContextError; - pub use deno_node::ops::crypto::cipher::DecipherError; - pub use deno_node::ops::crypto::digest::HashError; - pub use deno_node::ops::crypto::keys::AsymmetricPrivateKeyDerError; - pub use deno_node::ops::crypto::keys::AsymmetricPrivateKeyError; - pub use deno_node::ops::crypto::keys::AsymmetricPublicKeyDerError; - pub use deno_node::ops::crypto::keys::AsymmetricPublicKeyError; - pub use deno_node::ops::crypto::keys::AsymmetricPublicKeyJwkError; - pub use deno_node::ops::crypto::keys::EcJwkError; - pub use deno_node::ops::crypto::keys::EdRawError; - pub use deno_node::ops::crypto::keys::ExportPrivateKeyPemError; - pub use deno_node::ops::crypto::keys::ExportPublicKeyPemError; - pub use deno_node::ops::crypto::keys::GenerateRsaPssError; - pub use deno_node::ops::crypto::keys::RsaJwkError; - pub use deno_node::ops::crypto::keys::RsaPssParamsParseError; - pub use deno_node::ops::crypto::keys::X509PublicKeyError; - pub use deno_node::ops::crypto::sign::KeyObjectHandlePrehashedSignAndVerifyError; - pub use deno_node::ops::crypto::x509::X509Error; - pub use deno_node::ops::crypto::DiffieHellmanError; - pub use deno_node::ops::crypto::EcdhEncodePubKey; - pub use deno_node::ops::crypto::HkdfError; - pub use deno_node::ops::crypto::Pbkdf2Error; - pub use deno_node::ops::crypto::PrivateEncryptDecryptError; - pub use deno_node::ops::crypto::ScryptAsyncError; - pub use deno_node::ops::crypto::SignEd25519Error; - pub use deno_node::ops::crypto::VerifyEd25519Error; - pub use deno_node::ops::fs::FsError; - pub use deno_node::ops::http2::Http2Error; - pub use deno_node::ops::idna::IdnaError; - pub use deno_node::ops::ipc::IpcError; - pub use deno_node::ops::ipc::IpcJsonStreamError; - use deno_node::ops::os::priority::PriorityError; - pub use deno_node::ops::os::OsError; - pub use deno_node::ops::require::RequireError; - pub use deno_node::ops::worker_threads::WorkerThreadsFilenameError; - pub use deno_node::ops::zlib::brotli::BrotliError; - pub use deno_node::ops::zlib::mode::ModeError; - pub use deno_node::ops::zlib::ZlibError; - - pub fn get_blocklist_error(error: &BlocklistError) -> &'static str { - match error { - BlocklistError::AddrParse(_) => "Error", - BlocklistError::IpNetwork(_) => "Error", - BlocklistError::InvalidAddress => "Error", - BlocklistError::IpVersionMismatch => "Error", - } - } - - pub fn get_fs_error(error: &FsError) -> &'static str { - match error { - FsError::Permission(e) => get_permission_check_error_class(e), - FsError::Io(e) => get_io_error_class(e), - #[cfg(windows)] - FsError::PathHasNoRoot => "Error", - #[cfg(not(any(unix, windows)))] - FsError::UnsupportedPlatform => "Error", - FsError::Fs(e) => super::get_fs_error(e), - } - } - - pub fn get_idna_error(error: &IdnaError) -> &'static str { - match error { - IdnaError::InvalidInput => "RangeError", - IdnaError::InputTooLong => "Error", - IdnaError::IllegalInput => "RangeError", - } - } - - pub fn get_ipc_json_stream_error(error: &IpcJsonStreamError) -> &'static str { - match error { - IpcJsonStreamError::Io(e) => get_io_error_class(e), - IpcJsonStreamError::SimdJson(_) => "Error", - } - } - - pub fn get_ipc_error(error: &IpcError) -> &'static str { - match error { - IpcError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - IpcError::IpcJsonStream(e) => get_ipc_json_stream_error(e), - IpcError::Canceled(e) => { - let io_err: std::io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - } - IpcError::SerdeJson(e) => get_serde_json_error_class(e), - } - } - - pub fn get_worker_threads_filename_error( - error: &WorkerThreadsFilenameError, - ) -> &'static str { - match error { - WorkerThreadsFilenameError::Permission(e) => { - get_error_class_name(e).unwrap_or("Error") - } - WorkerThreadsFilenameError::UrlParse(e) => get_url_parse_error_class(e), - WorkerThreadsFilenameError::InvalidRelativeUrl => "Error", - WorkerThreadsFilenameError::UrlFromPathString => "Error", - WorkerThreadsFilenameError::UrlToPathString => "Error", - WorkerThreadsFilenameError::UrlToPath => "Error", - WorkerThreadsFilenameError::FileNotFound(_) => "Error", - WorkerThreadsFilenameError::Fs(e) => super::get_fs_error(e), - } - } - - pub fn get_require_error(error: &RequireError) -> &'static str { - match error { - RequireError::UrlParse(e) => get_url_parse_error_class(e), - RequireError::Permission(e) => get_error_class_name(e).unwrap_or("Error"), - RequireError::PackageExportsResolve(_) - | RequireError::PackageJsonLoad(_) - | RequireError::ClosestPkgJson(_) - | RequireError::FilePathConversion(_) - | RequireError::UrlConversion(_) - | RequireError::ReadModule(_) - | RequireError::PackageImportsResolve(_) => "Error", - RequireError::Fs(e) | RequireError::UnableToGetCwd(e) => { - super::get_fs_error(e) - } - } - } - - pub fn get_http2_error(error: &Http2Error) -> &'static str { - match error { - Http2Error::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - Http2Error::UrlParse(e) => get_url_parse_error_class(e), - Http2Error::H2(_) => "Error", - } - } - - pub fn get_os_error(error: &OsError) -> &'static str { - match error { - OsError::Priority(e) => match e { - PriorityError::Io(e) => get_io_error_class(e), - #[cfg(windows)] - PriorityError::InvalidPriority => "TypeError", - }, - OsError::Permission(e) => get_permission_check_error_class(e), - OsError::FailedToGetCpuInfo => "TypeError", - OsError::FailedToGetUserInfo(e) => get_io_error_class(e), - } - } - - pub fn get_brotli_error(error: &BrotliError) -> &'static str { - match error { - BrotliError::InvalidEncoderMode => "TypeError", - BrotliError::CompressFailed => "TypeError", - BrotliError::DecompressFailed => "TypeError", - BrotliError::Join(_) => "Error", - BrotliError::Resource(e) => get_error_class_name(e).unwrap_or("Error"), - BrotliError::Io(e) => get_io_error_class(e), - } - } - - pub fn get_mode_error(_: &ModeError) -> &'static str { - "Error" - } - - pub fn get_zlib_error(e: &ZlibError) -> &'static str { - match e { - ZlibError::NotInitialized => "TypeError", - ZlibError::Mode(e) => get_mode_error(e), - ZlibError::Other(e) => get_error_class_name(e).unwrap_or("Error"), - } - } - - pub fn get_crypto_cipher_context_error( - e: &CipherContextError, - ) -> &'static str { - match e { - CipherContextError::ContextInUse => "TypeError", - CipherContextError::Cipher(e) => get_crypto_cipher_error(e), - CipherContextError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - } - } - - pub fn get_crypto_cipher_error(e: &CipherError) -> &'static str { - match e { - CipherError::InvalidIvLength => "TypeError", - CipherError::InvalidKeyLength => "RangeError", - CipherError::InvalidInitializationVector => "TypeError", - CipherError::CannotPadInputData => "TypeError", - CipherError::UnknownCipher(_) => "TypeError", - } - } - - pub fn get_crypto_decipher_context_error( - e: &DecipherContextError, - ) -> &'static str { - match e { - DecipherContextError::ContextInUse => "TypeError", - DecipherContextError::Decipher(e) => get_crypto_decipher_error(e), - DecipherContextError::Resource(e) => { - get_error_class_name(e).unwrap_or("Error") - } - } - } - - pub fn get_crypto_decipher_error(e: &DecipherError) -> &'static str { - match e { - DecipherError::InvalidIvLength => "TypeError", - DecipherError::InvalidKeyLength => "RangeError", - DecipherError::InvalidInitializationVector => "TypeError", - DecipherError::CannotUnpadInputData => "TypeError", - DecipherError::DataAuthenticationFailed => "TypeError", - DecipherError::SetAutoPaddingFalseAes128GcmUnsupported => "TypeError", - DecipherError::SetAutoPaddingFalseAes256GcmUnsupported => "TypeError", - DecipherError::UnknownCipher(_) => "TypeError", - } - } - - pub fn get_x509_error(_: &X509Error) -> &'static str { - "Error" - } - - pub fn get_crypto_key_object_handle_prehashed_sign_and_verify_error( - e: &KeyObjectHandlePrehashedSignAndVerifyError, - ) -> &'static str { - match e { - KeyObjectHandlePrehashedSignAndVerifyError::InvalidDsaSignatureEncoding => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::KeyIsNotPrivate => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::DigestNotAllowedForRsaSignature(_) => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::FailedToSignDigestWithRsa => "Error", - KeyObjectHandlePrehashedSignAndVerifyError::DigestNotAllowedForRsaPssSignature(_) => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::FailedToSignDigestWithRsaPss => "Error", - KeyObjectHandlePrehashedSignAndVerifyError::FailedToSignDigestWithDsa => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::RsaPssHashAlgorithmUnsupported => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::PrivateKeyDisallowsUsage { .. } => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::FailedToSignDigest => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::X25519KeyCannotBeUsedForSigning => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::Ed25519KeyCannotBeUsedForPrehashedSigning => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::DhKeyCannotBeUsedForSigning => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::KeyIsNotPublicOrPrivate => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::InvalidDsaSignature => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::X25519KeyCannotBeUsedForVerification => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::Ed25519KeyCannotBeUsedForPrehashedVerification => "TypeError", - KeyObjectHandlePrehashedSignAndVerifyError::DhKeyCannotBeUsedForVerification => "TypeError", - } - } - - pub fn get_crypto_hash_error(_: &HashError) -> &'static str { - "Error" - } - - pub fn get_asymmetric_public_key_jwk_error( - e: &AsymmetricPublicKeyJwkError, - ) -> &'static str { - match e { - AsymmetricPublicKeyJwkError::UnsupportedJwkEcCurveP224 => "TypeError", - AsymmetricPublicKeyJwkError::JwkExportNotImplementedForKeyType => { - "TypeError" - } - AsymmetricPublicKeyJwkError::KeyIsNotAsymmetricPublicKey => "TypeError", - } - } - - pub fn get_generate_rsa_pss_error(_: &GenerateRsaPssError) -> &'static str { - "TypeError" - } - - pub fn get_asymmetric_private_key_der_error( - e: &AsymmetricPrivateKeyDerError, - ) -> &'static str { - match e { - AsymmetricPrivateKeyDerError::KeyIsNotAsymmetricPrivateKey => "TypeError", - AsymmetricPrivateKeyDerError::InvalidRsaPrivateKey => "TypeError", - AsymmetricPrivateKeyDerError::ExportingNonRsaPrivateKeyAsPkcs1Unsupported => "TypeError", - AsymmetricPrivateKeyDerError::InvalidEcPrivateKey => "TypeError", - AsymmetricPrivateKeyDerError::ExportingNonEcPrivateKeyAsSec1Unsupported => "TypeError", - AsymmetricPrivateKeyDerError::ExportingNonRsaPssPrivateKeyAsPkcs8Unsupported => "Error", - AsymmetricPrivateKeyDerError::InvalidDsaPrivateKey => "TypeError", - AsymmetricPrivateKeyDerError::InvalidX25519PrivateKey => "TypeError", - AsymmetricPrivateKeyDerError::InvalidEd25519PrivateKey => "TypeError", - AsymmetricPrivateKeyDerError::InvalidDhPrivateKey => "TypeError", - AsymmetricPrivateKeyDerError::UnsupportedKeyType(_) => "TypeError", - } - } - - pub fn get_asymmetric_public_key_der_error( - _: &AsymmetricPublicKeyDerError, - ) -> &'static str { - "TypeError" - } - - pub fn get_export_public_key_pem_error( - e: &ExportPublicKeyPemError, - ) -> &'static str { - match e { - ExportPublicKeyPemError::AsymmetricPublicKeyDer(e) => { - get_asymmetric_public_key_der_error(e) - } - ExportPublicKeyPemError::VeryLargeData => "TypeError", - ExportPublicKeyPemError::Der(_) => "Error", - } - } - - pub fn get_export_private_key_pem_error( - e: &ExportPrivateKeyPemError, - ) -> &'static str { - match e { - ExportPrivateKeyPemError::AsymmetricPublicKeyDer(e) => { - get_asymmetric_private_key_der_error(e) - } - ExportPrivateKeyPemError::VeryLargeData => "TypeError", - ExportPrivateKeyPemError::Der(_) => "Error", - } - } - - pub fn get_x509_public_key_error(e: &X509PublicKeyError) -> &'static str { - match e { - X509PublicKeyError::X509(_) => "Error", - X509PublicKeyError::Rsa(_) => "Error", - X509PublicKeyError::Asn1(_) => "Error", - X509PublicKeyError::Ec(_) => "Error", - X509PublicKeyError::UnsupportedEcNamedCurve => "TypeError", - X509PublicKeyError::MissingEcParameters => "TypeError", - X509PublicKeyError::MalformedDssPublicKey => "TypeError", - X509PublicKeyError::UnsupportedX509KeyType => "TypeError", - } - } - - pub fn get_rsa_jwk_error(e: &RsaJwkError) -> &'static str { - match e { - RsaJwkError::Base64(_) => "Error", - RsaJwkError::Rsa(_) => "Error", - RsaJwkError::MissingRsaPrivateComponent => "TypeError", - } - } - - pub fn get_ec_jwk_error(e: &EcJwkError) -> &'static str { - match e { - EcJwkError::Ec(_) => "Error", - EcJwkError::UnsupportedCurve(_) => "TypeError", - } - } - - pub fn get_ed_raw_error(e: &EdRawError) -> &'static str { - match e { - EdRawError::Ed25519Signature(_) => "Error", - EdRawError::InvalidEd25519Key => "TypeError", - EdRawError::UnsupportedCurve => "TypeError", - } - } - - pub fn get_pbkdf2_error(e: &Pbkdf2Error) -> &'static str { - match e { - Pbkdf2Error::UnsupportedDigest(_) => "TypeError", - Pbkdf2Error::Join(_) => "Error", - } - } - - pub fn get_scrypt_async_error(e: &ScryptAsyncError) -> &'static str { - match e { - ScryptAsyncError::Join(_) => "Error", - ScryptAsyncError::Other(e) => get_error_class_name(e).unwrap_or("Error"), - } - } - - pub fn get_hkdf_error_error(e: &HkdfError) -> &'static str { - match e { - HkdfError::ExpectedSecretKey => "TypeError", - HkdfError::HkdfExpandFailed => "TypeError", - HkdfError::UnsupportedDigest(_) => "TypeError", - HkdfError::Join(_) => "Error", - } - } - - pub fn get_rsa_pss_params_parse_error( - _: &RsaPssParamsParseError, - ) -> &'static str { - "TypeError" - } - - pub fn get_asymmetric_private_key_error( - e: &AsymmetricPrivateKeyError, - ) -> &'static str { - match e { - AsymmetricPrivateKeyError::InvalidPemPrivateKeyInvalidUtf8(_) => "TypeError", - AsymmetricPrivateKeyError::InvalidEncryptedPemPrivateKey => "TypeError", - AsymmetricPrivateKeyError::InvalidPemPrivateKey => "TypeError", - AsymmetricPrivateKeyError::EncryptedPrivateKeyRequiresPassphraseToDecrypt => "TypeError", - AsymmetricPrivateKeyError::InvalidPkcs1PrivateKey => "TypeError", - AsymmetricPrivateKeyError::InvalidSec1PrivateKey => "TypeError", - AsymmetricPrivateKeyError::UnsupportedPemLabel(_) => "TypeError", - AsymmetricPrivateKeyError::RsaPssParamsParse(e) => get_rsa_pss_params_parse_error(e), - AsymmetricPrivateKeyError::InvalidEncryptedPkcs8PrivateKey => "TypeError", - AsymmetricPrivateKeyError::InvalidPkcs8PrivateKey => "TypeError", - AsymmetricPrivateKeyError::Pkcs1PrivateKeyDoesNotSupportEncryptionWithPassphrase => "TypeError", - AsymmetricPrivateKeyError::Sec1PrivateKeyDoesNotSupportEncryptionWithPassphrase => "TypeError", - AsymmetricPrivateKeyError::UnsupportedEcNamedCurve => "TypeError", - AsymmetricPrivateKeyError::InvalidPrivateKey => "TypeError", - AsymmetricPrivateKeyError::InvalidDsaPrivateKey => "TypeError", - AsymmetricPrivateKeyError::MalformedOrMissingNamedCurveInEcParameters => "TypeError", - AsymmetricPrivateKeyError::UnsupportedKeyType(_) => "TypeError", - AsymmetricPrivateKeyError::UnsupportedKeyFormat(_) => "TypeError", - AsymmetricPrivateKeyError::InvalidX25519PrivateKey => "TypeError", - AsymmetricPrivateKeyError::X25519PrivateKeyIsWrongLength => "TypeError", - AsymmetricPrivateKeyError::InvalidEd25519PrivateKey => "TypeError", - AsymmetricPrivateKeyError::MissingDhParameters => "TypeError", - AsymmetricPrivateKeyError::UnsupportedPrivateKeyOid => "TypeError", - } - } - - pub fn get_asymmetric_public_key_error( - e: &AsymmetricPublicKeyError, - ) -> &'static str { - match e { - AsymmetricPublicKeyError::InvalidPemPrivateKeyInvalidUtf8(_) => { - "TypeError" - } - AsymmetricPublicKeyError::InvalidPemPublicKey => "TypeError", - AsymmetricPublicKeyError::InvalidPkcs1PublicKey => "TypeError", - AsymmetricPublicKeyError::AsymmetricPrivateKey(e) => { - get_asymmetric_private_key_error(e) - } - AsymmetricPublicKeyError::InvalidX509Certificate => "TypeError", - AsymmetricPublicKeyError::X509(_) => "Error", - AsymmetricPublicKeyError::X509PublicKey(e) => { - get_x509_public_key_error(e) - } - AsymmetricPublicKeyError::UnsupportedPemLabel(_) => "TypeError", - AsymmetricPublicKeyError::InvalidSpkiPublicKey => "TypeError", - AsymmetricPublicKeyError::UnsupportedKeyType(_) => "TypeError", - AsymmetricPublicKeyError::UnsupportedKeyFormat(_) => "TypeError", - AsymmetricPublicKeyError::Spki(_) => "Error", - AsymmetricPublicKeyError::Pkcs1(_) => "Error", - AsymmetricPublicKeyError::RsaPssParamsParse(_) => "TypeError", - AsymmetricPublicKeyError::MalformedDssPublicKey => "TypeError", - AsymmetricPublicKeyError::MalformedOrMissingNamedCurveInEcParameters => { - "TypeError" - } - AsymmetricPublicKeyError::MalformedOrMissingPublicKeyInEcSpki => { - "TypeError" - } - AsymmetricPublicKeyError::Ec(_) => "Error", - AsymmetricPublicKeyError::UnsupportedEcNamedCurve => "TypeError", - AsymmetricPublicKeyError::MalformedOrMissingPublicKeyInX25519Spki => { - "TypeError" - } - AsymmetricPublicKeyError::X25519PublicKeyIsTooShort => "TypeError", - AsymmetricPublicKeyError::InvalidEd25519PublicKey => "TypeError", - AsymmetricPublicKeyError::MissingDhParameters => "TypeError", - AsymmetricPublicKeyError::MalformedDhParameters => "TypeError", - AsymmetricPublicKeyError::MalformedOrMissingPublicKeyInDhSpki => { - "TypeError" - } - AsymmetricPublicKeyError::UnsupportedPrivateKeyOid => "TypeError", - } - } - - pub fn get_private_encrypt_decrypt_error( - e: &PrivateEncryptDecryptError, - ) -> &'static str { - match e { - PrivateEncryptDecryptError::Pkcs8(_) => "Error", - PrivateEncryptDecryptError::Spki(_) => "Error", - PrivateEncryptDecryptError::Utf8(_) => "Error", - PrivateEncryptDecryptError::Rsa(_) => "Error", - PrivateEncryptDecryptError::UnknownPadding => "TypeError", - } - } - - pub fn get_ecdh_encode_pub_key_error(e: &EcdhEncodePubKey) -> &'static str { - match e { - EcdhEncodePubKey::InvalidPublicKey => "TypeError", - EcdhEncodePubKey::UnsupportedCurve => "TypeError", - EcdhEncodePubKey::Sec1(_) => "Error", - } - } - - pub fn get_diffie_hellman_error(_: &DiffieHellmanError) -> &'static str { - "TypeError" - } - - pub fn get_sign_ed25519_error(_: &SignEd25519Error) -> &'static str { - "TypeError" - } - - pub fn get_verify_ed25519_error(_: &VerifyEd25519Error) -> &'static str { - "TypeError" - } -} - -fn get_os_error(error: &OsError) -> &'static str { - match error { - OsError::Permission(e) => get_permission_check_error_class(e), - OsError::InvalidUtf8(_) => "InvalidData", - OsError::EnvEmptyKey => "TypeError", - OsError::EnvInvalidKey(_) => "TypeError", - OsError::EnvInvalidValue(_) => "TypeError", - OsError::Io(e) => get_io_error_class(e), - OsError::Var(e) => get_env_var_error_class(e), - } -} - -fn get_sync_fetch_error(error: &SyncFetchError) -> &'static str { - match error { - SyncFetchError::BlobUrlsNotSupportedInContext => "TypeError", - SyncFetchError::Io(e) => get_io_error_class(e), - SyncFetchError::InvalidScriptUrl => "TypeError", - SyncFetchError::InvalidStatusCode(_) => "TypeError", - SyncFetchError::ClassicScriptSchemeUnsupportedInWorkers(_) => "TypeError", - SyncFetchError::InvalidUri(_) => "Error", - SyncFetchError::InvalidMimeType(_) => "DOMExceptionNetworkError", - SyncFetchError::MissingMimeType => "DOMExceptionNetworkError", - SyncFetchError::Fetch(e) => get_fetch_error(e), - SyncFetchError::Join(_) => "Error", - SyncFetchError::Other(e) => get_error_class_name(e).unwrap_or("Error"), - } -} - -pub fn get_error_class_name(e: &AnyError) -> Option<&'static str> { - deno_core::error::get_custom_error_class(e) - .or_else(|| { - e.downcast_ref::() - .map(get_child_permission_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_permission_check_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_permission_error_class) - }) - .or_else(|| e.downcast_ref::().map(get_fs_error)) - .or_else(|| { - e.downcast_ref::() - .map(node::get_blocklist_error) - }) - .or_else(|| e.downcast_ref::().map(node::get_fs_error)) - .or_else(|| { - e.downcast_ref::() - .map(node::get_idna_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_ipc_json_stream_error) - }) - .or_else(|| e.downcast_ref::().map(node::get_ipc_error)) - .or_else(|| { - e.downcast_ref::() - .map(node::get_worker_threads_filename_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_require_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_http2_error) - }) - .or_else(|| e.downcast_ref::().map(node::get_os_error)) - .or_else(|| { - e.downcast_ref::() - .map(node::get_brotli_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_mode_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_zlib_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_crypto_cipher_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_crypto_cipher_context_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_crypto_decipher_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_crypto_decipher_context_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_x509_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_crypto_key_object_handle_prehashed_sign_and_verify_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_crypto_hash_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_asymmetric_public_key_jwk_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_generate_rsa_pss_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_asymmetric_private_key_der_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_asymmetric_public_key_der_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_export_public_key_pem_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_export_private_key_pem_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_rsa_jwk_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_ec_jwk_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_ed_raw_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_pbkdf2_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_scrypt_async_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_hkdf_error_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_rsa_pss_params_parse_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_asymmetric_private_key_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_asymmetric_public_key_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_private_encrypt_decrypt_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_ecdh_encode_pub_key_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_diffie_hellman_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_sign_ed25519_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(node::get_verify_ed25519_error) - }) - .or_else(|| e.downcast_ref::().map(get_napi_error_class)) - .or_else(|| e.downcast_ref::().map(get_web_error_class)) - .or_else(|| { - e.downcast_ref::() - .map(get_create_worker_error) - }) - .or_else(|| e.downcast_ref::().map(get_tty_error)) - .or_else(|| e.downcast_ref::().map(get_readline_error)) - .or_else(|| e.downcast_ref::().map(get_signal_error)) - .or_else(|| e.downcast_ref::().map(get_fs_events_error)) - .or_else(|| e.downcast_ref::().map(get_http_start_error)) - .or_else(|| e.downcast_ref::().map(get_process_error)) - .or_else(|| e.downcast_ref::().map(get_os_error)) - .or_else(|| e.downcast_ref::().map(get_sync_fetch_error)) - .or_else(|| { - e.downcast_ref::() - .map(get_web_compression_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_web_message_port_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_web_stream_resource_error_class) - }) - .or_else(|| e.downcast_ref::().map(get_web_blob_error_class)) - .or_else(|| e.downcast_ref::().map(|_| "TypeError")) - .or_else(|| e.downcast_ref::().map(get_ffi_repr_error_class)) - .or_else(|| e.downcast_ref::().map(get_http_error)) - .or_else(|| e.downcast_ref::().map(get_http_next_error)) - .or_else(|| { - e.downcast_ref::() - .map(get_websocket_upgrade_error) - }) - .or_else(|| e.downcast_ref::().map(get_fs_ops_error)) - .or_else(|| { - e.downcast_ref::() - .map(get_ffi_dlfcn_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_ffi_static_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_ffi_callback_error_class) - }) - .or_else(|| e.downcast_ref::().map(get_ffi_call_error_class)) - .or_else(|| e.downcast_ref::().map(get_tls_error_class)) - .or_else(|| e.downcast_ref::().map(get_cron_error_class)) - .or_else(|| e.downcast_ref::().map(get_canvas_error)) - .or_else(|| e.downcast_ref::().map(get_cache_error)) - .or_else(|| e.downcast_ref::().map(get_websocket_error)) - .or_else(|| { - e.downcast_ref::() - .map(get_websocket_handshake_error) - }) - .or_else(|| e.downcast_ref::().map(get_kv_error)) - .or_else(|| e.downcast_ref::().map(get_fetch_error)) - .or_else(|| { - e.downcast_ref::() - .map(get_http_client_create_error) - }) - .or_else(|| e.downcast_ref::().map(get_net_error)) - .or_else(|| { - e.downcast_ref::() - .map(get_net_map_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_broadcast_channel_error) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_webgpu_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_webgpu_buffer_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_webgpu_bundle_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_webgpu_byow_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_webgpu_render_pass_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_webgpu_surface_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_decrypt_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_encrypt_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_shared_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_ed25519_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_export_key_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_generate_key_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_import_key_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_x448_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_x25519_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_crypto_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_webstorage_class_name) - }) - .or_else(|| { - e.downcast_ref::() - .map(|_| "TypeError") - }) - .or_else(|| { - e.downcast_ref::() - .map(get_dlopen_error_class) - }) - .or_else(|| e.downcast_ref::().map(get_hyper_error_class)) - .or_else(|| { - e.downcast_ref::() - .map(get_hyper_util_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_hyper_v014_error_class) - }) - .or_else(|| { - e.downcast_ref::>() - .map(|e| get_hyper_v014_error_class(e)) - }) - .or_else(|| { - e.downcast_ref::().map(|e| { - let io_err: io::Error = e.to_owned().into(); - get_io_error_class(&io_err) - }) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_env_var_error_class) - }) - .or_else(|| e.downcast_ref::().map(get_io_error_class)) - .or_else(|| { - e.downcast_ref::() - .map(get_module_resolution_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_notify_error_class) - }) - .or_else(|| e.downcast_ref::().map(get_regex_error_class)) - .or_else(|| { - e.downcast_ref::() - .map(get_serde_json_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_url_parse_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(|_| "TypeError") - }) - .or_else(|| { - #[cfg(unix)] - let maybe_get_nix_error_class = - || e.downcast_ref::().map(get_nix_error_class); - #[cfg(not(unix))] - let maybe_get_nix_error_class = || Option::<&'static str>::None; - (maybe_get_nix_error_class)() - }) -} diff --git a/runtime/lib.rs b/runtime/lib.rs index f0b1129ce3cf50..62c5865fea36aa 100644 --- a/runtime/lib.rs +++ b/runtime/lib.rs @@ -27,7 +27,6 @@ pub use deno_websocket; pub use deno_webstorage; pub mod code_cache; -pub mod errors; pub mod fmt_errors; pub mod fs_util; pub mod inspector_server; diff --git a/runtime/ops/fs_events.rs b/runtime/ops/fs_events.rs index c8e0228bc04199..b238b8d783c288 100644 --- a/runtime/ops/fs_events.rs +++ b/runtime/ops/fs_events.rs @@ -27,6 +27,7 @@ use std::path::Path; use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; +use deno_core::error::GENERIC_ERROR; use tokio::sync::mpsc; deno_core::extension!( @@ -109,16 +110,31 @@ fn starts_with_canonicalized(path: &Path, prefix: &str) -> bool { } } -#[derive(Debug, thiserror::Error)] +deno_core::js_error_wrapper!(NotifyError, JsNotifyError, |err| { + match &err.kind { + notify::ErrorKind::Generic(_) => GENERIC_ERROR, + notify::ErrorKind::Io(e) => e.get_class(), + notify::ErrorKind::PathNotFound => "NotFound", + notify::ErrorKind::WatchNotFound => "NotFound", + notify::ErrorKind::InvalidConfig(_) => "InvalidData", + notify::ErrorKind::MaxFilesWatch => GENERIC_ERROR, + } +}); + +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum FsEventsError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(inherit)] #[error(transparent)] - Notify(#[from] NotifyError), + Notify(#[inherit] JsNotifyError), + #[class(inherit)] #[error(transparent)] - Canceled(#[from] deno_core::Canceled), + Canceled(#[from] #[inherit] deno_core::Canceled), } fn start_watcher( @@ -136,7 +152,7 @@ fn start_watcher( let sender_clone = senders.clone(); let watcher: RecommendedWatcher = Watcher::new( move |res: Result| { - let res2 = res.map(FsEvent::from).map_err(FsEventsError::Notify); + let res2 = res.map(FsEvent::from).map_err(|e| FsEventsError::Notify(JsNotifyError(e))); for (paths, sender) in sender_clone.lock().iter() { // Ignore result, if send failed it means that watcher was already closed, // but not all messages have been flushed. @@ -155,7 +171,7 @@ fn start_watcher( } }, Default::default(), - )?; + ).map_err(|e| FsEventsError::Notify(JsNotifyError(e)))?; state.put::(WatcherState { watcher, senders }); @@ -184,7 +200,7 @@ fn op_fs_events_open( .check_read(path, "Deno.watchFs()")?; let watcher = state.borrow_mut::(); - watcher.watcher.watch(&path, recursive_mode)?; + watcher.watcher.watch(&path, recursive_mode).map_err(|e| FsEventsError::Notify(JsNotifyError(e)))?; } let resource = FsEventsResource { receiver: AsyncRefCell::new(receiver), @@ -203,14 +219,13 @@ async fn op_fs_events_poll( let resource = state .borrow() .resource_table - .get::(rid) - .map_err(FsEventsError::Resource)?; + .get::(rid)?; let mut receiver = RcRef::map(&resource, |r| &r.receiver).borrow_mut().await; let cancel = RcRef::map(resource, |r| &r.cancel); let maybe_result = receiver.recv().or_cancel(cancel).await?; match maybe_result { Some(Ok(value)) => Ok(Some(value)), - Some(Err(err)) => Err(FsEventsError::Notify(err)), + Some(Err(err)) => Err(FsEventsError::Notify(JsNotifyError(err))), None => Ok(None), } } diff --git a/runtime/ops/http.rs b/runtime/ops/http.rs index 6e315766866f04..f6dd6de39ca559 100644 --- a/runtime/ops/http.rs +++ b/runtime/ops/http.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use std::rc::Rc; - +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; use deno_core::ResourceId; @@ -13,23 +13,30 @@ pub const UNSTABLE_FEATURE_NAME: &str = "http"; deno_core::extension!(deno_http_runtime, ops = [op_http_start],); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum HttpStartError { + #[class("Busy")] #[error("TCP stream is currently in use")] TcpStreamInUse, + #[class("Busy")] #[error("TLS stream is currently in use")] TlsStreamInUse, + #[class("Busy")] #[error("Unix socket is currently in use")] UnixSocketInUse, + #[class(GENERIC)] #[error(transparent)] ReuniteTcp(#[from] tokio::net::tcp::ReuniteError), #[cfg(unix)] + #[class(GENERIC)] #[error(transparent)] ReuniteUnix(#[from] tokio::net::unix::ReuniteError), + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Resource(#[inherit] ResourceError), } #[op2(fast)] @@ -89,5 +96,5 @@ fn op_http_start( )); } - Err(HttpStartError::Other(deno_core::error::bad_resource_id())) + Err(HttpStartError::Resource(ResourceError::BadResourceId)) } diff --git a/runtime/ops/os/mod.rs b/runtime/ops/os/mod.rs index 9bee9d82349d24..49eeb9d228f686 100644 --- a/runtime/ops/os/mod.rs +++ b/runtime/ops/os/mod.rs @@ -6,7 +6,7 @@ use deno_core::v8; use deno_core::OpState; use deno_node::NODE_ENV_VAR_ALLOWLIST; use deno_path_util::normalize_path; -use deno_permissions::PermissionsContainer; +use deno_permissions::{PermissionCheckError, PermissionsContainer}; use serde::Serialize; use std::collections::HashMap; use std::env; @@ -70,22 +70,29 @@ deno_core::extension!( }, ); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum OsError { + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] PermissionCheckError), + #[class("InvalidData")] #[error("File name or path {0:?} is not valid UTF-8")] InvalidUtf8(std::ffi::OsString), + #[class(TYPE)] #[error("Key is an empty string.")] EnvEmptyKey, + #[class(TYPE)] #[error("Key contains invalid characters: {0:?}")] EnvInvalidKey(String), + #[class(TYPE)] #[error("Value contains invalid characters: {0:?}")] EnvInvalidValue(String), + #[class(inherit)] #[error(transparent)] - Var(#[from] env::VarError), + Var(#[from] #[inherit] env::VarError), + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), } #[op2] @@ -128,7 +135,7 @@ fn op_set_env( #[serde] fn op_env( state: &mut OpState, -) -> Result, deno_core::error::AnyError> { +) -> Result, PermissionCheckError> { state.borrow_mut::().check_env_all()?; Ok(env::vars().collect()) } @@ -194,7 +201,7 @@ fn op_exit(state: &mut OpState) { #[serde] fn op_loadavg( state: &mut OpState, -) -> Result<(f64, f64, f64), deno_core::error::AnyError> { +) -> Result<(f64, f64, f64), PermissionCheckError> { state .borrow_mut::() .check_sys("loadavg", "Deno.loadavg()")?; @@ -205,7 +212,7 @@ fn op_loadavg( #[string] fn op_hostname( state: &mut OpState, -) -> Result { +) -> Result { state .borrow_mut::() .check_sys("hostname", "Deno.hostname()")?; @@ -216,7 +223,7 @@ fn op_hostname( #[string] fn op_os_release( state: &mut OpState, -) -> Result { +) -> Result { state .borrow_mut::() .check_sys("osRelease", "Deno.osRelease()")?; @@ -279,7 +286,7 @@ impl From for NetworkInterface { #[serde] fn op_system_memory_info( state: &mut OpState, -) -> Result, deno_core::error::AnyError> { +) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("systemMemoryInfo", "Deno.systemMemoryInfo()")?; @@ -291,7 +298,7 @@ fn op_system_memory_info( #[smi] fn op_gid( state: &mut OpState, -) -> Result, deno_core::error::AnyError> { +) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("gid", "Deno.gid()")?; @@ -307,7 +314,7 @@ fn op_gid( #[smi] fn op_gid( state: &mut OpState, -) -> Result, deno_core::error::AnyError> { +) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("gid", "Deno.gid()")?; @@ -319,7 +326,7 @@ fn op_gid( #[smi] fn op_uid( state: &mut OpState, -) -> Result, deno_core::error::AnyError> { +) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("uid", "Deno.uid()")?; @@ -335,7 +342,7 @@ fn op_uid( #[smi] fn op_uid( state: &mut OpState, -) -> Result, deno_core::error::AnyError> { +) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("uid", "Deno.uid()")?; @@ -513,7 +520,7 @@ fn rss() -> usize { } } -fn os_uptime(state: &mut OpState) -> Result { +fn os_uptime(state: &mut OpState) -> Result { state .borrow_mut::() .check_sys("osUptime", "Deno.osUptime()")?; @@ -524,6 +531,6 @@ fn os_uptime(state: &mut OpState) -> Result { #[number] fn op_os_uptime( state: &mut OpState, -) -> Result { +) -> Result { os_uptime(state) } diff --git a/runtime/ops/permissions.rs b/runtime/ops/permissions.rs index 9ad963f3bc1aa4..c9529641ecfa14 100644 --- a/runtime/ops/permissions.rs +++ b/runtime/ops/permissions.rs @@ -45,18 +45,23 @@ impl From for PermissionStatus { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum PermissionError { + #[class("ReferenceError")] #[error("No such permission name: {0}")] InvalidPermissionName(String), + #[class(inherit)] #[error("{0}")] - PathResolve(#[from] ::deno_permissions::PathResolveError), + PathResolve(#[from] #[inherit] ::deno_permissions::PathResolveError), + #[class(URI)] #[error("{0}")] NetDescriptorParse(#[from] ::deno_permissions::NetDescriptorParseError), + #[class(inherit)] #[error("{0}")] - SysDescriptorParse(#[from] ::deno_permissions::SysDescriptorParseError), + SysDescriptorParse(#[from] #[inherit] ::deno_permissions::SysDescriptorParseError), + #[class(inherit)] #[error("{0}")] - RunDescriptorParse(#[from] ::deno_permissions::RunDescriptorParseError), + RunDescriptorParse(#[from] #[inherit] ::deno_permissions::RunDescriptorParseError), } #[op2] diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index de3141f1f933dd..928c8c2746407e 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -37,6 +37,7 @@ use crate::ops::signal::SignalError; use std::os::unix::prelude::ExitStatusExt; #[cfg(unix)] use std::os::unix::process::CommandExt; +use deno_core::error::JsNativeError; pub const UNSTABLE_FEATURE_NAME: &str = "process"; @@ -107,8 +108,7 @@ impl StdioOrRid { match &self { StdioOrRid::Stdio(val) => Ok(val.as_stdio()), StdioOrRid::Rid(rid) => { - FileResource::with_file(state, *rid, |file| Ok(file.as_stdio()?)) - .map_err(ProcessError::Resource) + Ok(FileResource::with_file(state, *rid, |file| Ok(file.as_stdio().map_err(JsNativeError::from_err)?))?) } } } @@ -190,37 +190,72 @@ pub struct SpawnArgs { needs_npm_process_state: bool, } -#[derive(Debug, thiserror::Error)] +#[cfg(unix)] +deno_core::js_error_wrapper!(nix::Error, JsNixError, |err| { + match err { + nix::Error::ECHILD => "NotFound", + nix::Error::EINVAL => "TypeError", + nix::Error::ENOENT => "NotFound", + nix::Error::ENOTTY => "BadResource", + nix::Error::EPERM => "PermissionDenied", + nix::Error::ESRCH => "NotFound", + nix::Error::ELOOP => "FilesystemLoop", + nix::Error::ENOTDIR => "NotADirectory", + nix::Error::ENETUNREACH => "NetworkUnreachable", + nix::Error::EISDIR => "IsADirectory", + nix::Error::UnknownErrno => "Error", + &nix::Error::ENOTSUP => unreachable!(), + _ => "Error", + } +}); + +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum ProcessError { + #[class(inherit)] #[error("Failed to spawn '{command}': {error}")] SpawnFailed { command: String, - #[source] + #[source] #[inherit] error: Box, }, + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), #[cfg(unix)] + #[class(inherit)] #[error(transparent)] - Nix(nix::Error), + Nix(#[inherit] JsNixError), + #[class(inherit)] #[error("failed resolving cwd: {0}")] - FailedResolvingCwd(#[source] std::io::Error), + FailedResolvingCwd(#[source] #[inherit] std::io::Error), + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(inherit)] #[error(transparent)] - RunPermission(#[from] CheckRunPermissionError), + RunPermission(#[from] #[inherit] CheckRunPermissionError), + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[inherit] deno_core::error::ResourceError), + #[class(GENERIC)] #[error(transparent)] BorrowMut(std::cell::BorrowMutError), + #[class(GENERIC)] #[error(transparent)] Which(which::Error), + #[class(TYPE)] #[error("Child process has already terminated.")] ChildProcessAlreadyTerminated, + #[class(TYPE)] #[error("Invalid pid")] InvalidPid, + #[class(inherit)] + #[error(transparent)] + Signal(#[from] #[inherit] SignalError), + #[class(inherit)] #[error(transparent)] - Signal(#[from] SignalError), + Other(#[from] #[inherit] JsNativeError), + #[class(TYPE)] #[error("Missing cmd")] MissingCmd, // only for Deno.run } @@ -735,12 +770,14 @@ fn resolve_path(path: &str, cwd: &Path) -> PathBuf { deno_path_util::normalize_path(cwd.join(path)) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CheckRunPermissionError { + #[class(inherit)] #[error(transparent)] - Permission(#[from] deno_permissions::PermissionCheckError), + Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + #[class(inherit)] #[error("{0}")] - Other(deno_core::error::AnyError), + Other(#[inherit] JsNativeError), } fn check_run_permission( @@ -756,7 +793,7 @@ fn check_run_permission( if !env_var_names.is_empty() { // we don't allow users to launch subprocesses with any LD_ or DYLD_* // env vars set because this allows executing code (ex. LD_PRELOAD) - return Err(CheckRunPermissionError::Other(deno_core::error::custom_error( + return Err(CheckRunPermissionError::Other(JsNativeError::new( "NotCapable", format!( "Requires --allow-all permissions to spawn subprocess with {} environment variable{}.", @@ -1077,8 +1114,8 @@ mod deprecated { use nix::sys::signal::kill as unix_kill; use nix::sys::signal::Signal; use nix::unistd::Pid; - let sig = Signal::try_from(signo).map_err(ProcessError::Nix)?; - unix_kill(Pid::from_raw(pid), Some(sig)).map_err(ProcessError::Nix) + let sig = Signal::try_from(signo).map_err(|e | ProcessError::Nix(JsNixError(e)))?; + unix_kill(Pid::from_raw(pid), Some(sig)).map_err(|e | ProcessError::Nix(JsNixError(e))) } #[cfg(not(unix))] diff --git a/runtime/ops/signal.rs b/runtime/ops/signal.rs index e1e4ab68bcf86f..570cccd65c0272 100644 --- a/runtime/ops/signal.rs +++ b/runtime/ops/signal.rs @@ -17,7 +17,7 @@ use std::rc::Rc; use std::sync::atomic::AtomicBool; #[cfg(unix)] use std::sync::Arc; - +use deno_core::error::ResourceError; #[cfg(unix)] use tokio::signal::unix::signal; #[cfg(unix)] @@ -44,7 +44,7 @@ deno_core::extension!( } ); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum SignalError { #[cfg(any( target_os = "android", @@ -55,6 +55,7 @@ pub enum SignalError { target_os = "solaris", target_os = "illumos" ))] + #[class(TYPE)] #[error("Invalid signal: {0}")] InvalidSignalStr(String), #[cfg(any( @@ -66,18 +67,23 @@ pub enum SignalError { target_os = "solaris", target_os = "illumos" ))] + #[class(TYPE)] #[error("Invalid signal: {0}")] InvalidSignalInt(libc::c_int), #[cfg(target_os = "windows")] + #[class(TYPE)] #[error("Windows only supports ctrl-c (SIGINT) and ctrl-break (SIGBREAK), but got {0}")] InvalidSignalStr(String), #[cfg(target_os = "windows")] + #[class(TYPE)] #[error("Windows only supports ctrl-c (SIGINT) and ctrl-break (SIGBREAK), but got {0}")] InvalidSignalInt(libc::c_int), + #[class(TYPE)] #[error("Binding to signal '{0}' is not allowed")] SignalNotAllowed(String), + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), } #[cfg(unix)] @@ -460,7 +466,7 @@ fn op_signal_bind( async fn op_signal_poll( state: Rc>, #[smi] rid: ResourceId, -) -> Result { +) -> Result { let resource = state .borrow_mut() .resource_table @@ -479,7 +485,7 @@ async fn op_signal_poll( pub fn op_signal_unbind( state: &mut OpState, #[smi] rid: ResourceId, -) -> Result<(), deno_core::error::AnyError> { +) -> Result<(), ResourceError> { let resource = state.resource_table.take::(rid)?; #[cfg(unix)] diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index 7849185faaeaf8..8d5147742c796d 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -27,6 +27,7 @@ use nix::sys::termios; use std::cell::RefCell; #[cfg(unix)] use std::collections::HashMap; +use deno_core::error::{JsNativeError, GENERIC_ERROR}; #[cfg(unix)] #[derive(Default, Clone)] @@ -53,6 +54,7 @@ impl TtyModeStore { use winapi::shared::minwindef::DWORD; #[cfg(windows)] use winapi::um::wincon; +use crate::ops::process::JsNixError; deno_core::extension!( deno_tty, @@ -63,17 +65,21 @@ deno_core::extension!( }, ); -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum TtyError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(#[from] #[inherit] deno_core::error::ResourceError), + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] Error), #[cfg(unix)] + #[class(inherit)] #[error(transparent)] - Nix(nix::Error), + Nix(#[inherit] JsNixError), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[inherit] JsNativeError), } // ref: @@ -106,7 +112,7 @@ fn op_set_raw( let handle_or_fd = state .resource_table .get_fd(rid) - .map_err(TtyError::Resource)?; + ?; // From https://github.com/kkawakam/rustyline/blob/master/src/tty/windows.rs // and https://github.com/kkawakam/rustyline/blob/master/src/tty/unix.rs @@ -116,13 +122,14 @@ fn op_set_raw( #[cfg(windows)] { use winapi::shared::minwindef::FALSE; + use deno_core::error::JsNativeError; use winapi::um::consoleapi; let handle = handle_or_fd; if cbreak { - return Err(TtyError::Other(deno_core::error::not_supported())); + return Err(TtyError::Other(JsNativeError::not_supported())); } let mut original_mode: DWORD = 0; @@ -268,7 +275,7 @@ fn op_set_raw( None => { // Save original mode. let original_mode = - termios::tcgetattr(raw_fd).map_err(TtyError::Nix)?; + termios::tcgetattr(raw_fd).map_err(|e| TtyError::Nix(JsNixError(e)))?; tty_mode_store.set(rid, original_mode.clone()); original_mode } @@ -291,12 +298,12 @@ fn op_set_raw( raw.control_chars[termios::SpecialCharacterIndices::VMIN as usize] = 1; raw.control_chars[termios::SpecialCharacterIndices::VTIME as usize] = 0; termios::tcsetattr(raw_fd, termios::SetArg::TCSADRAIN, &raw) - .map_err(TtyError::Nix)?; + .map_err(|e| TtyError::Nix(JsNixError(e)))?; } else { // Try restore saved mode. if let Some(mode) = tty_mode_store.take(rid) { termios::tcsetattr(raw_fd, termios::SetArg::TCSADRAIN, &mode) - .map_err(TtyError::Nix)?; + .map_err(|e| TtyError::Nix(JsNixError(e)))?; } } @@ -317,7 +324,7 @@ fn op_console_size( let fd = state .resource_table .get_fd(rid) - .map_err(TtyError::Resource)?; + ?; let size = console_size_from_fd(fd)?; result[0] = size.cols; result[1] = size.rows; @@ -435,12 +442,28 @@ mod tests { } } +deno_core::js_error_wrapper!(ReadlineError, JsReadlineError, |err| { + match err { + ReadlineError::Io(e) => e.get_class(), + ReadlineError::Eof => GENERIC_ERROR, + ReadlineError::Interrupted => GENERIC_ERROR, + #[cfg(unix)] + ReadlineError::Errno(e) => JsNixError(e.clone()).get_class(), + ReadlineError::WindowResized => GENERIC_ERROR, + #[cfg(windows)] + ReadlineError::Decode(_) => GENERIC_ERROR, + #[cfg(windows)] + ReadlineError::SystemError(_) => GENERIC_ERROR, + _ => GENERIC_ERROR, + } +}); + #[op2] #[string] pub fn op_read_line_prompt( #[string] prompt_text: &str, #[string] default_value: &str, -) -> Result, ReadlineError> { +) -> Result, JsReadlineError> { let mut editor = Editor::<(), rustyline::history::DefaultHistory>::new() .expect("Failed to create editor."); @@ -460,6 +483,6 @@ pub fn op_read_line_prompt( Ok(None) } Err(ReadlineError::Eof) => Ok(None), - Err(err) => Err(err), + Err(err) => Err(JsReadlineError(err)), } } diff --git a/runtime/ops/web_worker/sync_fetch.rs b/runtime/ops/web_worker/sync_fetch.rs index d1f133d3d22e66..574d42102879e2 100644 --- a/runtime/ops/web_worker/sync_fetch.rs +++ b/runtime/ops/web_worker/sync_fetch.rs @@ -25,30 +25,41 @@ fn mime_type_essence(mime_type: &str) -> String { essence.trim().to_ascii_lowercase() } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum SyncFetchError { + #[class(TYPE)] #[error("Blob URLs are not supported in this context.")] BlobUrlsNotSupportedInContext, + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), + #[class(TYPE)] #[error("Invalid script URL")] InvalidScriptUrl, + #[class(TYPE)] #[error("http status error: {0}")] InvalidStatusCode(http::StatusCode), + #[class(TYPE)] #[error("Classic scripts with scheme {0}: are not supported in workers")] ClassicScriptSchemeUnsupportedInWorkers(String), + #[class(GENERIC)] #[error("{0}")] InvalidUri(#[from] http::uri::InvalidUri), + #[class("DOMExceptionNetworkError")] #[error("Invalid MIME type {0:?}.")] InvalidMimeType(String), + #[class("DOMExceptionNetworkError")] #[error("Missing MIME type.")] MissingMimeType, + #[class(inherit)] #[error(transparent)] - Fetch(#[from] FetchError), + Fetch(#[from] #[inherit] FetchError), + #[class(inherit)] #[error(transparent)] - Join(#[from] tokio::task::JoinError), + Join(#[from] #[inherit] tokio::task::JoinError), + #[class(inherit)] #[error(transparent)] - Other(deno_core::error::AnyError), + Other(#[inherit] deno_core::error::JsNativeError), } #[derive(Serialize, Deserialize)] diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs index 521284a6a065b2..545da6a26bd057 100644 --- a/runtime/ops/worker_host.rs +++ b/runtime/ops/worker_host.rs @@ -118,18 +118,23 @@ pub struct CreateWorkerArgs { close_on_idle: bool, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum CreateWorkerError { + #[class("DOMExceptionNotSupportedError")] #[error("Classic workers are not supported.")] ClassicWorkers, + #[class(inherit)] #[error(transparent)] - Permission(deno_permissions::ChildPermissionError), + Permission(#[inherit] deno_permissions::ChildPermissionError), + #[class(inherit)] #[error(transparent)] - ModuleResolution(#[from] deno_core::ModuleResolutionError), + ModuleResolution(#[from] #[inherit] deno_core::ModuleResolutionError), + #[class(inherit)] #[error(transparent)] - MessagePort(#[from] MessagePortError), + MessagePort(#[from] #[inherit] MessagePortError), + #[class(inherit)] #[error("{0}")] - Io(#[from] std::io::Error), + Io(#[from] #[inherit] std::io::Error), } /// Create worker as the host diff --git a/runtime/permissions/lib.rs b/runtime/permissions/lib.rs index 6480f4bf586094..29791524c7e62f 100644 --- a/runtime/permissions/lib.rs +++ b/runtime/permissions/lib.rs @@ -805,7 +805,8 @@ pub enum Host { Ip(IpAddr), } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[class(URI)] pub enum HostParseError { #[error("invalid IPv6 address: '{0}'")] InvalidIpv6(String), @@ -940,12 +941,14 @@ pub enum NetDescriptorParseError { Host(#[from] HostParseError), } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum NetDescriptorFromUrlParseError { + #[class(TYPE)] #[error("Missing host in url: '{0}'")] MissingHost(Url), + #[class(inherit)] #[error("{0}")] - Host(#[from] HostParseError), + Host(#[from] #[inherit] HostParseError), } impl NetDescriptor { @@ -1197,10 +1200,12 @@ pub enum RunQueryDescriptor { Name(String), } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum PathResolveError { + #[class(inherit)] #[error("failed resolving cwd: {0}")] - CwdResolve(#[source] std::io::Error), + CwdResolve(#[source] #[inherit] std::io::Error), + #[class(GENERIC)] #[error("Empty path is not allowed")] EmptyPath, } @@ -1357,12 +1362,15 @@ pub enum AllowRunDescriptorParseResult { Descriptor(AllowRunDescriptor), } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum RunDescriptorParseError { + #[class(GENERIC)] #[error("{0}")] Which(#[from] which::Error), + #[class(inherit)] #[error("{0}")] - PathResolve(#[from] PathResolveError), + PathResolve(#[from] #[inherit] PathResolveError), + #[class(GENERIC)] #[error("Empty run query is not allowed")] EmptyRunQuery, } @@ -1447,10 +1455,12 @@ fn denies_run_name(name: &str, cmd_path: &Path) -> bool { suffix.is_empty() || suffix.starts_with('.') } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum SysDescriptorParseError { + #[class(TYPE)] #[error("unknown system info kind \"{0}\"")] - InvalidKind(String), // TypeError + InvalidKind(String), + #[class(GENERIC)] #[error("Empty sys not allowed")] Empty, // Error } @@ -2175,34 +2185,46 @@ pub enum CheckSpecifierKind { Dynamic, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum ChildPermissionError { + #[class("NotCapable")] #[error("Can't escalate parent thread permissions")] Escalation, + #[class(inherit)] #[error("{0}")] - PathResolve(#[from] PathResolveError), + PathResolve(#[from] #[inherit] PathResolveError), + #[class(URI)] #[error("{0}")] NetDescriptorParse(#[from] NetDescriptorParseError), + #[class(GENERIC)] #[error("{0}")] EnvDescriptorParse(#[from] EnvDescriptorParseError), + #[class(inherit)] #[error("{0}")] - SysDescriptorParse(#[from] SysDescriptorParseError), + SysDescriptorParse(#[from] #[inherit] SysDescriptorParseError), + #[class(inherit)] #[error("{0}")] - RunDescriptorParse(#[from] RunDescriptorParseError), + RunDescriptorParse(#[from] #[inherit] RunDescriptorParseError), } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_core::JsError)] pub enum PermissionCheckError { + #[class("NotCapable")] #[error(transparent)] PermissionDenied(#[from] PermissionDeniedError), + #[class(URI)] #[error("Invalid file path.\n Specifier: {0}")] InvalidFilePath(Url), + #[class(inherit)] #[error(transparent)] - NetDescriptorForUrlParse(#[from] NetDescriptorFromUrlParseError), + NetDescriptorForUrlParse(#[from] #[inherit] NetDescriptorFromUrlParseError), + #[class(inherit)] #[error(transparent)] - SysDescriptorParse(#[from] SysDescriptorParseError), + SysDescriptorParse(#[from] #[inherit] SysDescriptorParseError), + #[class(inherit)] #[error(transparent)] - PathResolve(#[from] PathResolveError), + PathResolve(#[from] #[inherit] PathResolveError), + #[class(URI)] #[error(transparent)] HostParse(#[from] HostParseError), } diff --git a/runtime/shared.rs b/runtime/shared.rs index f7d76f67a760da..807f91f104f5be 100644 --- a/runtime/shared.rs +++ b/runtime/shared.rs @@ -4,7 +4,7 @@ use deno_ast::MediaType; use deno_ast::ParseParams; use deno_ast::SourceMapOption; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::extension; use deno_core::Extension; use deno_core::ModuleCodeString; @@ -63,10 +63,13 @@ extension!(runtime, } ); +deno_core::js_error_wrapper!(deno_ast::ParseDiagnostic, JsParseDiagnostic, "Error"); +deno_core::js_error_wrapper!(deno_ast::TranspileError, JsTranspileError, "Error"); + pub fn maybe_transpile_source( name: ModuleName, source: ModuleCodeString, -) -> Result<(ModuleCodeString, Option), AnyError> { +) -> Result<(ModuleCodeString, Option), JsNativeError> { // Always transpile `node:` built-in modules, since they might be TypeScript. let media_type = if name.starts_with("node:") { MediaType::TypeScript @@ -91,7 +94,7 @@ pub fn maybe_transpile_source( capture_tokens: false, scope_analysis: false, maybe_syntax: None, - })?; + }).map_err(|e| JsNativeError::from_err(JsParseDiagnostic(e)))?; let transpiled_source = parsed .transpile( &deno_ast::TranspileOptions { @@ -107,7 +110,7 @@ pub fn maybe_transpile_source( }, ..Default::default() }, - )? + ).map_err(|e| JsNativeError::from_err(JsTranspileError(e)))? .into_source(); let maybe_source_map: Option = transpiled_source diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index 61e5c770299285..e36f830ec8aff9 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -3,8 +3,7 @@ use deno_broadcast_channel::InMemoryBroadcastChannel; use deno_cache::CreateCache; use deno_cache::SqliteBackedCache; -use deno_core::error::AnyError; -use deno_core::error::JsError; +use deno_core::error::{CoreError}; use deno_core::futures::channel::mpsc; use deno_core::futures::future::poll_fn; use deno_core::futures::stream::StreamExt; @@ -19,7 +18,6 @@ use deno_core::CompiledWasmModuleStore; use deno_core::DetachedBuffer; use deno_core::Extension; use deno_core::FeatureChecker; -use deno_core::GetErrorClassFn; use deno_core::JsRuntime; use deno_core::ModuleCodeString; use deno_core::ModuleId; @@ -104,8 +102,7 @@ pub enum WebWorkerType { /// Events that are sent to host from child /// worker. pub enum WorkerControlEvent { - Error(AnyError), - TerminalError(AnyError), + TerminalError(CoreError), Close, } @@ -118,15 +115,13 @@ impl Serialize for WorkerControlEvent { { let type_id = match &self { WorkerControlEvent::TerminalError(_) => 1_i32, - WorkerControlEvent::Error(_) => 2_i32, WorkerControlEvent::Close => 3_i32, }; match self { - WorkerControlEvent::TerminalError(error) - | WorkerControlEvent::Error(error) => { - let value = match error.downcast_ref::() { - Some(js_error) => { + WorkerControlEvent::TerminalError(error) => { + let value = match error { + CoreError::Js(js_error) => { let frame = js_error.frames.iter().find(|f| match &f.file_name { Some(s) => !s.trim_start_matches('[').starts_with("ext:"), None => false, @@ -138,7 +133,7 @@ impl Serialize for WorkerControlEvent { "columnNumber": frame.map(|f| f.column_number.as_ref()), }) } - None => json!({ + _ => json!({ "message": error.to_string(), }), }; @@ -365,7 +360,6 @@ pub struct WebWorkerOptions { pub create_web_worker_cb: Arc, pub format_js_error_fn: Option>, pub worker_type: WebWorkerType, - pub get_error_class_fn: Option, pub cache_storage_dir: Option, pub stdio: Stdio, pub strace_ops: Option>, @@ -555,7 +549,6 @@ impl WebWorker { let mut js_runtime = JsRuntime::new(RuntimeOptions { module_loader: Some(services.module_loader), startup_snapshot: options.startup_snapshot, - get_error_class_fn: options.get_error_class_fn, shared_array_buffer_store: services.shared_array_buffer_store, compiled_wasm_module_store: services.compiled_wasm_module_store, extensions, @@ -717,7 +710,7 @@ impl WebWorker { &mut self, name: &'static str, source_code: ModuleCodeString, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { self.js_runtime.execute_script(name, source_code)?; Ok(()) } @@ -726,7 +719,7 @@ impl WebWorker { pub async fn preload_main_module( &mut self, module_specifier: &ModuleSpecifier, - ) -> Result { + ) -> Result { self.js_runtime.load_main_es_module(module_specifier).await } @@ -734,7 +727,7 @@ impl WebWorker { pub async fn preload_side_module( &mut self, module_specifier: &ModuleSpecifier, - ) -> Result { + ) -> Result { self.js_runtime.load_side_es_module(module_specifier).await } @@ -745,7 +738,7 @@ impl WebWorker { pub async fn execute_side_module( &mut self, module_specifier: &ModuleSpecifier, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { let id = self.preload_side_module(module_specifier).await?; let mut receiver = self.js_runtime.mod_evaluate(id); tokio::select! { @@ -769,7 +762,7 @@ impl WebWorker { pub async fn execute_main_module( &mut self, id: ModuleId, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { let mut receiver = self.js_runtime.mod_evaluate(id); let poll_options = PollEventLoopOptions::default(); @@ -796,7 +789,7 @@ impl WebWorker { &mut self, cx: &mut Context, poll_options: PollEventLoopOptions, - ) -> Poll> { + ) -> Poll> { // If awakened because we are terminating, just return Ok if self.internal_handle.terminate_if_needed() { return Poll::Ready(Ok(())); @@ -853,7 +846,7 @@ impl WebWorker { pub async fn run_event_loop( &mut self, poll_options: PollEventLoopOptions, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { poll_fn(|cx| self.poll_event_loop(cx, poll_options)).await } @@ -897,14 +890,14 @@ impl WebWorker { #[allow(clippy::print_stderr)] fn print_worker_error( - error: &AnyError, + error: &CoreError, name: &str, format_js_error_fn: Option<&FormatJsErrorFn>, ) { let error_str = match format_js_error_fn { - Some(format_js_error_fn) => match error.downcast_ref::() { - Some(js_error) => format_js_error_fn(js_error), - None => error.to_string(), + Some(format_js_error_fn) => match error { + CoreError::Js(js_error) => format_js_error_fn(js_error), + _ => error.to_string(), }, None => error.to_string(), }; @@ -923,7 +916,7 @@ pub fn run_web_worker( specifier: ModuleSpecifier, mut maybe_source_code: Option, format_js_error_fn: Option>, -) -> Result<(), AnyError> { +) -> Result<(), CoreError> { let name = worker.name.to_string(); // TODO(bartlomieju): run following block using "select!" diff --git a/runtime/worker.rs b/runtime/worker.rs index 88a61fa9389801..65972cd01f416a 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -12,14 +12,13 @@ use std::time::Instant; use deno_broadcast_channel::InMemoryBroadcastChannel; use deno_cache::CreateCache; use deno_cache::SqliteBackedCache; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, CoreError}; use deno_core::error::JsError; use deno_core::merge_op_metrics; use deno_core::v8; use deno_core::CompiledWasmModuleStore; use deno_core::Extension; use deno_core::FeatureChecker; -use deno_core::GetErrorClassFn; use deno_core::InspectorSessionKind; use deno_core::InspectorSessionOptions; use deno_core::JsRuntime; @@ -58,10 +57,10 @@ use crate::BootstrapOptions; pub type FormatJsErrorFn = dyn Fn(&JsError) -> String + Sync + Send; pub fn import_meta_resolve_callback( - loader: &dyn deno_core::ModuleLoader, + loader: &dyn ModuleLoader, specifier: String, referrer: String, -) -> Result { +) -> Result { loader.resolve( &specifier, &referrer, @@ -200,9 +199,6 @@ pub struct WorkerOptions { /// If Some, print a low-level trace output for ops matching the given patterns. pub strace_ops: Option>, - /// Allows to map error type to a string "class" used to represent - /// error in JavaScript. - pub get_error_class_fn: Option, pub cache_storage_dir: Option, pub origin_storage_dir: Option, pub stdio: Stdio, @@ -222,7 +218,6 @@ impl Default for WorkerOptions { strace_ops: Default::default(), maybe_inspector_server: Default::default(), format_js_error_fn: Default::default(), - get_error_class_fn: Default::default(), origin_storage_dir: Default::default(), cache_storage_dir: Default::default(), extensions: Default::default(), @@ -481,7 +476,6 @@ impl MainWorker { startup_snapshot: options.startup_snapshot, create_params: options.create_params, skip_op_registration: options.skip_op_registration, - get_error_class_fn: options.get_error_class_fn, shared_array_buffer_store: services.shared_array_buffer_store.clone(), compiled_wasm_module_store: services.compiled_wasm_module_store.clone(), extensions, @@ -695,7 +689,7 @@ impl MainWorker { &mut self, script_name: &'static str, source_code: ModuleCodeString, - ) -> Result, AnyError> { + ) -> Result, CoreError> { self.js_runtime.execute_script(script_name, source_code) } @@ -703,7 +697,7 @@ impl MainWorker { pub async fn preload_main_module( &mut self, module_specifier: &ModuleSpecifier, - ) -> Result { + ) -> Result { self.js_runtime.load_main_es_module(module_specifier).await } @@ -711,7 +705,7 @@ impl MainWorker { pub async fn preload_side_module( &mut self, module_specifier: &ModuleSpecifier, - ) -> Result { + ) -> Result { self.js_runtime.load_side_es_module(module_specifier).await } @@ -719,7 +713,7 @@ impl MainWorker { pub async fn evaluate_module( &mut self, id: ModuleId, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { self.wait_for_inspector_session(); let mut receiver = self.js_runtime.mod_evaluate(id); tokio::select! { @@ -744,7 +738,7 @@ impl MainWorker { pub async fn run_up_to_duration( &mut self, duration: Duration, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { match tokio::time::timeout( duration, self @@ -763,7 +757,7 @@ impl MainWorker { pub async fn execute_side_module( &mut self, module_specifier: &ModuleSpecifier, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { let id = self.preload_side_module(module_specifier).await?; self.evaluate_module(id).await } @@ -774,7 +768,7 @@ impl MainWorker { pub async fn execute_main_module( &mut self, module_specifier: &ModuleSpecifier, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { let id = self.preload_main_module(module_specifier).await?; self.evaluate_module(id).await } @@ -805,10 +799,10 @@ impl MainWorker { pub async fn run_event_loop( &mut self, wait_for_inspector: bool, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { self .js_runtime - .run_event_loop(deno_core::PollEventLoopOptions { + .run_event_loop(PollEventLoopOptions { wait_for_inspector, ..Default::default() }) From b1442f4ad1141b5d3b1610e732dfabea81cd24b7 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Sat, 23 Nov 2024 08:18:28 +0100 Subject: [PATCH 02/36] Merge branch 'main' into update-deno-core-error-rework # Conflicts: # Cargo.lock # Cargo.toml # ext/cache/sqlite.rs # ext/fs/ops.rs # ext/kv/lib.rs # ext/node/lib.rs # ext/node/ops/inspector.rs # ext/node/ops/require.rs # runtime/errors.rs # runtime/ops/process.rs # runtime/web_worker.rs --- .dprint.json | 2 + .github/workflows/ci.generate.ts | 2 +- .github/workflows/ci.yml | 8 +- Cargo.lock | 231 +++-- Cargo.toml | 4 +- Releases.md | 80 ++ bench_util/Cargo.toml | 2 +- cli/Cargo.toml | 16 +- cli/args/deno_json.rs | 52 +- cli/args/flags.rs | 678 ++++++++++-- cli/args/lockfile.rs | 6 +- cli/args/mod.rs | 120 ++- cli/build.rs | 18 + cli/cache/code_cache.rs | 10 + cli/clippy.toml | 1 + cli/emit.rs | 8 +- cli/errors.rs | 1 + cli/factory.rs | 121 ++- cli/file_fetcher.rs | 13 +- cli/graph_util.rs | 81 +- cli/js/40_jupyter.js | 79 ++ cli/lsp/analysis.rs | 53 +- cli/lsp/completions.rs | 22 +- cli/lsp/config.rs | 12 + cli/lsp/diagnostics.rs | 1 + cli/lsp/documents.rs | 294 ++++-- cli/lsp/language_server.rs | 85 +- cli/lsp/parent_process_checker.rs | 2 +- cli/lsp/repl.rs | 2 +- cli/lsp/resolver.rs | 743 ++++++++------ cli/lsp/tsc.rs | 130 ++- cli/main.rs | 42 +- cli/mainrt.rs | 20 +- cli/module_loader.rs | 128 ++- cli/node.rs | 25 +- cli/npm/byonm.rs | 30 +- cli/npm/managed/mod.rs | 43 +- .../managed/resolvers/common/bin_entries.rs | 139 ++- .../resolvers/common/lifecycle_scripts.rs | 57 +- cli/npm/managed/resolvers/local.rs | 29 +- cli/npm/mod.rs | 32 +- cli/ops/bench.rs | 2 +- cli/ops/testing.rs | 2 +- cli/resolver.rs | 716 ++----------- cli/schemas/config-file.v1.json | 33 +- cli/standalone/binary.rs | 205 ++-- cli/standalone/code_cache.rs | 523 ++++++++++ cli/standalone/mod.rs | 177 +++- cli/standalone/virtual_fs.rs | 31 +- cli/task_runner.rs | 48 +- cli/tools/bench/mod.rs | 1 + cli/tools/check.rs | 6 + cli/tools/compile.rs | 80 +- cli/tools/coverage/mod.rs | 2 +- cli/tools/doc.rs | 196 ++-- cli/tools/doc/prism.css | 3 + cli/tools/doc/prism.js | 15 + cli/tools/fmt.rs | 118 ++- cli/tools/info.rs | 27 +- cli/tools/init/mod.rs | 68 +- cli/tools/installer.rs | 49 +- cli/tools/jupyter/mod.rs | 2 +- cli/tools/lint/mod.rs | 6 +- cli/tools/lint/reporters.rs | 18 + cli/tools/lint/rules/no_sloppy_imports.rs | 1 + cli/tools/registry/mod.rs | 96 +- cli/tools/registry/pm.rs | 34 +- cli/tools/registry/pm/cache_deps.rs | 17 +- cli/tools/registry/pm/deps.rs | 964 ++++++++++++++++++ cli/tools/registry/pm/outdated.rs | 661 ++++++++++++ cli/tools/repl/session.rs | 17 +- cli/tools/run/hmr.rs | 7 - cli/tools/run/mod.rs | 3 +- cli/tools/serve.rs | 3 +- cli/tools/task.rs | 813 +++++++++++---- cli/tools/test/mod.rs | 3 + cli/tools/upgrade.rs | 2 +- cli/tsc/99_main_compiler.js | 47 +- cli/tsc/dts/lib.deno.ns.d.ts | 13 +- cli/tsc/dts/lib.deno.shared_globals.d.ts | 58 +- cli/tsc/dts/lib.deno.unstable.d.ts | 93 ++ cli/tsc/mod.rs | 91 +- cli/util/extract.rs | 57 +- cli/util/file_watcher.rs | 26 +- cli/util/logger.rs | 1 + cli/util/path.rs | 13 +- cli/util/v8.rs | 9 +- cli/worker.rs | 63 +- ext/broadcast_channel/Cargo.toml | 3 +- ext/broadcast_channel/lib.rs | 6 +- ext/cache/Cargo.toml | 3 +- ext/cache/lib.rs | 8 +- ext/canvas/Cargo.toml | 3 +- ext/canvas/lib.rs | 6 +- ext/console/Cargo.toml | 2 +- ext/console/internal.d.ts | 3 + ext/cron/Cargo.toml | 3 +- ext/cron/lib.rs | 16 +- ext/crypto/Cargo.toml | 3 +- ext/crypto/decrypt.rs | 12 +- ext/crypto/ed25519.rs | 6 +- ext/crypto/encrypt.rs | 8 +- ext/crypto/export_key.rs | 4 +- ext/crypto/generate_key.rs | 2 +- ext/crypto/import_key.rs | 2 +- ext/crypto/lib.rs | 36 +- ext/crypto/shared.rs | 16 +- ext/crypto/x25519.rs | 4 +- ext/crypto/x448.rs | 4 +- ext/fetch/22_body.js | 14 + ext/fetch/Cargo.toml | 4 +- ext/fetch/dns.rs | 116 +++ ext/fetch/lib.deno_fetch.d.ts | 2 + ext/fetch/lib.rs | 79 +- ext/fetch/tests.rs | 80 +- ext/ffi/Cargo.toml | 3 +- ext/ffi/call.rs | 12 +- ext/ffi/callback.rs | 4 +- ext/ffi/dlfcn.rs | 21 +- ext/ffi/ir.rs | 4 +- ext/ffi/repr.rs | 46 +- ext/ffi/static.rs | 6 +- ext/fs/30_fs.js | 6 +- ext/fs/Cargo.toml | 3 +- ext/fs/in_memory_fs.rs | 2 + ext/fs/lib.rs | 1 + ext/fs/ops.rs | 16 +- ext/fs/std_fs.rs | 34 +- ext/http/00_serve.ts | 137 +-- ext/http/Cargo.toml | 2 +- ext/http/http_next.rs | 84 +- ext/http/lib.rs | 37 +- ext/http/websocket_upgrade.rs | 12 +- ext/io/Cargo.toml | 3 +- ext/io/fs.rs | 16 +- ext/kv/Cargo.toml | 3 +- ext/kv/config.rs | 21 +- ext/kv/lib.rs | 60 +- ext/kv/remote.rs | 2 + ext/kv/sqlite.rs | 2 +- ext/napi/Cargo.toml | 3 +- ext/napi/lib.rs | 10 +- ext/napi/node_api.rs | 5 +- ext/napi/sym/Cargo.toml | 2 +- ext/napi/uv.rs | 3 +- ext/net/Cargo.toml | 5 +- ext/net/io.rs | 4 +- ext/net/lib.rs | 2 +- ext/net/ops.rs | 28 +- ext/net/ops_tls.rs | 6 +- ext/net/ops_unix.rs | 12 +- ext/net/raw.rs | 6 +- ext/node/Cargo.toml | 6 +- ext/node/ops/blocklist.rs | 4 +- ext/node/ops/crypto/cipher.rs | 38 +- ext/node/ops/crypto/digest.rs | 4 +- ext/node/ops/crypto/keys.rs | 126 +-- ext/node/ops/crypto/mod.rs | 46 +- ext/node/ops/crypto/sign.rs | 8 +- ext/node/ops/crypto/x509.rs | 2 +- ext/node/ops/fs.rs | 24 +- ext/node/ops/http.rs | 2 +- ext/node/ops/http2.rs | 4 +- ext/node/ops/idna.rs | 10 +- ext/node/ops/inspector.rs | 4 +- ext/node/ops/ipc.rs | 6 +- ext/node/ops/mod.rs | 1 + ext/node/ops/os/mod.rs | 18 +- ext/node/ops/os/priority.rs | 4 +- ext/node/ops/perf_hooks.rs | 135 +++ ext/node/ops/process.rs | 2 +- ext/node/ops/require.rs | 18 +- ext/node/ops/worker_threads.rs | 14 +- ext/node/ops/zlib/brotli.rs | 8 +- ext/node/ops/zlib/mod.rs | 14 +- ext/node/ops/zlib/mode.rs | 4 +- ext/node/polyfills/01_require.js | 89 +- ext/node/polyfills/_fs/_fs_readFile.ts | 4 +- ext/node/polyfills/_fs/_fs_stat.ts | 10 +- ext/node/polyfills/_utils.ts | 4 +- ext/node/polyfills/internal/crypto/keygen.ts | 20 +- ext/node/polyfills/internal/errors.ts | 36 +- ext/node/polyfills/internal/net.ts | 1 + ext/node/polyfills/internal_binding/uv.ts | 2 + ext/node/polyfills/net.ts | 490 ++++++++- ext/node/polyfills/perf_hooks.ts | 10 +- ext/node/polyfills/process.ts | 16 +- ext/node/polyfills/timers.ts | 88 +- ext/node/polyfills/zlib.ts | 53 + ext/tls/Cargo.toml | 3 +- ext/tls/lib.rs | 4 +- ext/url/Cargo.toml | 3 +- ext/url/urlpattern.rs | 2 +- ext/web/06_streams.js | 63 +- ext/web/Cargo.toml | 3 +- ext/web/blob.rs | 10 +- ext/web/compression.rs | 8 +- ext/web/lib.rs | 14 +- ext/web/message_port.rs | 8 +- ext/web/stream_resource.rs | 4 +- ext/webgpu/01_webgpu.js | 12 +- ext/webgpu/Cargo.toml | 3 +- ext/webgpu/buffer.rs | 4 +- ext/webgpu/bundle.rs | 4 +- ext/webgpu/byow.rs | 20 +- ext/webgpu/lib.rs | 6 +- ext/webgpu/render_pass.rs | 4 +- ext/webgpu/surface.rs | 6 +- ext/webidl/00_webidl.js | 126 +++ ext/webidl/Cargo.toml | 2 +- ext/webidl/internal.d.ts | 26 + ext/websocket/01_websocket.js | 12 +- ext/websocket/Cargo.toml | 3 +- ext/websocket/lib.rs | 32 +- ext/webstorage/Cargo.toml | 3 +- ext/webstorage/lib.rs | 4 +- resolvers/deno/Cargo.toml | 6 +- resolvers/deno/cjs.rs | 272 +++++ resolvers/deno/fs.rs | 1 + resolvers/deno/lib.rs | 413 ++++++++ resolvers/deno/npm/byonm.rs | 23 +- resolvers/deno/npm/mod.rs | 268 ++++- resolvers/node/Cargo.toml | 3 +- resolvers/node/analyze.rs | 6 +- resolvers/node/errors.rs | 70 +- resolvers/node/lib.rs | 5 +- resolvers/node/npm.rs | 9 +- resolvers/node/package_json.rs | 4 +- resolvers/node/resolution.rs | 87 +- runtime/Cargo.toml | 9 +- runtime/clippy.toml | 1 + runtime/code_cache.rs | 11 +- runtime/examples/extension/main.rs | 1 + runtime/fmt_errors.rs | 27 +- runtime/js/90_deno_ns.js | 19 +- runtime/js/98_global_scope_shared.js | 13 + runtime/js/99_main.js | 16 +- runtime/js/telemetry.ts | 720 +++++++++++++ runtime/lib.rs | 29 +- runtime/ops/fs_events.rs | 6 +- runtime/ops/http.rs | 6 +- runtime/ops/mod.rs | 1 + runtime/ops/os/mod.rs | 43 +- runtime/ops/otel.rs | 855 ++++++++++++++++ runtime/ops/permissions.rs | 12 +- runtime/ops/process.rs | 16 +- runtime/ops/signal.rs | 12 +- runtime/ops/tty.rs | 4 +- runtime/ops/web_worker/sync_fetch.rs | 12 +- runtime/ops/worker_host.rs | 4 +- runtime/permissions/Cargo.toml | 3 +- runtime/permissions/lib.rs | 257 ++++- runtime/permissions/prompter.rs | 62 +- runtime/shared.rs | 5 +- runtime/snapshot.rs | 5 +- runtime/{ops/os => }/sys_info.rs | 0 runtime/worker.rs | 16 +- runtime/worker_bootstrap.rs | 11 + tests/Cargo.toml | 2 +- tests/integration/flags_tests.rs | 2 +- tests/integration/fmt_tests.rs | 18 +- tests/integration/install_tests.rs | 57 ++ tests/integration/lsp_tests.rs | 225 +++- tests/integration/node_unit_tests.rs | 1 + tests/integration/run_tests.rs | 89 +- tests/integration/watcher_tests.rs | 2 +- tests/node_compat/config.jsonc | 20 +- tests/node_compat/package.json | 3 + tests/node_compat/runner/TODO.md | 5 +- tests/node_compat/test.ts | 4 + tests/node_compat/test/common/index.js | 1 + tests/node_compat/test/fixtures/package.json | 1 - tests/node_compat/test/internet/package.json | 1 - .../node_compat/test/internet/test-dns-any.js | 194 ---- .../test/internet/test-dns-ipv4.js | 257 ----- .../test/internet/test-dns-ipv6.js | 250 ----- tests/node_compat/test/internet/test-dns.js | 766 -------------- tests/node_compat/test/parallel/package.json | 1 - .../parallel/test-net-autoselectfamily.js | 312 ++++++ .../node_compat/test/pseudo-tty/package.json | 1 - tests/node_compat/test/pummel/package.json | 1 - .../node_compat/test/sequential/package.json | 1 - tests/registry/jsr/@deno/otel/0.0.2/deno.json | 14 + .../jsr/@deno/otel/0.0.2/src/index.ts | 38 + .../jsr/@deno/otel/0.0.2/src/register.ts | 5 + tests/registry/jsr/@deno/otel/0.0.2_meta.json | 6 + tests/registry/jsr/@deno/otel/meta.json | 8 + tests/registry/jsr/@denotest/add/0.2.1/mod.ts | 4 + .../jsr/@denotest/add/0.2.1_meta.json | 8 + tests/registry/jsr/@denotest/add/meta.json | 3 +- .../@denotest/multiple-exports/0.2.0/add.ts | 1 + .../multiple-exports/0.2.0/data.json | 3 + .../multiple-exports/0.2.0/subtract.ts | 1 + .../multiple-exports/0.2.0_meta.json | 7 + .../@denotest/multiple-exports/0.5.0/add.ts | 1 + .../multiple-exports/0.5.0/data.json | 3 + .../multiple-exports/0.5.0/subtract.ts | 1 + .../multiple-exports/0.5.0_meta.json | 7 + .../jsr/@denotest/multiple-exports/meta.json | 4 +- .../jsr/@denotest/subtract/0.2.0/mod.ts | 3 + .../jsr/@denotest/subtract/0.2.0_meta.json | 8 + .../registry/jsr/@denotest/subtract/meta.json | 4 +- .../1.0.0/install.mjs | 3 + .../1.0.0/package.json | 10 + .../has-patch-versions/0.1.0/package.json | 5 + .../has-patch-versions/0.1.1/package.json | 5 + .../has-patch-versions/0.2.0/package.json | 4 + .../1.0.0/install.js | 12 + .../1.0.0/package.json | 7 + .../install-no-ext/1.0.0/install/check.js | 1 + .../install-no-ext/1.0.0/install/index.js | 1 + .../install-no-ext/1.0.0/install/output.js | 1 + .../install-no-ext/1.0.0/package.json | 7 + .../specifier-two-slashes/1.0.0/index.js | 2 + .../specifier-two-slashes/1.0.0/other.js | 3 + .../specifier-two-slashes/1.0.0/package.json | 6 + .../npm/@opentelemetry/api/registry.json | 1 + .../npm/@opentelemetry/core/registry.json | 1 + .../@opentelemetry/resources/registry.json | 1 + .../sdk-trace-base/registry.json | 1 + .../semantic-conventions/registry.json | 1 + tests/registry/npm/cli.ts/registry.json | 32 + tests/specs/check/wasm/__test__.jsonc | 5 + tests/specs/check/wasm/check.out | 6 + tests/specs/check/wasm/main.ts | 3 + tests/specs/cli/otel_basic/__test__.jsonc | 32 + tests/specs/cli/otel_basic/basic.out | 76 ++ tests/specs/cli/otel_basic/basic.ts | 34 + tests/specs/cli/otel_basic/deno.json | 4 + tests/specs/cli/otel_basic/deno_dot_exit.out | 19 + tests/specs/cli/otel_basic/deno_dot_exit.ts | 2 + tests/specs/cli/otel_basic/main.ts | 38 + tests/specs/cli/otel_basic/natural_exit.out | 19 + tests/specs/cli/otel_basic/natural_exit.ts | 1 + tests/specs/cli/otel_basic/uncaught.out | 37 + tests/specs/cli/otel_basic/uncaught.ts | 2 + tests/specs/compile/code_cache/__test__.jsonc | 32 + tests/specs/compile/code_cache/first_run.out | 1 + tests/specs/compile/code_cache/main.ts | 3 + tests/specs/compile/code_cache/second_run.out | 1 + tests/specs/compile/detect_cjs/deno.json | 5 - .../include/buffered_reads/__test__.jsonc | 27 + .../compile/include/buffered_reads/main.ts | 57 ++ .../compile/include/buffered_reads/setup.js | 7 + .../compile/include/data_files/__test__.jsonc | 41 + .../compile/include/data_files/data-file.txt | 1 + .../specs/compile/include/data_files/main.js | 1 + .../include/data_files/non_existent.out | 6 + .../compile/include/data_files/output.out | 1 + .../compile/include/folder/__test__.jsonc | 24 + tests/specs/compile/include/folder/data/a.txt | 1 + tests/specs/compile/include/folder/data/b.txt | 1 + tests/specs/compile/include/folder/main.js | 8 + tests/specs/compile/include/folder/output.out | 2 + .../compile/no_code_cache/__test__.jsonc | 22 + tests/specs/compile/no_code_cache/main.out | 1 + tests/specs/compile/no_code_cache/main.ts | 3 + .../__test__.jsonc | 0 .../{detect_cjs => package_json_type}/add.js | 0 .../compile.out | 0 .../{detect_cjs => package_json_type}/main.js | 0 .../output.out | 0 .../package.json | 0 .../subtract.ts | 0 tests/specs/doc/invalid_url/invalid_url.out | 2 +- .../lint_html_success/lint_success_html.out | 2 +- tests/specs/doc/wasm/__test__.jsonc | 4 + tests/specs/doc/wasm/doc.out | 21 + .../eval/pkg_json_type_cjs/__test__.jsonc | 4 + .../specs/eval/pkg_json_type_cjs/package.json | 3 + tests/specs/fmt/gitignore/.gitignore | 1 + tests/specs/fmt/gitignore/__test__.jsonc | 6 + tests/specs/fmt/gitignore/dist/file1.js | 6 + tests/specs/fmt/gitignore/expected.out | 10 + tests/specs/fmt/gitignore/file2.ts | 3 + tests/specs/fmt/sql/__test__.jsonc | 29 + tests/specs/fmt/sql/badly_formatted.sql | 1 + tests/specs/fmt/sql/ignore_file.sql | 3 + tests/specs/fmt/sql/ignore_file2.sql | 3 + tests/specs/fmt/sql/ignore_file3.sql | 6 + tests/specs/fmt/sql/ignore_file4.sql | 3 + tests/specs/fmt/sql/well_formatted.sql | 4 + tests/specs/fmt/sql/wrong_file_ignore.sql | 6 + tests/specs/info/flag/041_info_flag.out | 1 + .../flag_location/041_info_flag_location.out | 1 + tests/specs/info/json/info_json.out | 3 +- tests/specs/info/wasm_module/__test__.jsonc | 4 + tests/specs/info/wasm_module/main.js | 7 + tests/specs/info/wasm_module/main.out | 10 + tests/specs/init/npm/__test__.jsonc | 6 + tests/specs/init/npm/init.out | 1 + .../pkg_name_same_as_file/__test__.jsonc | 20 + .../pkg_name_same_as_file/file_not_exists.out | 1 + .../__test__.jsonc | 5 + .../output.out | 4 + .../package.json | 5 + .../scripts_install_no_ext/__test__.jsonc | 5 + .../install/scripts_install_no_ext/output.out | 4 + .../scripts_install_no_ext/package.json | 5 + tests/specs/lint/gitignore/.gitignore | 1 + tests/specs/lint/gitignore/__test__.jsonc | 5 + tests/specs/lint/gitignore/dist/file1.js | 3 + tests/specs/lint/gitignore/expected.out | 12 + tests/specs/lint/gitignore/file2.ts | 6 + tests/specs/lint/json/expected_json.out | 5 + .../main.out | 3 +- .../stdin_json/expected_from_stdin_json.out | 5 +- .../with_report_config_override.out | 5 +- .../__test__.jsonc | 13 + .../jsx_import_source_and_types/deno.json | 10 + .../jsx_import_source_and_types/deno.lock.out | 30 + .../jsx_import_source_and_types/index.out | 7 + .../jsx_import_source_and_types/index.tsx | 1 + tests/specs/mod.rs | 20 + .../__test__.jsonc | 29 + .../all_at_once_install.out | 4 + .../install_warn.out | 10 + .../install_warn_windows.out | 9 + .../package.json | 8 + .../run_testbin.out | 2 + tests/specs/npm/dual_cjs_esm/__test__.jsonc | 4 - .../dual_cjs_esm/cjs_referrer/__test__.jsonc | 14 + .../npm/dual_cjs_esm/cjs_referrer/check.out | 8 + .../npm/dual_cjs_esm/cjs_referrer/main.cts | 4 + .../npm/dual_cjs_esm/cjs_referrer/main.out | 4 + .../dual_cjs_esm/cjs_referrer/package.json | 5 + .../dual_cjs_esm/esm_referrer/__test__.jsonc | 4 + .../{dual_cjs_esm => esm_referrer}/main.out | 0 .../{dual_cjs_esm => esm_referrer}/main.ts | 0 .../ts_referrer_type_cjs/__test__.jsonc | 14 + .../ts_referrer_type_cjs/check.out | 8 + .../ts_referrer_type_cjs/main.out | 4 + .../dual_cjs_esm/ts_referrer_type_cjs/main.ts | 4 + .../ts_referrer_type_cjs/package.json | 6 + .../__test__.jsonc | 5 +- .../foo/config.js | 0 .../foo/package.json | 5 + .../main.out | 0 .../{permissions_outside_package => }/main.ts | 2 +- .../permissions_outside_package/package.json | 2 + .../foo/package.json | 4 - .../npm/pkg_index_ts_and_js/__test__.jsonc | 4 + tests/specs/npm/pkg_index_ts_and_js/index.js | 1 + .../node_modules/package/index.js | 3 + .../node_modules/package/json/index.js | 1 + .../node_modules/package/json/index.json} | 0 .../node_modules/package/package.json | 3 + .../node_modules/package/subdir/index.js | 1 + .../node_modules/package/subdir/index.ts | 1 + .../node_modules/package/wasm/index.js | 1 + .../node_modules/package/wasm/index.wasm | Bin 0 -> 318 bytes .../npm/pkg_index_ts_and_js/package.json | 5 + .../npm/specifier_two_slashes/__test__.jsonc | 4 + tests/specs/npm/specifier_two_slashes/main.ts | 3 + tests/specs/npm/typo_in_npm/__test__.jsonc | 5 + tests/specs/npm/typo_in_npm/main.out | 8 + .../specs/npm/workspace_basic/__test__.jsonc | 26 +- .../b/no-exports-sub-path-not-exists.out | 2 +- .../workspace_sub_deno_json/__test__.jsonc | 8 +- .../member_with_deno_json/deno.jsonc | 2 +- .../process_env_permissions/__test__.jsonc | 26 + .../process_env_permissions/main.js | 5 + tests/specs/publish/missing_exports/LICENSE | 0 .../publish/missing_exports/__test__.jsonc | 5 + tests/specs/publish/missing_exports/deno.json | 7 + tests/specs/publish/missing_exports/mod.ts | 3 + .../specs/publish/missing_exports/publish.out | 8 + .../__test__.jsonc | 25 +- .../node_modules/.deno/.deno.lock | 0 .../node_modules/.deno/.deno.lock.poll | 1 + .../node_modules/.deno/.setup-cache.bin | Bin 0 -> 24 bytes .../node_modules/add | 1 + .../node_modules/add-dep | 1 + .../set_version/multiple_packages/LICENSE | 0 .../multiple_packages/__test__.jsonc | 5 + .../set_version/multiple_packages/deno.json | 8 + .../multiple_packages/error_set_version.out | 1 + .../packages/package1/deno.json | 7 + .../packages/package1/mod.ts | 3 + .../packages/package2/deno.json | 7 + .../packages/package2/mod.ts | 3 + .../specs/publish/set_version/success/LICENSE | 0 .../set_version/success/__test__.jsonc | 4 + .../publish/set_version/success/deno.json | 10 + .../specs/publish/set_version/success/mod.ts | 7 + .../publish/set_version/success/std_http.ts | 6 + .../success/successful_set_version.out | 6 + .../allow_env_wildcard_worker/__test__.jsonc | 10 + .../run/allow_env_wildcard_worker/main.js | 12 + .../run/allow_env_wildcard_worker/main.out | 11 + .../run/allow_env_wildcard_worker/worker.js | 3 + tests/specs/run/env_file/__test__.jsonc | 20 + tests/specs/run/env_file/env | 4 + .../run => specs/run/env_file}/env_file.out | 0 .../run => specs/run/env_file}/env_file.ts | 0 .../run/env_file}/env_file_missing.out | 2 +- tests/specs/run/env_file/env_one | 2 + tests/specs/run/env_file/env_two | 1 + .../run/env_file/env_unparseable} | 0 tests/specs/run/env_file/env_unparseable.out | 4 + .../specs/run/env_file/multiple_env_file.out | 4 + .../run/env_unparsable_file/__test__.jsonc | 4 - tests/specs/run/env_unparsable_file/main.js | 3 - tests/specs/run/env_unparsable_file/main.out | 4 - .../specs/run/import_common_js/__test__.jsonc | 20 +- tests/specs/run/import_common_js/a.js | 7 - .../run/import_common_js/exports_error.out | 7 +- tests/specs/run/import_common_js/index.cjs | 2 - tests/specs/run/import_common_js/index.out | 2 +- tests/specs/run/import_common_js/main.out | 2 - .../run/import_common_js/module_error.out | 7 +- .../node_modules/foo/index.mjs | 1 - .../run/import_common_js/require_error.out | 7 +- tests/specs/run/ld_preload/env_arg.out | 4 +- tests/specs/run/ld_preload/env_arg.ts | 4 +- .../run/ld_preload/set_with_allow_env.out | 4 +- tests/specs/run/node_globals_hints/buffer.out | 3 +- .../node_globals_hints/clear_immediate.out | 3 +- tests/specs/run/node_globals_hints/global.out | 3 +- .../run/node_globals_hints/set_immediate.out | 3 +- .../npm_pkg_requires_esm_js/__test__.jsonc | 5 + .../specs/run/npm_pkg_requires_esm_js/file.js | 1 + .../npm_pkg_requires_esm_js/logs_require.js | 1 + .../specs/run/npm_pkg_requires_esm_js/main.js | 5 + .../node_modules/package/index.js | 3 + .../node_modules/package/package.json | 4 + .../run/npm_pkg_requires_esm_js/output.out | 12 + .../run/npm_pkg_requires_esm_js/package.json | 0 .../commonjs/basic/deno.jsonc | 5 - .../commonjs/basic/main_mix.out | 7 +- .../package_json_type/commonjs/jsx/deno.jsonc | 5 +- .../run/package_json_type/none/deno.jsonc | 5 - .../run/package_json_type/none/main_cjs.out | 7 +- tests/specs/run/require_esm/main.out | 11 +- tests/specs/run/stdin_type_cjs/__test__.jsonc | 5 + tests/specs/run/stdin_type_cjs/package.json | 3 + .../run/stdin_type_cjs/stdin_read_all.ts | 1 + tests/specs/run/unstable/__test__.jsonc | 5 + tests/specs/run/unstable/node_globals.out | 10 + tests/specs/run/unstable/node_globals.ts | 7 + .../unsupported_dynamic_import_scheme.out | 15 +- .../wasm_module/cjs_importing/__test__.jsonc | 12 + .../run/wasm_module/cjs_importing/main.cjs | 5 + .../run/wasm_module/cjs_importing/main.cts | 4 + .../run/wasm_module/cjs_importing/main.out | 3 + .../run/wasm_module/cjs_importing/math.wasm | Bin 0 -> 318 bytes .../wasm_module/cjs_importing/package.json | 4 + .../run/wasm_module/cjs_importing/setup.ts | 7 + .../import_file_not_found/__test__.jsonc | 5 + .../import_file_not_found/deno.jsonc | 9 + .../wasm_module/import_file_not_found/main.js | 7 + .../import_file_not_found/main.out | 3 + .../__test__.jsonc | 5 + .../import_named_export_not_found/deno.jsonc | 8 + .../local_math.ts | 7 + .../import_named_export_not_found/main.js | 7 + .../import_named_export_not_found/main.out | 3 + .../run/wasm_module/imports/__test__.jsonc | 4 + tests/specs/run/wasm_module/imports/main.js | 7 + tests/specs/run/wasm_module/imports/main.out | 4 + .../integrity_check_failed/__test__.jsonc | 5 + .../integrity_check_failed/deno.json | 2 + .../integrity_check_failed/deno.lock | 6 + .../integrity_check_failed/main.js | 4 + .../integrity_check_failed/main.out | 12 + .../map_imports_via_import_map/__test__.jsonc | 4 + .../map_imports_via_import_map/deno.json | 8 + .../map_imports_via_import_map/local_math.ts | 7 + .../map_imports_via_import_map/main.js | 7 + .../map_imports_via_import_map/main.out | 3 + .../run/wasm_module/no_imports/__test__.jsonc | 4 + .../specs/run/wasm_module/no_imports/main.out | 3 + .../specs/run/wasm_module/no_imports/main.ts | 4 + .../table_global_memory/__test__.jsonc | 13 + .../wasm_module/table_global_memory/check.out | 14 + .../wasm_module/table_global_memory/check.ts | 4 + .../wasm_module/table_global_memory/main.js | 2 + .../wasm_module/table_global_memory/main.out | 6 + .../wasm_module/table_global_memory/mod.wasm | Bin 0 -> 80 bytes .../wasm_module/table_global_memory/mod.wat | 6 + .../close_in_wasm_reactions.js | 2 +- .../worker_close_in_wasm_reactions.js | 2 +- tests/specs/schema.json | 3 + .../__test__.jsonc | 5 + .../deno_json_lifecycle_script_names/bin.out | 2 + .../deno.jsonc | 7 + .../package.json | 5 + tests/specs/task/dependencies/__test__.jsonc | 61 ++ tests/specs/task/dependencies/basic1.out | 12 + .../specs/task/dependencies/basic1/deno.json | 10 + tests/specs/task/dependencies/basic2.out | 10 + .../specs/task/dependencies/basic2/deno.json | 13 + tests/specs/task/dependencies/build1.js | 9 + tests/specs/task/dependencies/build2.js | 9 + .../specs/task/dependencies/cross_package.out | 5 + .../cross_package/package1/deno.json | 8 + .../cross_package/package2/deno.json | 5 + tests/specs/task/dependencies/cycle.out | 1 + tests/specs/task/dependencies/cycle/a.js | 1 + .../specs/task/dependencies/cycle/deno.jsonc | 8 + tests/specs/task/dependencies/cycle_2.out | 1 + tests/specs/task/dependencies/cycle_2/a.js | 1 + tests/specs/task/dependencies/cycle_2/b.js | 1 + .../task/dependencies/cycle_2/deno.jsonc | 12 + tests/specs/task/dependencies/diamond.out | 10 + tests/specs/task/dependencies/diamond/a.js | 1 + tests/specs/task/dependencies/diamond/b.js | 1 + tests/specs/task/dependencies/diamond/c.js | 1 + tests/specs/task/dependencies/diamond/d.js | 1 + .../task/dependencies/diamond/deno.jsonc | 22 + tests/specs/task/dependencies/diamond_big.out | 13 + .../specs/task/dependencies/diamond_big/a.js | 1 + .../specs/task/dependencies/diamond_big/b.js | 4 + .../specs/task/dependencies/diamond_big/c.js | 1 + .../specs/task/dependencies/diamond_big/d.js | 1 + .../task/dependencies/diamond_big/deno.jsonc | 28 + .../specs/task/dependencies/diamond_big/e.js | 1 + .../task/dependencies/diamond_big_list.out | 15 + .../specs/task/dependencies/diamond_list.out | 12 + tests/specs/task/dependencies/run.js | 1 + tests/specs/task/dependencies/util.js | 4 + .../__test__.jsonc | 5 + .../dependencies_root_not_cycle/deno.json | 10 + .../member/deno.json | 8 + .../task/dependencies_root_not_cycle/task.out | 6 + .../__test__.jsonc | 14 + .../deno.jsonc | 12 + .../member/deno.jsonc | 12 + .../member_depending_root_and_member.out | 10 + .../root_dependending_root.out | 4 + tests/specs/task/description/__test__.jsonc | 4 + tests/specs/task/description/deno.json | 8 + tests/specs/task/description/main.out | 4 + .../doc_comments_incorrect/__test__.jsonc | 5 - .../task/doc_comments_incorrect/deno.jsonc | 7 - .../task/doc_comments_incorrect/task.out | 6 - .../task/doc_comments_no_args/__test__.jsonc | 5 - .../task/doc_comments_no_args/deno.jsonc | 12 - .../specs/task/doc_comments_no_args/task.out | 9 - tests/specs/task/eval/__test__.jsonc | 35 + tests/specs/task/eval/bin.out | 3 + tests/specs/task/eval/echo_pwd.out | 2 + tests/specs/task/eval/no_arg.out | 4 + tests/specs/task/eval/package.json | 9 + tests/specs/task/eval/piped.out | 3 + tests/specs/task/filter/__test__.jsonc | 59 ++ tests/specs/task/filter/deno/bar/deno.json | 7 + tests/specs/task/filter/deno/deno.json | 6 + tests/specs/task/filter/deno/foo/deno.json | 7 + tests/specs/task/filter/deno_all.out | 4 + tests/specs/task/filter/deno_exact.out | 2 + tests/specs/task/filter/deno_multi.out | 0 tests/specs/task/filter/deno_scoped/deno.json | 3 + .../task/filter/deno_scoped/foo_bar/deno.json | 7 + .../task/filter/deno_scoped/foo_baz/deno.json | 7 + tests/specs/task/filter/deno_scoped_exact.out | 2 + tests/specs/task/filter/deno_scoped_multi.out | 4 + .../task/filter/deno_workspace_order.out | 4 + .../filter/deno_workspace_order/deno.json | 6 + .../deno_workspace_order/foo_bar/deno.json | 7 + .../deno_workspace_order/foo_baz/deno.json | 10 + tests/specs/task/filter/npm/bar/package.json | 6 + tests/specs/task/filter/npm/foo/package.json | 6 + tests/specs/task/filter/npm/package.json | 3 + tests/specs/task/filter/npm_all.out | 4 + tests/specs/task/filter/npm_exact.out | 2 + tests/specs/task/filter/npm_multi.out | 4 + .../filter/npm_multi/multi-a/package.json | 6 + .../filter/npm_multi/multi-b/package.json | 6 + .../specs/task/filter/npm_multi/package.json | 3 + .../filter/npm_scoped/foo_bar/package.json | 6 + .../filter/npm_scoped/foo_baz/package.json | 6 + .../specs/task/filter/npm_scoped/package.json | 3 + tests/specs/task/filter/npm_scoped_exact.out | 2 + tests/specs/task/filter/npm_scoped_multi.out | 4 + .../specs/task/filter/npm_workspace_order.out | 4 + .../npm_workspace_order/foo_bar/package.json | 6 + .../npm_workspace_order/foo_baz/package.json | 9 + .../filter/npm_workspace_order/package.json | 3 + .../test/doc_ts_expect_error/__test__.jsonc | 5 + tests/specs/test/doc_ts_expect_error/mod.out | 8 + tests/specs/test/doc_ts_expect_error/mod.ts | 13 + .../markdown_ts_expect_error/__test__.jsonc | 5 + .../test/markdown_ts_expect_error/main.md | 8 + .../test/markdown_ts_expect_error/main.out | 6 + tests/specs/update/deno_json/__test__.jsonc | 101 ++ tests/specs/update/deno_json/deno.json | 19 + tests/specs/update/deno_json/deno.lock | 43 + .../specs/update/deno_json/deno.lock.orig.out | 43 + .../update/deno_json/filtered/deno.json.out | 19 + .../update/deno_json/filtered/update.out | 10 + tests/specs/update/deno_json/outdated.out | 15 + .../update/deno_json/outdated_compatible.out | 7 + tests/specs/update/deno_json/print_file.ts | 2 + .../deno_json/update_compatible/deno.json.out | 19 + .../deno_json/update_compatible/deno.lock.out | 43 + .../deno_json/update_compatible/update.out | 7 + .../deno_json/update_latest/deno.json.out | 19 + .../deno_json/update_latest/deno.lock.out | 43 + .../update/deno_json/update_latest/update.out | 16 + .../update/mixed_workspace/__test__.jsonc | 153 +++ tests/specs/update/mixed_workspace/deno.json | 6 + tests/specs/update/mixed_workspace/deno.lock | 55 + .../update/mixed_workspace/deno.lock.orig.out | 55 + .../filtered/member_a_deno.json.out | 10 + .../filtered/member_b_package.json.out | 8 + .../mixed_workspace/filtered/update.out | 12 + .../update/mixed_workspace/member-a/deno.json | 10 + .../update/mixed_workspace/member-a/mod.ts | 0 .../mixed_workspace/member-b/package.json | 8 + .../update/mixed_workspace/print_file.ts | 2 + .../print_outdated/member_a.out | 9 + .../print_outdated/member_b.out | 7 + .../print_outdated/recursive.out | 15 + .../mixed_workspace/print_outdated/root.out | 5 + .../update_latest/recursive/update.out | 16 + .../update_latest/root/deno.json.out | 6 + .../update_latest/root/update.out | 3 + .../update_latest/subdir/member_a.out | 10 + .../subdir/member_a_deno.json.out | 10 + .../update_latest/subdir/member_b.out | 7 + .../subdir/member_b_package.json.out | 8 + .../specs/update/package_json/__test__.jsonc | 100 ++ tests/specs/update/package_json/deno.lock | 28 + .../update/package_json/deno.lock.orig.out | 28 + .../package_json/filtered/package.json.out | 9 + .../update/package_json/filtered/update.out | 9 + tests/specs/update/package_json/outdated.out | 9 + .../package_json/outdated_compatible.out | 5 + tests/specs/update/package_json/package.json | 9 + tests/specs/update/package_json/print_file.ts | 2 + .../update_compatible/deno.lock.out | 28 + .../update_compatible/package.json.out | 9 + .../package_json/update_compatible/update.out | 4 + .../package_json/update_latest/deno.lock.out | 28 + .../update_latest/package.json.out | 9 + .../package_json/update_latest/update.out | 14 + tests/testdata/fmt/badly_formatted.md | 12 + tests/testdata/fmt/badly_formatted.sql | 21 + tests/testdata/fmt/badly_formatted_fixed.md | 15 + tests/testdata/fmt/badly_formatted_fixed.sql | 22 + tests/testdata/run/extension_import.ts.out | 15 +- tests/testdata/run/permissions_trace.ts | 9 + .../run/warn_on_deprecated_api/main.js | 34 - .../run/warn_on_deprecated_api/main.out | 15 - .../warn_on_deprecated_api/main.verbose.out | 60 -- .../main_disabled_env.out | 15 - .../main_disabled_flag.out | 14 - .../run/warn_on_deprecated_api/mod.ts | 11 - tests/testdata/wasm/math.ts | 8 + tests/testdata/wasm/math.wasm | Bin 0 -> 318 bytes tests/testdata/wasm/math_with_import.wasm | Bin 0 -> 449 bytes .../workers/close_in_wasm_reactions.js | 2 +- tests/unit/fetch_test.ts | 27 + tests/unit/ops_test.ts | 2 +- tests/unit/stat_test.ts | 18 +- tests/unit/streams_test.ts | 15 +- tests/unit/wasm_test.ts | 4 +- tests/unit/websocket_test.ts | 18 +- tests/unit_node/_fs/_fs_readFile_test.ts | 25 +- tests/unit_node/_fs/_fs_stat_test.ts | 7 + tests/unit_node/crypto/crypto_key_test.ts | 23 + tests/unit_node/fetch_test.ts | 18 + tests/unit_node/http2_test.ts | 5 + tests/unit_node/perf_hooks_test.ts | 22 +- tests/unit_node/process_test.ts | 6 + tests/unit_node/timers_test.ts | 151 +++ tests/unit_node/zlib_test.ts | 5 + tests/util/server/src/lib.rs | 5 + tests/util/server/src/macros.rs | 1 + tests/util/server/src/npm.rs | 68 +- tests/util/server/src/servers/mod.rs | 22 +- tests/wpt/runner/expectation.json | 243 +---- tools/copyright_checker.js | 2 + tools/core_import_map.json | 1 + tools/lint.js | 4 +- 776 files changed, 16635 insertions(+), 5338 deletions(-) create mode 100644 cli/standalone/code_cache.rs create mode 100644 cli/tools/doc/prism.css create mode 100644 cli/tools/doc/prism.js create mode 100644 cli/tools/registry/pm/deps.rs create mode 100644 cli/tools/registry/pm/outdated.rs create mode 100644 ext/fetch/dns.rs create mode 100644 ext/node/ops/perf_hooks.rs create mode 100644 resolvers/deno/cjs.rs create mode 100644 runtime/js/telemetry.ts create mode 100644 runtime/ops/otel.rs rename runtime/{ops/os => }/sys_info.rs (100%) create mode 100644 tests/node_compat/package.json delete mode 100644 tests/node_compat/test/fixtures/package.json delete mode 100644 tests/node_compat/test/internet/package.json delete mode 100644 tests/node_compat/test/internet/test-dns-any.js delete mode 100644 tests/node_compat/test/internet/test-dns-ipv4.js delete mode 100644 tests/node_compat/test/internet/test-dns-ipv6.js delete mode 100644 tests/node_compat/test/internet/test-dns.js delete mode 100644 tests/node_compat/test/parallel/package.json create mode 100644 tests/node_compat/test/parallel/test-net-autoselectfamily.js delete mode 100644 tests/node_compat/test/pseudo-tty/package.json delete mode 100644 tests/node_compat/test/pummel/package.json delete mode 100644 tests/node_compat/test/sequential/package.json create mode 100644 tests/registry/jsr/@deno/otel/0.0.2/deno.json create mode 100644 tests/registry/jsr/@deno/otel/0.0.2/src/index.ts create mode 100644 tests/registry/jsr/@deno/otel/0.0.2/src/register.ts create mode 100644 tests/registry/jsr/@deno/otel/0.0.2_meta.json create mode 100644 tests/registry/jsr/@deno/otel/meta.json create mode 100644 tests/registry/jsr/@denotest/add/0.2.1/mod.ts create mode 100644 tests/registry/jsr/@denotest/add/0.2.1_meta.json create mode 100644 tests/registry/jsr/@denotest/multiple-exports/0.2.0/add.ts create mode 100644 tests/registry/jsr/@denotest/multiple-exports/0.2.0/data.json create mode 100644 tests/registry/jsr/@denotest/multiple-exports/0.2.0/subtract.ts create mode 100644 tests/registry/jsr/@denotest/multiple-exports/0.2.0_meta.json create mode 100644 tests/registry/jsr/@denotest/multiple-exports/0.5.0/add.ts create mode 100644 tests/registry/jsr/@denotest/multiple-exports/0.5.0/data.json create mode 100644 tests/registry/jsr/@denotest/multiple-exports/0.5.0/subtract.ts create mode 100644 tests/registry/jsr/@denotest/multiple-exports/0.5.0_meta.json create mode 100644 tests/registry/jsr/@denotest/subtract/0.2.0/mod.ts create mode 100644 tests/registry/jsr/@denotest/subtract/0.2.0_meta.json create mode 100644 tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/install.mjs create mode 100644 tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/package.json create mode 100644 tests/registry/npm/@denotest/has-patch-versions/0.1.0/package.json create mode 100644 tests/registry/npm/@denotest/has-patch-versions/0.1.1/package.json create mode 100644 tests/registry/npm/@denotest/has-patch-versions/0.2.0/package.json create mode 100644 tests/registry/npm/@denotest/install-launch-cjs-temp-dir/1.0.0/install.js create mode 100644 tests/registry/npm/@denotest/install-launch-cjs-temp-dir/1.0.0/package.json create mode 100644 tests/registry/npm/@denotest/install-no-ext/1.0.0/install/check.js create mode 100644 tests/registry/npm/@denotest/install-no-ext/1.0.0/install/index.js create mode 100644 tests/registry/npm/@denotest/install-no-ext/1.0.0/install/output.js create mode 100644 tests/registry/npm/@denotest/install-no-ext/1.0.0/package.json create mode 100644 tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/index.js create mode 100644 tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/other.js create mode 100644 tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/package.json create mode 100644 tests/registry/npm/@opentelemetry/api/registry.json create mode 100644 tests/registry/npm/@opentelemetry/core/registry.json create mode 100644 tests/registry/npm/@opentelemetry/resources/registry.json create mode 100644 tests/registry/npm/@opentelemetry/sdk-trace-base/registry.json create mode 100644 tests/registry/npm/@opentelemetry/semantic-conventions/registry.json create mode 100644 tests/registry/npm/cli.ts/registry.json create mode 100644 tests/specs/check/wasm/__test__.jsonc create mode 100644 tests/specs/check/wasm/check.out create mode 100644 tests/specs/check/wasm/main.ts create mode 100644 tests/specs/cli/otel_basic/__test__.jsonc create mode 100644 tests/specs/cli/otel_basic/basic.out create mode 100644 tests/specs/cli/otel_basic/basic.ts create mode 100644 tests/specs/cli/otel_basic/deno.json create mode 100644 tests/specs/cli/otel_basic/deno_dot_exit.out create mode 100644 tests/specs/cli/otel_basic/deno_dot_exit.ts create mode 100644 tests/specs/cli/otel_basic/main.ts create mode 100644 tests/specs/cli/otel_basic/natural_exit.out create mode 100644 tests/specs/cli/otel_basic/natural_exit.ts create mode 100644 tests/specs/cli/otel_basic/uncaught.out create mode 100644 tests/specs/cli/otel_basic/uncaught.ts create mode 100644 tests/specs/compile/code_cache/__test__.jsonc create mode 100644 tests/specs/compile/code_cache/first_run.out create mode 100644 tests/specs/compile/code_cache/main.ts create mode 100644 tests/specs/compile/code_cache/second_run.out delete mode 100644 tests/specs/compile/detect_cjs/deno.json create mode 100644 tests/specs/compile/include/buffered_reads/__test__.jsonc create mode 100644 tests/specs/compile/include/buffered_reads/main.ts create mode 100644 tests/specs/compile/include/buffered_reads/setup.js create mode 100644 tests/specs/compile/include/data_files/__test__.jsonc create mode 100644 tests/specs/compile/include/data_files/data-file.txt create mode 100644 tests/specs/compile/include/data_files/main.js create mode 100644 tests/specs/compile/include/data_files/non_existent.out create mode 100644 tests/specs/compile/include/data_files/output.out create mode 100644 tests/specs/compile/include/folder/__test__.jsonc create mode 100644 tests/specs/compile/include/folder/data/a.txt create mode 100644 tests/specs/compile/include/folder/data/b.txt create mode 100644 tests/specs/compile/include/folder/main.js create mode 100644 tests/specs/compile/include/folder/output.out create mode 100644 tests/specs/compile/no_code_cache/__test__.jsonc create mode 100644 tests/specs/compile/no_code_cache/main.out create mode 100644 tests/specs/compile/no_code_cache/main.ts rename tests/specs/compile/{detect_cjs => package_json_type}/__test__.jsonc (100%) rename tests/specs/compile/{detect_cjs => package_json_type}/add.js (100%) rename tests/specs/compile/{detect_cjs => package_json_type}/compile.out (100%) rename tests/specs/compile/{detect_cjs => package_json_type}/main.js (100%) rename tests/specs/compile/{detect_cjs => package_json_type}/output.out (100%) rename tests/specs/compile/{detect_cjs => package_json_type}/package.json (100%) rename tests/specs/compile/{detect_cjs => package_json_type}/subtract.ts (100%) create mode 100644 tests/specs/doc/wasm/__test__.jsonc create mode 100644 tests/specs/doc/wasm/doc.out create mode 100644 tests/specs/eval/pkg_json_type_cjs/__test__.jsonc create mode 100644 tests/specs/eval/pkg_json_type_cjs/package.json create mode 100644 tests/specs/fmt/gitignore/.gitignore create mode 100644 tests/specs/fmt/gitignore/__test__.jsonc create mode 100644 tests/specs/fmt/gitignore/dist/file1.js create mode 100644 tests/specs/fmt/gitignore/expected.out create mode 100644 tests/specs/fmt/gitignore/file2.ts create mode 100644 tests/specs/fmt/sql/__test__.jsonc create mode 100644 tests/specs/fmt/sql/badly_formatted.sql create mode 100644 tests/specs/fmt/sql/ignore_file.sql create mode 100644 tests/specs/fmt/sql/ignore_file2.sql create mode 100644 tests/specs/fmt/sql/ignore_file3.sql create mode 100644 tests/specs/fmt/sql/ignore_file4.sql create mode 100644 tests/specs/fmt/sql/well_formatted.sql create mode 100644 tests/specs/fmt/sql/wrong_file_ignore.sql create mode 100644 tests/specs/info/wasm_module/__test__.jsonc create mode 100644 tests/specs/info/wasm_module/main.js create mode 100644 tests/specs/info/wasm_module/main.out create mode 100644 tests/specs/init/npm/__test__.jsonc create mode 100644 tests/specs/init/npm/init.out create mode 100644 tests/specs/install/global/pkg_name_same_as_file/__test__.jsonc create mode 100644 tests/specs/install/global/pkg_name_same_as_file/file_not_exists.out create mode 100644 tests/specs/install/scripts_install_launch_cjs_temp_dir/__test__.jsonc create mode 100644 tests/specs/install/scripts_install_launch_cjs_temp_dir/output.out create mode 100644 tests/specs/install/scripts_install_launch_cjs_temp_dir/package.json create mode 100644 tests/specs/install/scripts_install_no_ext/__test__.jsonc create mode 100644 tests/specs/install/scripts_install_no_ext/output.out create mode 100644 tests/specs/install/scripts_install_no_ext/package.json create mode 100644 tests/specs/lint/gitignore/.gitignore create mode 100644 tests/specs/lint/gitignore/__test__.jsonc create mode 100644 tests/specs/lint/gitignore/dist/file1.js create mode 100644 tests/specs/lint/gitignore/expected.out create mode 100644 tests/specs/lint/gitignore/file2.ts create mode 100644 tests/specs/lockfile/jsx_import_source_and_types/__test__.jsonc create mode 100644 tests/specs/lockfile/jsx_import_source_and_types/deno.json create mode 100644 tests/specs/lockfile/jsx_import_source_and_types/deno.lock.out create mode 100644 tests/specs/lockfile/jsx_import_source_and_types/index.out create mode 100644 tests/specs/lockfile/jsx_import_source_and_types/index.tsx create mode 100644 tests/specs/npm/bin_entry_created_by_lifecycle/__test__.jsonc create mode 100644 tests/specs/npm/bin_entry_created_by_lifecycle/all_at_once_install.out create mode 100644 tests/specs/npm/bin_entry_created_by_lifecycle/install_warn.out create mode 100644 tests/specs/npm/bin_entry_created_by_lifecycle/install_warn_windows.out create mode 100644 tests/specs/npm/bin_entry_created_by_lifecycle/package.json create mode 100644 tests/specs/npm/bin_entry_created_by_lifecycle/run_testbin.out delete mode 100644 tests/specs/npm/dual_cjs_esm/__test__.jsonc create mode 100644 tests/specs/npm/dual_cjs_esm/cjs_referrer/__test__.jsonc create mode 100644 tests/specs/npm/dual_cjs_esm/cjs_referrer/check.out create mode 100644 tests/specs/npm/dual_cjs_esm/cjs_referrer/main.cts create mode 100644 tests/specs/npm/dual_cjs_esm/cjs_referrer/main.out create mode 100644 tests/specs/npm/dual_cjs_esm/cjs_referrer/package.json create mode 100644 tests/specs/npm/dual_cjs_esm/esm_referrer/__test__.jsonc rename tests/specs/npm/dual_cjs_esm/{dual_cjs_esm => esm_referrer}/main.out (100%) rename tests/specs/npm/dual_cjs_esm/{dual_cjs_esm => esm_referrer}/main.ts (100%) create mode 100644 tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/__test__.jsonc create mode 100644 tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/check.out create mode 100644 tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/main.out create mode 100644 tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/main.ts create mode 100644 tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/package.json rename tests/specs/npm/permissions_outside_package/{permissions_outside_package => }/foo/config.js (100%) create mode 100644 tests/specs/npm/permissions_outside_package/foo/package.json rename tests/specs/npm/permissions_outside_package/{permissions_outside_package => }/main.out (100%) rename tests/specs/npm/permissions_outside_package/{permissions_outside_package => }/main.ts (64%) create mode 100644 tests/specs/npm/permissions_outside_package/package.json delete mode 100644 tests/specs/npm/permissions_outside_package/permissions_outside_package/foo/package.json create mode 100644 tests/specs/npm/pkg_index_ts_and_js/__test__.jsonc create mode 100644 tests/specs/npm/pkg_index_ts_and_js/index.js create mode 100644 tests/specs/npm/pkg_index_ts_and_js/node_modules/package/index.js create mode 100644 tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.js rename tests/{node_compat/test/common/package.json => specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.json} (100%) create mode 100644 tests/specs/npm/pkg_index_ts_and_js/node_modules/package/package.json create mode 100644 tests/specs/npm/pkg_index_ts_and_js/node_modules/package/subdir/index.js create mode 100644 tests/specs/npm/pkg_index_ts_and_js/node_modules/package/subdir/index.ts create mode 100644 tests/specs/npm/pkg_index_ts_and_js/node_modules/package/wasm/index.js create mode 100644 tests/specs/npm/pkg_index_ts_and_js/node_modules/package/wasm/index.wasm create mode 100644 tests/specs/npm/pkg_index_ts_and_js/package.json create mode 100644 tests/specs/npm/specifier_two_slashes/__test__.jsonc create mode 100644 tests/specs/npm/specifier_two_slashes/main.ts create mode 100644 tests/specs/npm/typo_in_npm/__test__.jsonc create mode 100644 tests/specs/npm/typo_in_npm/main.out create mode 100644 tests/specs/permission/process_env_permissions/__test__.jsonc create mode 100644 tests/specs/permission/process_env_permissions/main.js create mode 100644 tests/specs/publish/missing_exports/LICENSE create mode 100644 tests/specs/publish/missing_exports/__test__.jsonc create mode 100644 tests/specs/publish/missing_exports/deno.json create mode 100644 tests/specs/publish/missing_exports/mod.ts create mode 100644 tests/specs/publish/missing_exports/publish.out create mode 100644 tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.deno.lock create mode 100644 tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.deno.lock.poll create mode 100644 tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.setup-cache.bin create mode 120000 tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/add create mode 120000 tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/add-dep create mode 100644 tests/specs/publish/set_version/multiple_packages/LICENSE create mode 100644 tests/specs/publish/set_version/multiple_packages/__test__.jsonc create mode 100644 tests/specs/publish/set_version/multiple_packages/deno.json create mode 100644 tests/specs/publish/set_version/multiple_packages/error_set_version.out create mode 100644 tests/specs/publish/set_version/multiple_packages/packages/package1/deno.json create mode 100644 tests/specs/publish/set_version/multiple_packages/packages/package1/mod.ts create mode 100644 tests/specs/publish/set_version/multiple_packages/packages/package2/deno.json create mode 100644 tests/specs/publish/set_version/multiple_packages/packages/package2/mod.ts create mode 100644 tests/specs/publish/set_version/success/LICENSE create mode 100644 tests/specs/publish/set_version/success/__test__.jsonc create mode 100644 tests/specs/publish/set_version/success/deno.json create mode 100644 tests/specs/publish/set_version/success/mod.ts create mode 100644 tests/specs/publish/set_version/success/std_http.ts create mode 100644 tests/specs/publish/set_version/success/successful_set_version.out create mode 100644 tests/specs/run/allow_env_wildcard_worker/__test__.jsonc create mode 100644 tests/specs/run/allow_env_wildcard_worker/main.js create mode 100644 tests/specs/run/allow_env_wildcard_worker/main.out create mode 100644 tests/specs/run/allow_env_wildcard_worker/worker.js create mode 100644 tests/specs/run/env_file/__test__.jsonc create mode 100644 tests/specs/run/env_file/env rename tests/{testdata/run => specs/run/env_file}/env_file.out (100%) rename tests/{testdata/run => specs/run/env_file}/env_file.ts (100%) rename tests/{testdata/run => specs/run/env_file}/env_file_missing.out (71%) create mode 100644 tests/specs/run/env_file/env_one create mode 100644 tests/specs/run/env_file/env_two rename tests/{testdata/env_unparsable => specs/run/env_file/env_unparseable} (100%) create mode 100644 tests/specs/run/env_file/env_unparseable.out create mode 100644 tests/specs/run/env_file/multiple_env_file.out delete mode 100644 tests/specs/run/env_unparsable_file/__test__.jsonc delete mode 100644 tests/specs/run/env_unparsable_file/main.js delete mode 100644 tests/specs/run/env_unparsable_file/main.out delete mode 100644 tests/specs/run/import_common_js/a.js create mode 100644 tests/specs/run/npm_pkg_requires_esm_js/__test__.jsonc create mode 100644 tests/specs/run/npm_pkg_requires_esm_js/file.js create mode 100644 tests/specs/run/npm_pkg_requires_esm_js/logs_require.js create mode 100644 tests/specs/run/npm_pkg_requires_esm_js/main.js create mode 100644 tests/specs/run/npm_pkg_requires_esm_js/node_modules/package/index.js create mode 100644 tests/specs/run/npm_pkg_requires_esm_js/node_modules/package/package.json create mode 100644 tests/specs/run/npm_pkg_requires_esm_js/output.out create mode 100644 tests/specs/run/npm_pkg_requires_esm_js/package.json delete mode 100644 tests/specs/run/package_json_type/commonjs/basic/deno.jsonc delete mode 100644 tests/specs/run/package_json_type/none/deno.jsonc create mode 100644 tests/specs/run/stdin_type_cjs/__test__.jsonc create mode 100644 tests/specs/run/stdin_type_cjs/package.json create mode 100644 tests/specs/run/stdin_type_cjs/stdin_read_all.ts create mode 100644 tests/specs/run/unstable/node_globals.out create mode 100644 tests/specs/run/unstable/node_globals.ts create mode 100644 tests/specs/run/wasm_module/cjs_importing/__test__.jsonc create mode 100644 tests/specs/run/wasm_module/cjs_importing/main.cjs create mode 100644 tests/specs/run/wasm_module/cjs_importing/main.cts create mode 100644 tests/specs/run/wasm_module/cjs_importing/main.out create mode 100644 tests/specs/run/wasm_module/cjs_importing/math.wasm create mode 100644 tests/specs/run/wasm_module/cjs_importing/package.json create mode 100644 tests/specs/run/wasm_module/cjs_importing/setup.ts create mode 100644 tests/specs/run/wasm_module/import_file_not_found/__test__.jsonc create mode 100644 tests/specs/run/wasm_module/import_file_not_found/deno.jsonc create mode 100644 tests/specs/run/wasm_module/import_file_not_found/main.js create mode 100644 tests/specs/run/wasm_module/import_file_not_found/main.out create mode 100644 tests/specs/run/wasm_module/import_named_export_not_found/__test__.jsonc create mode 100644 tests/specs/run/wasm_module/import_named_export_not_found/deno.jsonc create mode 100644 tests/specs/run/wasm_module/import_named_export_not_found/local_math.ts create mode 100644 tests/specs/run/wasm_module/import_named_export_not_found/main.js create mode 100644 tests/specs/run/wasm_module/import_named_export_not_found/main.out create mode 100644 tests/specs/run/wasm_module/imports/__test__.jsonc create mode 100644 tests/specs/run/wasm_module/imports/main.js create mode 100644 tests/specs/run/wasm_module/imports/main.out create mode 100644 tests/specs/run/wasm_module/integrity_check_failed/__test__.jsonc create mode 100644 tests/specs/run/wasm_module/integrity_check_failed/deno.json create mode 100644 tests/specs/run/wasm_module/integrity_check_failed/deno.lock create mode 100644 tests/specs/run/wasm_module/integrity_check_failed/main.js create mode 100644 tests/specs/run/wasm_module/integrity_check_failed/main.out create mode 100644 tests/specs/run/wasm_module/map_imports_via_import_map/__test__.jsonc create mode 100644 tests/specs/run/wasm_module/map_imports_via_import_map/deno.json create mode 100644 tests/specs/run/wasm_module/map_imports_via_import_map/local_math.ts create mode 100644 tests/specs/run/wasm_module/map_imports_via_import_map/main.js create mode 100644 tests/specs/run/wasm_module/map_imports_via_import_map/main.out create mode 100644 tests/specs/run/wasm_module/no_imports/__test__.jsonc create mode 100644 tests/specs/run/wasm_module/no_imports/main.out create mode 100644 tests/specs/run/wasm_module/no_imports/main.ts create mode 100644 tests/specs/run/wasm_module/table_global_memory/__test__.jsonc create mode 100644 tests/specs/run/wasm_module/table_global_memory/check.out create mode 100644 tests/specs/run/wasm_module/table_global_memory/check.ts create mode 100644 tests/specs/run/wasm_module/table_global_memory/main.js create mode 100644 tests/specs/run/wasm_module/table_global_memory/main.out create mode 100644 tests/specs/run/wasm_module/table_global_memory/mod.wasm create mode 100644 tests/specs/run/wasm_module/table_global_memory/mod.wat create mode 100644 tests/specs/task/deno_json_lifecycle_script_names/__test__.jsonc create mode 100644 tests/specs/task/deno_json_lifecycle_script_names/bin.out create mode 100644 tests/specs/task/deno_json_lifecycle_script_names/deno.jsonc create mode 100644 tests/specs/task/deno_json_lifecycle_script_names/package.json create mode 100644 tests/specs/task/dependencies/__test__.jsonc create mode 100644 tests/specs/task/dependencies/basic1.out create mode 100644 tests/specs/task/dependencies/basic1/deno.json create mode 100644 tests/specs/task/dependencies/basic2.out create mode 100644 tests/specs/task/dependencies/basic2/deno.json create mode 100644 tests/specs/task/dependencies/build1.js create mode 100644 tests/specs/task/dependencies/build2.js create mode 100644 tests/specs/task/dependencies/cross_package.out create mode 100644 tests/specs/task/dependencies/cross_package/package1/deno.json create mode 100644 tests/specs/task/dependencies/cross_package/package2/deno.json create mode 100644 tests/specs/task/dependencies/cycle.out create mode 100644 tests/specs/task/dependencies/cycle/a.js create mode 100644 tests/specs/task/dependencies/cycle/deno.jsonc create mode 100644 tests/specs/task/dependencies/cycle_2.out create mode 100644 tests/specs/task/dependencies/cycle_2/a.js create mode 100644 tests/specs/task/dependencies/cycle_2/b.js create mode 100644 tests/specs/task/dependencies/cycle_2/deno.jsonc create mode 100644 tests/specs/task/dependencies/diamond.out create mode 100644 tests/specs/task/dependencies/diamond/a.js create mode 100644 tests/specs/task/dependencies/diamond/b.js create mode 100644 tests/specs/task/dependencies/diamond/c.js create mode 100644 tests/specs/task/dependencies/diamond/d.js create mode 100644 tests/specs/task/dependencies/diamond/deno.jsonc create mode 100644 tests/specs/task/dependencies/diamond_big.out create mode 100644 tests/specs/task/dependencies/diamond_big/a.js create mode 100644 tests/specs/task/dependencies/diamond_big/b.js create mode 100644 tests/specs/task/dependencies/diamond_big/c.js create mode 100644 tests/specs/task/dependencies/diamond_big/d.js create mode 100644 tests/specs/task/dependencies/diamond_big/deno.jsonc create mode 100644 tests/specs/task/dependencies/diamond_big/e.js create mode 100644 tests/specs/task/dependencies/diamond_big_list.out create mode 100644 tests/specs/task/dependencies/diamond_list.out create mode 100644 tests/specs/task/dependencies/run.js create mode 100644 tests/specs/task/dependencies/util.js create mode 100644 tests/specs/task/dependencies_root_not_cycle/__test__.jsonc create mode 100644 tests/specs/task/dependencies_root_not_cycle/deno.json create mode 100644 tests/specs/task/dependencies_root_not_cycle/member/deno.json create mode 100644 tests/specs/task/dependencies_root_not_cycle/task.out create mode 100644 tests/specs/task/dependencies_shadowed_root_name/__test__.jsonc create mode 100644 tests/specs/task/dependencies_shadowed_root_name/deno.jsonc create mode 100644 tests/specs/task/dependencies_shadowed_root_name/member/deno.jsonc create mode 100644 tests/specs/task/dependencies_shadowed_root_name/member_depending_root_and_member.out create mode 100644 tests/specs/task/dependencies_shadowed_root_name/root_dependending_root.out create mode 100644 tests/specs/task/description/__test__.jsonc create mode 100644 tests/specs/task/description/deno.json create mode 100644 tests/specs/task/description/main.out delete mode 100644 tests/specs/task/doc_comments_incorrect/__test__.jsonc delete mode 100644 tests/specs/task/doc_comments_incorrect/deno.jsonc delete mode 100644 tests/specs/task/doc_comments_incorrect/task.out delete mode 100644 tests/specs/task/doc_comments_no_args/__test__.jsonc delete mode 100644 tests/specs/task/doc_comments_no_args/deno.jsonc delete mode 100644 tests/specs/task/doc_comments_no_args/task.out create mode 100644 tests/specs/task/eval/__test__.jsonc create mode 100644 tests/specs/task/eval/bin.out create mode 100644 tests/specs/task/eval/echo_pwd.out create mode 100644 tests/specs/task/eval/no_arg.out create mode 100644 tests/specs/task/eval/package.json create mode 100644 tests/specs/task/eval/piped.out create mode 100644 tests/specs/task/filter/__test__.jsonc create mode 100644 tests/specs/task/filter/deno/bar/deno.json create mode 100644 tests/specs/task/filter/deno/deno.json create mode 100644 tests/specs/task/filter/deno/foo/deno.json create mode 100644 tests/specs/task/filter/deno_all.out create mode 100644 tests/specs/task/filter/deno_exact.out create mode 100644 tests/specs/task/filter/deno_multi.out create mode 100644 tests/specs/task/filter/deno_scoped/deno.json create mode 100644 tests/specs/task/filter/deno_scoped/foo_bar/deno.json create mode 100644 tests/specs/task/filter/deno_scoped/foo_baz/deno.json create mode 100644 tests/specs/task/filter/deno_scoped_exact.out create mode 100644 tests/specs/task/filter/deno_scoped_multi.out create mode 100644 tests/specs/task/filter/deno_workspace_order.out create mode 100644 tests/specs/task/filter/deno_workspace_order/deno.json create mode 100644 tests/specs/task/filter/deno_workspace_order/foo_bar/deno.json create mode 100644 tests/specs/task/filter/deno_workspace_order/foo_baz/deno.json create mode 100644 tests/specs/task/filter/npm/bar/package.json create mode 100644 tests/specs/task/filter/npm/foo/package.json create mode 100644 tests/specs/task/filter/npm/package.json create mode 100644 tests/specs/task/filter/npm_all.out create mode 100644 tests/specs/task/filter/npm_exact.out create mode 100644 tests/specs/task/filter/npm_multi.out create mode 100644 tests/specs/task/filter/npm_multi/multi-a/package.json create mode 100644 tests/specs/task/filter/npm_multi/multi-b/package.json create mode 100644 tests/specs/task/filter/npm_multi/package.json create mode 100644 tests/specs/task/filter/npm_scoped/foo_bar/package.json create mode 100644 tests/specs/task/filter/npm_scoped/foo_baz/package.json create mode 100644 tests/specs/task/filter/npm_scoped/package.json create mode 100644 tests/specs/task/filter/npm_scoped_exact.out create mode 100644 tests/specs/task/filter/npm_scoped_multi.out create mode 100644 tests/specs/task/filter/npm_workspace_order.out create mode 100644 tests/specs/task/filter/npm_workspace_order/foo_bar/package.json create mode 100644 tests/specs/task/filter/npm_workspace_order/foo_baz/package.json create mode 100644 tests/specs/task/filter/npm_workspace_order/package.json create mode 100644 tests/specs/test/doc_ts_expect_error/__test__.jsonc create mode 100644 tests/specs/test/doc_ts_expect_error/mod.out create mode 100644 tests/specs/test/doc_ts_expect_error/mod.ts create mode 100644 tests/specs/test/markdown_ts_expect_error/__test__.jsonc create mode 100644 tests/specs/test/markdown_ts_expect_error/main.md create mode 100644 tests/specs/test/markdown_ts_expect_error/main.out create mode 100644 tests/specs/update/deno_json/__test__.jsonc create mode 100644 tests/specs/update/deno_json/deno.json create mode 100644 tests/specs/update/deno_json/deno.lock create mode 100644 tests/specs/update/deno_json/deno.lock.orig.out create mode 100644 tests/specs/update/deno_json/filtered/deno.json.out create mode 100644 tests/specs/update/deno_json/filtered/update.out create mode 100644 tests/specs/update/deno_json/outdated.out create mode 100644 tests/specs/update/deno_json/outdated_compatible.out create mode 100644 tests/specs/update/deno_json/print_file.ts create mode 100644 tests/specs/update/deno_json/update_compatible/deno.json.out create mode 100644 tests/specs/update/deno_json/update_compatible/deno.lock.out create mode 100644 tests/specs/update/deno_json/update_compatible/update.out create mode 100644 tests/specs/update/deno_json/update_latest/deno.json.out create mode 100644 tests/specs/update/deno_json/update_latest/deno.lock.out create mode 100644 tests/specs/update/deno_json/update_latest/update.out create mode 100644 tests/specs/update/mixed_workspace/__test__.jsonc create mode 100644 tests/specs/update/mixed_workspace/deno.json create mode 100644 tests/specs/update/mixed_workspace/deno.lock create mode 100644 tests/specs/update/mixed_workspace/deno.lock.orig.out create mode 100644 tests/specs/update/mixed_workspace/filtered/member_a_deno.json.out create mode 100644 tests/specs/update/mixed_workspace/filtered/member_b_package.json.out create mode 100644 tests/specs/update/mixed_workspace/filtered/update.out create mode 100644 tests/specs/update/mixed_workspace/member-a/deno.json create mode 100644 tests/specs/update/mixed_workspace/member-a/mod.ts create mode 100644 tests/specs/update/mixed_workspace/member-b/package.json create mode 100644 tests/specs/update/mixed_workspace/print_file.ts create mode 100644 tests/specs/update/mixed_workspace/print_outdated/member_a.out create mode 100644 tests/specs/update/mixed_workspace/print_outdated/member_b.out create mode 100644 tests/specs/update/mixed_workspace/print_outdated/recursive.out create mode 100644 tests/specs/update/mixed_workspace/print_outdated/root.out create mode 100644 tests/specs/update/mixed_workspace/update_latest/recursive/update.out create mode 100644 tests/specs/update/mixed_workspace/update_latest/root/deno.json.out create mode 100644 tests/specs/update/mixed_workspace/update_latest/root/update.out create mode 100644 tests/specs/update/mixed_workspace/update_latest/subdir/member_a.out create mode 100644 tests/specs/update/mixed_workspace/update_latest/subdir/member_a_deno.json.out create mode 100644 tests/specs/update/mixed_workspace/update_latest/subdir/member_b.out create mode 100644 tests/specs/update/mixed_workspace/update_latest/subdir/member_b_package.json.out create mode 100644 tests/specs/update/package_json/__test__.jsonc create mode 100644 tests/specs/update/package_json/deno.lock create mode 100644 tests/specs/update/package_json/deno.lock.orig.out create mode 100644 tests/specs/update/package_json/filtered/package.json.out create mode 100644 tests/specs/update/package_json/filtered/update.out create mode 100644 tests/specs/update/package_json/outdated.out create mode 100644 tests/specs/update/package_json/outdated_compatible.out create mode 100644 tests/specs/update/package_json/package.json create mode 100644 tests/specs/update/package_json/print_file.ts create mode 100644 tests/specs/update/package_json/update_compatible/deno.lock.out create mode 100644 tests/specs/update/package_json/update_compatible/package.json.out create mode 100644 tests/specs/update/package_json/update_compatible/update.out create mode 100644 tests/specs/update/package_json/update_latest/deno.lock.out create mode 100644 tests/specs/update/package_json/update_latest/package.json.out create mode 100644 tests/specs/update/package_json/update_latest/update.out create mode 100644 tests/testdata/fmt/badly_formatted.sql create mode 100644 tests/testdata/fmt/badly_formatted_fixed.sql create mode 100644 tests/testdata/run/permissions_trace.ts delete mode 100644 tests/testdata/run/warn_on_deprecated_api/main.js delete mode 100644 tests/testdata/run/warn_on_deprecated_api/main.out delete mode 100644 tests/testdata/run/warn_on_deprecated_api/main.verbose.out delete mode 100644 tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out delete mode 100644 tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out delete mode 100644 tests/testdata/run/warn_on_deprecated_api/mod.ts create mode 100644 tests/testdata/wasm/math.ts create mode 100644 tests/testdata/wasm/math.wasm create mode 100644 tests/testdata/wasm/math_with_import.wasm create mode 100644 tests/unit_node/fetch_test.ts diff --git a/.dprint.json b/.dprint.json index 3b2376f786cb34..b9c2d1ebc14313 100644 --- a/.dprint.json +++ b/.dprint.json @@ -31,6 +31,8 @@ "cli/tsc/dts/lib.scripthost.d.ts", "cli/tsc/dts/lib.webworker*.d.ts", "cli/tsc/dts/typescript.d.ts", + "cli/tools/doc/prism.css", + "cli/tools/doc/prism.js", "ext/websocket/autobahn/reports", "gh-pages", "target", diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts index 5ed02d3cdece84..53a0f46e504ab9 100755 --- a/.github/workflows/ci.generate.ts +++ b/.github/workflows/ci.generate.ts @@ -5,7 +5,7 @@ import { stringify } from "jsr:@std/yaml@^0.221/stringify"; // Bump this number when you want to purge the cache. // Note: the tools/release/01_bump_crate_versions.ts script will update this version // automatically via regex, so ensure that this line maintains this format. -const cacheVersion = 25; +const cacheVersion = 27; const ubuntuX86Runner = "ubuntu-24.04"; const ubuntuX86XlRunner = "ubuntu-24.04-xl"; diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39a3afe76907c9..ee8527bcef3019 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -361,8 +361,8 @@ jobs: path: |- ~/.cargo/registry/index ~/.cargo/registry/cache - key: '25-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles(''Cargo.lock'') }}' - restore-keys: '25-cargo-home-${{ matrix.os }}-${{ matrix.arch }}' + key: '27-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles(''Cargo.lock'') }}' + restore-keys: '27-cargo-home-${{ matrix.os }}-${{ matrix.arch }}' if: '!(matrix.skip)' - name: Restore cache build output (PR) uses: actions/cache/restore@v4 @@ -375,7 +375,7 @@ jobs: !./target/*/*.zip !./target/*/*.tar.gz key: never_saved - restore-keys: '25-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-' + restore-keys: '27-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-' - name: Apply and update mtime cache if: '!(matrix.skip) && (!startsWith(github.ref, ''refs/tags/''))' uses: ./.github/mtime_cache @@ -685,7 +685,7 @@ jobs: !./target/*/*.zip !./target/*/*.sha256sum !./target/*/*.tar.gz - key: '25-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-${{ github.sha }}' + key: '27-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-${{ github.sha }}' publish-canary: name: publish canary runs-on: ubuntu-24.04 diff --git a/Cargo.lock b/Cargo.lock index 6e929168f5313a..71c4affa7e1a13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -244,7 +244,7 @@ dependencies = [ "nom 7.1.3", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.64", "time", ] @@ -504,7 +504,7 @@ dependencies = [ "bitflags 2.6.0", "cexpr", "clang-sys", - "itertools 0.13.0", + "itertools 0.10.5", "log", "prettyplease", "proc-macro2", @@ -1119,7 +1119,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b28bfe653d79bd16c77f659305b195b82bb5ce0c0eb2a4846b82ddbd77586813" dependencies = [ "bitflags 2.6.0", - "libloading 0.8.5", + "libloading 0.7.4", "winapi", ] @@ -1298,7 +1298,7 @@ dependencies = [ "test_server", "text-size", "text_lines", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-util", "tracing", @@ -1364,7 +1364,7 @@ dependencies = [ "swc_visit", "swc_visit_macros", "text_lines", - "thiserror", + "thiserror 1.0.64", "unicode-width", "url", ] @@ -1384,7 +1384,8 @@ version = "0.173.0" dependencies = [ "async-trait", "deno_core", - "thiserror", + "deno_error", + "thiserror 1.0.64", "tokio", "uuid", ] @@ -1395,10 +1396,11 @@ version = "0.111.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "rusqlite", "serde", "sha2", - "thiserror", + "thiserror 1.0.64", "tokio", ] @@ -1418,7 +1420,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "thiserror", + "thiserror 1.0.64", "url", ] @@ -1427,10 +1429,11 @@ name = "deno_canvas" version = "0.48.0" dependencies = [ "deno_core", + "deno_error", "deno_webgpu", "image", "serde", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -1453,7 +1456,7 @@ dependencies = [ "phf", "serde", "serde_json", - "thiserror", + "thiserror 1.0.64", "url", ] @@ -1467,8 +1470,6 @@ dependencies = [ [[package]] name = "deno_core" version = "0.322.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f593ef2b8acab8cd3ace9d50052edc65a3654fdbde808070cfa5da5cf7aaae6" dependencies = [ "anyhow", "bincode", @@ -1477,6 +1478,7 @@ dependencies = [ "bytes", "cooked-waker", "deno_core_icudata", + "deno_error", "deno_ops", "deno_unsync", "futures", @@ -1492,10 +1494,11 @@ dependencies = [ "smallvec", "sourcemap 8.0.1", "static_assertions", + "thiserror 2.0.3", "tokio", "url", "v8", - "wasm_dep_analyzer", + "wasm_dep_analyzer 0.2.0", ] [[package]] @@ -1512,8 +1515,9 @@ dependencies = [ "async-trait", "chrono", "deno_core", + "deno_error", "saffron", - "thiserror", + "thiserror 1.0.64", "tokio", ] @@ -1530,6 +1534,7 @@ dependencies = [ "ctr", "curve25519-dalek", "deno_core", + "deno_error", "deno_web", "ed448-goldilocks", "elliptic-curve", @@ -1548,7 +1553,7 @@ dependencies = [ "sha2", "signature", "spki", - "thiserror", + "thiserror 1.0.64", "tokio", "uuid", "x25519-dalek", @@ -1585,6 +1590,27 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "deno_error" +version = "0.5.1" +dependencies = [ + "deno_error_macro", + "libc", + "serde", + "serde_json", + "tokio", + "url", +] + +[[package]] +name = "deno_error_macro" +version = "0.5.1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "deno_fetch" version = "0.203.0" @@ -1593,6 +1619,7 @@ dependencies = [ "bytes", "data-url", "deno_core", + "deno_error", "deno_permissions", "deno_tls", "dyn-clone", @@ -1609,7 +1636,7 @@ dependencies = [ "rustls-webpki", "serde", "serde_json", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-rustls", "tokio-socks", @@ -1624,6 +1651,7 @@ name = "deno_ffi" version = "0.166.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "dlopen2", "dynasmrt", @@ -1634,7 +1662,7 @@ dependencies = [ "serde", "serde-value", "serde_json", - "thiserror", + "thiserror 1.0.64", "tokio", "winapi", ] @@ -1657,7 +1685,7 @@ dependencies = [ "rand", "rayon", "serde", - "thiserror", + "thiserror 1.0.64", "winapi", "windows-sys 0.52.0", ] @@ -1686,10 +1714,10 @@ dependencies = [ "serde", "serde_json", "sha2", - "thiserror", + "thiserror 1.0.64", "twox-hash", "url", - "wasm_dep_analyzer", + "wasm_dep_analyzer 0.1.0", ] [[package]] @@ -1726,7 +1754,7 @@ dependencies = [ "scopeguard", "serde", "smallvec", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-util", ] @@ -1737,6 +1765,7 @@ version = "0.89.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "filetime", "fs3", "libc", @@ -1780,7 +1809,7 @@ dependencies = [ "rand", "rusqlite", "serde", - "thiserror", + "thiserror 1.0.64", "url", ] @@ -1811,7 +1840,7 @@ dependencies = [ "deno_semver", "serde", "serde_json", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -1830,13 +1859,14 @@ name = "deno_napi" version = "0.110.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "libc", "libloading 0.7.4", "libuv-sys-lite", "log", "napi_sym", - "thiserror", + "thiserror 1.0.64", "windows-sys 0.52.0", ] @@ -1858,6 +1888,7 @@ name = "deno_net" version = "0.171.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "deno_tls", "hickory-proto", @@ -1866,7 +1897,7 @@ dependencies = [ "rustls-tokio-stream", "serde", "socket2", - "thiserror", + "thiserror 1.0.64", "tokio", ] @@ -1950,7 +1981,7 @@ dependencies = [ "sm3", "spki", "stable_deref_trait", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-eld", "url", @@ -1977,15 +2008,13 @@ dependencies = [ "monch", "serde", "serde_json", - "thiserror", + "thiserror 1.0.64", "url", ] [[package]] name = "deno_ops" version = "0.198.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870826735cd9aa0376d2aadca14365b753e830e3cc16891efb9232845a6982a4" dependencies = [ "proc-macro-rules", "proc-macro2", @@ -1994,7 +2023,7 @@ dependencies = [ "strum", "strum_macros", "syn 2.0.87", - "thiserror", + "thiserror 2.0.3", ] [[package]] @@ -2007,7 +2036,7 @@ dependencies = [ "indexmap 2.3.0", "serde", "serde_json", - "thiserror", + "thiserror 1.0.64", "url", ] @@ -2018,7 +2047,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff25f6e08e7a0214bbacdd6f7195c7f1ebcd850c87a624e4ff06326b68b42d99" dependencies = [ "percent-encoding", - "thiserror", + "thiserror 1.0.64", "url", ] @@ -2027,6 +2056,7 @@ name = "deno_permissions" version = "0.39.0" dependencies = [ "deno_core", + "deno_error", "deno_path_util", "deno_terminal 0.2.0", "fqdn", @@ -2035,7 +2065,7 @@ dependencies = [ "once_cell", "percent-encoding", "serde", - "thiserror", + "thiserror 1.0.64", "which 4.4.2", "winapi", ] @@ -2055,7 +2085,7 @@ dependencies = [ "deno_semver", "node_resolver", "test_server", - "thiserror", + "thiserror 1.0.64", "url", ] @@ -2124,7 +2154,7 @@ dependencies = [ "signal-hook-registry", "tempfile", "test_server", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-metrics", "twox-hash", @@ -2143,7 +2173,7 @@ dependencies = [ "monch", "once_cell", "serde", - "thiserror", + "thiserror 1.0.64", "url", ] @@ -2171,7 +2201,7 @@ dependencies = [ "monch", "os_pipe", "path-dedot", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-util", ] @@ -2201,13 +2231,14 @@ name = "deno_tls" version = "0.166.0" dependencies = [ "deno_core", + "deno_error", "deno_native_certs", "rustls", "rustls-pemfile", "rustls-tokio-stream", "rustls-webpki", "serde", - "thiserror", + "thiserror 1.0.64", "tokio", "webpki-roots", ] @@ -2252,8 +2283,9 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_webidl", - "thiserror", + "thiserror 1.0.64", "urlpattern", ] @@ -2267,6 +2299,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_permissions", "deno_url", "deno_webidl", @@ -2274,7 +2307,7 @@ dependencies = [ "flate2", "futures", "serde", - "thiserror", + "thiserror 1.0.64", "tokio", "uuid", ] @@ -2284,9 +2317,10 @@ name = "deno_webgpu" version = "0.146.0" dependencies = [ "deno_core", + "deno_error", "raw-window-handle", "serde", - "thiserror", + "thiserror 1.0.64", "tokio", "wgpu-core", "wgpu-types", @@ -2306,6 +2340,7 @@ version = "0.184.0" dependencies = [ "bytes", "deno_core", + "deno_error", "deno_net", "deno_permissions", "deno_tls", @@ -2318,7 +2353,7 @@ dependencies = [ "once_cell", "rustls-tokio-stream", "serde", - "thiserror", + "thiserror 1.0.64", "tokio", ] @@ -2327,9 +2362,10 @@ name = "deno_webstorage" version = "0.174.0" dependencies = [ "deno_core", + "deno_error", "deno_web", "rusqlite", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -2401,7 +2437,7 @@ dependencies = [ "rand", "rusqlite", "serde_json", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-stream", "uuid", @@ -2842,7 +2878,7 @@ dependencies = [ "debug-ignore", "indexmap 2.3.0", "log", - "thiserror", + "thiserror 1.0.64", "zerocopy", ] @@ -3002,7 +3038,7 @@ dependencies = [ "anyhow", "async-trait", "log", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-stream", ] @@ -3037,7 +3073,7 @@ dependencies = [ "rand", "sha1", "simdutf8", - "thiserror", + "thiserror 1.0.64", "tokio", "utf-8", ] @@ -3095,7 +3131,7 @@ dependencies = [ "deno_terminal 0.1.1", "parking_lot", "regex", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -3579,7 +3615,7 @@ dependencies = [ "pest_derive", "serde", "serde_json", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -3665,7 +3701,7 @@ dependencies = [ "once_cell", "radix_trie", "rand", - "thiserror", + "thiserror 1.0.64", "tokio", "tracing", ] @@ -3688,7 +3724,7 @@ dependencies = [ "once_cell", "rand", "serde", - "thiserror", + "thiserror 1.0.64", "tinyvec", "tokio", "tracing", @@ -3712,7 +3748,7 @@ dependencies = [ "resolv-conf", "serde", "smallvec", - "thiserror", + "thiserror 1.0.64", "tokio", "tracing", ] @@ -3730,7 +3766,7 @@ dependencies = [ "futures-util", "hickory-proto", "serde", - "thiserror", + "thiserror 1.0.64", "time", "tokio", "tokio-util", @@ -4184,7 +4220,7 @@ dependencies = [ "percent-encoding", "serde", "serde_json", - "thiserror", + "thiserror 1.0.64", "url", ] @@ -4390,7 +4426,7 @@ dependencies = [ "anyhow", "serde", "serde_json", - "thiserror", + "thiserror 1.0.64", "uuid", ] @@ -4866,7 +4902,7 @@ dependencies = [ "serde", "spirv", "termcolor", - "thiserror", + "thiserror 1.0.64", "unicode-xid", ] @@ -4956,7 +4992,7 @@ dependencies = [ "path-clean", "regex", "serde_json", - "thiserror", + "thiserror 1.0.64", "tokio", "url", ] @@ -5153,7 +5189,7 @@ dependencies = [ "js-sys", "once_cell", "pin-project-lite", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -5183,7 +5219,7 @@ dependencies = [ "opentelemetry_sdk", "prost", "serde_json", - "thiserror", + "thiserror 1.0.64", "tokio", "tonic", "tracing", @@ -5225,7 +5261,7 @@ dependencies = [ "percent-encoding", "rand", "serde_json", - "thiserror", + "thiserror 1.0.64", "tracing", ] @@ -5409,7 +5445,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.64", "ucd-trie", ] @@ -5767,7 +5803,7 @@ checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ "bytes", "heck 0.5.0", - "itertools 0.13.0", + "itertools 0.10.5", "log", "multimap", "once_cell", @@ -5787,7 +5823,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.10.5", "proc-macro2", "quote", "syn 2.0.87", @@ -5858,7 +5894,7 @@ dependencies = [ "indexmap 2.3.0", "quick-xml", "strip-ansi-escapes", - "thiserror", + "thiserror 1.0.64", "uuid", ] @@ -5883,7 +5919,7 @@ dependencies = [ "quinn-udp", "rustc-hash 1.1.0", "rustls", - "thiserror", + "thiserror 1.0.64", "tokio", "tracing", ] @@ -5900,7 +5936,7 @@ dependencies = [ "rustc-hash 2.0.0", "rustls", "slab", - "thiserror", + "thiserror 1.0.64", "tinyvec", "tracing", ] @@ -6049,7 +6085,7 @@ checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -6667,13 +6703,12 @@ dependencies = [ [[package]] name = "serde_v8" version = "0.231.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a0c48b8842ebae21c52da1d978fba5c2be5991680bddfdc1a36ee0ccbc60114" dependencies = [ + "deno_error", "num-bigint", "serde", "smallvec", - "thiserror", + "thiserror 2.0.3", "v8", ] @@ -7701,7 +7736,16 @@ version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.64", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] @@ -7715,6 +7759,17 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "thousands" version = "0.2.0" @@ -7867,7 +7922,7 @@ checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0" dependencies = [ "either", "futures-util", - "thiserror", + "thiserror 1.0.64", "tokio", ] @@ -8284,7 +8339,7 @@ dependencies = [ "indexmap 2.3.0", "num-bigint", "serde", - "thiserror", + "thiserror 1.0.64", "wtf8", ] @@ -8456,7 +8511,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f270206a91783fd90625c8bb0d8fbd459d0b1d1bf209b656f713f01ae7c04b8" dependencies = [ - "thiserror", + "thiserror 1.0.64", +] + +[[package]] +name = "wasm_dep_analyzer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eeee3bdea6257cc36d756fa745a70f9d393571e47d69e0ed97581676a5369ca" +dependencies = [ + "deno_error", + "thiserror 2.0.3", ] [[package]] @@ -8510,7 +8575,7 @@ dependencies = [ "rustc-hash 1.1.0", "serde", "smallvec", - "thiserror", + "thiserror 1.0.64", "web-sys", "wgpu-hal", "wgpu-types", @@ -8538,7 +8603,7 @@ dependencies = [ "js-sys", "khronos-egl", "libc", - "libloading 0.8.5", + "libloading 0.7.4", "log", "metal", "naga", @@ -8551,7 +8616,7 @@ dependencies = [ "raw-window-handle", "rustc-hash 1.1.0", "smallvec", - "thiserror", + "thiserror 1.0.64", "wasm-bindgen", "web-sys", "wgpu-types", @@ -8617,7 +8682,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b2b1bf557d947847a30eb73f79aa6cdb3eaf3ce02f5e9599438f77896a62b3c" dependencies = [ - "thiserror", + "thiserror 1.0.64", "windows", ] @@ -8899,7 +8964,7 @@ dependencies = [ "nom 7.1.3", "oid-registry", "rusticata-macros", - "thiserror", + "thiserror 1.0.64", "time", ] @@ -9043,7 +9108,7 @@ dependencies = [ "parking_lot", "rand", "regex", - "thiserror", + "thiserror 1.0.64", "tokio", "tokio-util", "uuid", @@ -9084,7 +9149,7 @@ dependencies = [ "flate2", "indexmap 2.3.0", "memchr", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -9115,3 +9180,7 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "v8" +version = "0.89.0" diff --git a/Cargo.toml b/Cargo.toml index c96600af2a938c..0e744300a49bd1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,6 +50,7 @@ deno_core = { version = "0.322.0" } deno_bench_util = { version = "0.173.0", path = "./bench_util" } deno_config = { version = "=0.39.2", features = ["workspace", "sync"] } +deno_error = { version = "=0.5.1" } deno_lockfile = "=0.23.1" deno_media_type = { version = "0.2.0", features = ["module_specifier"] } deno_npm = "=0.25.4" @@ -338,7 +339,6 @@ opt-level = 3 [patch.crates-io] deno_core = { path = "../deno_core/core" } deno_ops = { path = "../deno_core/ops" } -deno_js_error = { path = "../deno_core/js_error" } serde_v8 = { path = "../deno_core/serde_v8" } v8 = { path = "../rusty_v8" } - +deno_error = { path = "../deno_error" } diff --git a/Releases.md b/Releases.md index 5ce25815bdb54d..0e977d0311bc0b 100644 --- a/Releases.md +++ b/Releases.md @@ -6,6 +6,86 @@ https://github.com/denoland/deno/releases We also have one-line install commands at: https://github.com/denoland/deno_install +### 2.1.1 / 2024.11.21 + +- docs(add): clarification to add command (#26968) +- docs(doc): fix typo in doc subcommand help output (#26321) +- fix(node): regression where ts files were sometimes resolved instead of js + (#26971) +- fix(task): ensure root config always looks up dependencies in root (#26959) +- fix(watch): don't panic if there's no path provided (#26972) +- fix: Buffer global in --unstable-node-globals (#26973) + +### 2.1.0 / 2024.11.21 + +- feat(cli): add `--unstable-node-globals` flag (#26617) +- feat(cli): support multiple env file argument (#26527) +- feat(compile): ability to embed directory in executable (#26939) +- feat(compile): ability to embed local data files (#26934) +- feat(ext/fetch): Make fetch client parameters configurable (#26909) +- feat(ext/fetch): allow embedders to use `hickory_dns_resolver` instead of + default `GaiResolver` (#26740) +- feat(ext/fs): add ctime to Deno.stats and use it in node compat layer (#24801) +- feat(ext/http): Make http server parameters configurable (#26785) +- feat(ext/node): perf_hooks.monitorEventLoopDelay() (#26905) +- feat(fetch): accept async iterables for body (#26882) +- feat(fmt): support SQL (#26750) +- feat(info): show location for Web Cache (#26205) +- feat(init): add --npm flag to initialize npm projects (#26896) +- feat(jupyter): Add `Deno.jupyter.image` API (#26284) +- feat(lint): Add checked files list to the JSON output(#26936) +- feat(lsp): auto-imports with @deno-types directives (#26821) +- feat(node): stabilize detecting if CJS via `"type": "commonjs"` in a + package.json (#26439) +- feat(permission): support suffix wildcards in `--allow-env` flag (#25255) +- feat(publish): add `--set-version ` flag (#26141) +- feat(runtime): remove public OTEL trace API (#26854) +- feat(task): add --eval flag (#26943) +- feat(task): dependencies (#26467) +- feat(task): support object notation, remove support for JSDocs (#26886) +- feat(task): workspace support with --filter and --recursive (#26949) +- feat(watch): log which file changed on HMR or watch change (#25801) +- feat: OpenTelemetry Tracing API and Exporting (#26710) +- feat: Wasm module support (#26668) +- feat: fmt and lint respect .gitignore file (#26897) +- feat: permission stack traces in ops (#26938) +- feat: subcommand to view and update outdated dependencies (#26942) +- feat: upgrade V8 to 13.0 (#26851) +- fix(cli): preserve comments in doc tests (#26828) +- fix(cli): show prefix hint when installing a package globally (#26629) +- fix(ext/cache): gracefully error when cache creation failed (#26895) +- fix(ext/http): prefer brotli for `accept-encoding: gzip, deflate, br, zstd` + (#26814) +- fix(ext/node): New async setInterval function to improve the nodejs + compatibility (#26703) +- fix(ext/node): add autoSelectFamily option to net.createConnection (#26661) +- fix(ext/node): handle `--allow-sys=inspector` (#26836) +- fix(ext/node): increase tolerance for interval test (#26899) +- fix(ext/node): process.getBuiltinModule (#26833) +- fix(ext/node): use ERR_NOT_IMPLEMENTED for notImplemented (#26853) +- fix(ext/node): zlib.crc32() (#26856) +- fix(ext/webgpu): Create GPUQuerySet converter before usage (#26883) +- fix(ext/websocket): initialize `error` attribute of WebSocket ErrorEvent + (#26796) +- fix(ext/webstorage): use error class for sqlite error case (#26806) +- fix(fmt): error instead of panic on unstable format (#26859) +- fix(fmt): formatting of .svelte files (#26948) +- fix(install): percent encodings in interactive progress bar (#26600) +- fix(install): re-setup bin entries after running lifecycle scripts (#26752) +- fix(lockfile): track dependencies specified in TypeScript compiler options + (#26551) +- fix(lsp): ignore editor indent settings if deno.json is present (#26912) +- fix(lsp): skip code action edits that can't be converted (#26831) +- fix(node): handle resolving ".//" in npm packages (#26920) +- fix(node/crypto): support promisify on generateKeyPair (#26913) +- fix(permissions): say to use --allow-run instead of --allow-all (#26842) +- fix(publish): improve error message when missing exports (#26945) +- fix: otel resiliency (#26857) +- fix: update message for unsupported schemes with npm and jsr (#26884) +- perf(compile): code cache (#26528) +- perf(windows): delay load webgpu and some other dlls (#26917) +- perf: use available system memory for v8 isolate memory limit (#26868) + ### 2.0.6 / 2024.11.10 - feat(ext/http): abort event when request is cancelled (#26781) diff --git a/bench_util/Cargo.toml b/bench_util/Cargo.toml index d6eefc3a5d8c9e..4d39ae30e4b61b 100644 --- a/bench_util/Cargo.toml +++ b/bench_util/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_bench_util" -version = "0.171.0" +version = "0.173.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/cli/Cargo.toml b/cli/Cargo.toml index e98e0ac0012369..6a1fc51bc45d8d 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno" -version = "2.0.6" +version = "2.1.1" authors.workspace = true default-run = "deno" edition.workspace = true @@ -69,11 +69,11 @@ winres.workspace = true [dependencies] deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit"] } -deno_cache_dir = { workspace = true } -deno_config = { version = "=0.38.2", features = ["workspace", "sync"] } +deno_cache_dir.workspace = true +deno_config.workspace = true deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } -deno_doc = { version = "0.156.0", default-features = false, features = ["rust", "html", "syntect"] } -deno_graph = { version = "=0.84.1" } +deno_doc = { version = "0.160.0", features = ["rust", "comrak"] } +deno_graph = { version = "=0.85.0" } deno_lint = { version = "=0.68.0", features = ["docs"] } deno_lockfile.workspace = true deno_npm.workspace = true @@ -122,14 +122,14 @@ hyper-util.workspace = true import_map = { version = "=0.20.1", features = ["ext"] } indexmap.workspace = true jsonc-parser = { workspace = true, features = ["cst", "serde"] } -jupyter_runtime = { package = "runtimelib", version = "=0.14.0" } +jupyter_runtime = { package = "runtimelib", version = "=0.19.0", features = ["tokio-runtime"] } lazy-regex.workspace = true libc.workspace = true libz-sys.workspace = true log = { workspace = true, features = ["serde"] } lsp-types.workspace = true malva = "=0.11.0" -markup_fmt = "=0.15.0" +markup_fmt = "=0.16.0" memmem.workspace = true monch.workspace = true notify.workspace = true @@ -151,6 +151,8 @@ serde_repr.workspace = true sha2.workspace = true shell-escape = "=0.1.5" spki = { version = "0.7", features = ["pem"] } +# NOTE(bartlomieju): using temporary fork for now, revert back to `sqlformat-rs` later +sqlformat = { package = "deno_sqlformat", version = "0.3.2" } strsim = "0.11.1" tar.workspace = true tempfile.workspace = true diff --git a/cli/args/deno_json.rs b/cli/args/deno_json.rs index e9ab0189f506b8..a82289e67d3875 100644 --- a/cli/args/deno_json.rs +++ b/cli/args/deno_json.rs @@ -70,7 +70,41 @@ pub fn deno_json_deps( let values = imports_values(config.json.imports.as_ref()) .into_iter() .chain(scope_values(config.json.scopes.as_ref())); - values_to_set(values) + let mut set = values_to_set(values); + + if let Some(serde_json::Value::Object(compiler_options)) = + &config.json.compiler_options + { + // add jsxImportSource + if let Some(serde_json::Value::String(value)) = + compiler_options.get("jsxImportSource") + { + if let Some(dep_req) = value_to_dep_req(value) { + set.insert(dep_req); + } + } + // add jsxImportSourceTypes + if let Some(serde_json::Value::String(value)) = + compiler_options.get("jsxImportSourceTypes") + { + if let Some(dep_req) = value_to_dep_req(value) { + set.insert(dep_req); + } + } + // add the dependencies in the types array + if let Some(serde_json::Value::Array(types)) = compiler_options.get("types") + { + for value in types { + if let serde_json::Value::String(value) = value { + if let Some(dep_req) = value_to_dep_req(value) { + set.insert(dep_req); + } + } + } + } + } + + set } fn imports_values(value: Option<&serde_json::Value>) -> Vec<&String> { @@ -98,15 +132,23 @@ fn values_to_set<'a>( ) -> HashSet { let mut entries = HashSet::new(); for value in values { - if let Ok(req_ref) = JsrPackageReqReference::from_str(value) { - entries.insert(JsrDepPackageReq::jsr(req_ref.into_inner().req)); - } else if let Ok(req_ref) = NpmPackageReqReference::from_str(value) { - entries.insert(JsrDepPackageReq::npm(req_ref.into_inner().req)); + if let Some(dep_req) = value_to_dep_req(value) { + entries.insert(dep_req); } } entries } +fn value_to_dep_req(value: &str) -> Option { + if let Ok(req_ref) = JsrPackageReqReference::from_str(value) { + Some(JsrDepPackageReq::jsr(req_ref.into_inner().req)) + } else if let Ok(req_ref) = NpmPackageReqReference::from_str(value) { + Some(JsrDepPackageReq::npm(req_ref.into_inner().req)) + } else { + None + } +} + pub fn check_warn_tsconfig(ts_config: &TsConfigForEmit) { if let Some(ignored_options) = &ts_config.maybe_ignored_options { log::warn!("{}", ignored_options); diff --git a/cli/args/flags.rs b/cli/args/flags.rs index eb77971748a335..5e89f88a91af52 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -36,6 +36,7 @@ use deno_path_util::normalize_path; use deno_path_util::url_to_file_path; use deno_runtime::deno_permissions::PermissionsOptions; use deno_runtime::deno_permissions::SysDescriptor; +use deno_runtime::ops::otel::OtelConfig; use log::debug; use log::Level; use serde::Deserialize; @@ -209,6 +210,7 @@ pub struct FmtFlags { pub no_semicolons: Option, pub watch: Option, pub unstable_component: bool, + pub unstable_sql: bool, } impl FmtFlags { @@ -220,6 +222,8 @@ impl FmtFlags { #[derive(Clone, Debug, Eq, PartialEq)] pub struct InitFlags { + pub package: Option, + pub package_args: Vec, pub dir: Option, pub lib: bool, pub serve: bool, @@ -378,6 +382,9 @@ pub struct TaskFlags { pub cwd: Option, pub task: Option, pub is_run: bool, + pub recursive: bool, + pub filter: Option, + pub eval: bool, } #[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] @@ -426,6 +433,7 @@ pub struct PublishFlags { pub allow_slow_types: bool, pub allow_dirty: bool, pub no_provenance: bool, + pub set_version: Option, } #[derive(Clone, Debug, Eq, PartialEq)] @@ -461,6 +469,7 @@ pub enum DenoSubcommand { Serve(ServeFlags), Task(TaskFlags), Test(TestFlags), + Outdated(OutdatedFlags), Types, Upgrade(UpgradeFlags), Vendor, @@ -468,6 +477,19 @@ pub enum DenoSubcommand { Help(HelpFlags), } +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum OutdatedKind { + Update { latest: bool }, + PrintOutdated { compatible: bool }, +} + +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct OutdatedFlags { + pub filters: Vec, + pub recursive: bool, + pub kind: OutdatedKind, +} + impl DenoSubcommand { pub fn is_run(&self) -> bool { matches!(self, Self::Run(_)) @@ -576,7 +598,6 @@ pub struct UnstableConfig { // TODO(bartlomieju): remove in Deno 2.5 pub legacy_flag_enabled: bool, // --unstable pub bare_node_builtins: bool, - pub detect_cjs: bool, pub sloppy_imports: bool, pub features: Vec, // --unstabe-kv --unstable-cron } @@ -613,7 +634,7 @@ pub struct Flags { pub internal: InternalFlags, pub ignore: Vec, pub import_map_path: Option, - pub env_file: Option, + pub env_file: Option>, pub inspect_brk: Option, pub inspect_wait: Option, pub inspect: Option, @@ -968,6 +989,24 @@ impl Flags { args } + pub fn otel_config(&self) -> Option { + if self + .unstable_config + .features + .contains(&String::from("otel")) + { + Some(OtelConfig { + runtime_name: Cow::Borrowed("deno"), + runtime_version: Cow::Borrowed(crate::version::DENO_VERSION_INFO.deno), + deterministic: std::env::var("DENO_UNSTABLE_OTEL_DETERMINISTIC") + .is_ok(), + ..Default::default() + }) + } else { + None + } + } + /// Extract the paths the config file should be discovered from. /// /// Returns `None` if the config file should not be auto-discovered. @@ -1139,25 +1178,26 @@ static ENV_VARIABLES_HELP: &str = cstr!( Docs: https://docs.deno.com/go/env-vars DENO_AUTH_TOKENS A semi-colon separated list of bearer tokens and hostnames - to use when fetching remote modules from private repositories - (e.g. "abcde12345@deno.land;54321edcba@github.com") - DENO_CERT Load certificate authorities from PEM encoded file - DENO_DIR Set the cache directory - DENO_INSTALL_ROOT Set deno install's output directory - (defaults to $HOME/.deno/bin) - DENO_NO_PACKAGE_JSON Disables auto-resolution of package.json - DENO_NO_UPDATE_CHECK Set to disable checking if a newer Deno version is available - DENO_TLS_CA_STORE Comma-separated list of order dependent certificate stores. - Possible values: "system", "mozilla". - (defaults to "mozilla") - HTTP_PROXY Proxy address for HTTP requests - (module downloads, fetch) - HTTPS_PROXY Proxy address for HTTPS requests - (module downloads, fetch) - NO_COLOR Set to disable color - NO_PROXY Comma-separated list of hosts which do not use a proxy - (module downloads, fetch) - NPM_CONFIG_REGISTRY URL to use for the npm registry."# + to use when fetching remote modules from private repositories + (e.g. "abcde12345@deno.land;54321edcba@github.com") + DENO_CERT Load certificate authorities from PEM encoded file + DENO_DIR Set the cache directory + DENO_INSTALL_ROOT Set deno install's output directory + (defaults to $HOME/.deno/bin) + DENO_NO_PACKAGE_JSON Disables auto-resolution of package.json + DENO_NO_UPDATE_CHECK Set to disable checking if a newer Deno version is available + DENO_TLS_CA_STORE Comma-separated list of order dependent certificate stores. + DENO_TRACE_PERMISSIONS Environmental variable to enable stack traces in permission prompts. + Possible values: "system", "mozilla". + (defaults to "mozilla") + HTTP_PROXY Proxy address for HTTP requests + (module downloads, fetch) + HTTPS_PROXY Proxy address for HTTPS requests + (module downloads, fetch) + NO_COLOR Set to disable color + NO_PROXY Comma-separated list of hosts which do not use a proxy + (module downloads, fetch) + NPM_CONFIG_REGISTRY URL to use for the npm registry."# ); static DENO_HELP: &str = cstr!( @@ -1181,6 +1221,7 @@ static DENO_HELP: &str = cstr!( deno add jsr:@std/assert | deno add npm:express install Installs dependencies either in the local project or globally to a bin directory uninstall Uninstalls a dependency or an executable script in the installation root's bin directory + outdated Find and update outdated dependencies remove Remove dependencies from the configuration file Tooling: @@ -1191,7 +1232,7 @@ static DENO_HELP: &str = cstr!( compile Compile the script into a self contained executable deno compile main.ts | deno compile --target=x86_64-unknown-linux-gnu coverage Print coverage reports - doc Genereate and show documentation for a module or built-ins + doc Generate and show documentation for a module or built-ins deno doc | deno doc --json | deno doc --html mod.ts fmt Format source files deno fmt | deno fmt main.ts @@ -1356,23 +1397,24 @@ pub fn flags_from_vec(args: Vec) -> clap::error::Result { "doc" => doc_parse(&mut flags, &mut m)?, "eval" => eval_parse(&mut flags, &mut m)?, "fmt" => fmt_parse(&mut flags, &mut m)?, - "init" => init_parse(&mut flags, &mut m), + "init" => init_parse(&mut flags, &mut m)?, "info" => info_parse(&mut flags, &mut m)?, "install" => install_parse(&mut flags, &mut m)?, "json_reference" => json_reference_parse(&mut flags, &mut m, app), "jupyter" => jupyter_parse(&mut flags, &mut m), "lint" => lint_parse(&mut flags, &mut m)?, "lsp" => lsp_parse(&mut flags, &mut m), + "outdated" => outdated_parse(&mut flags, &mut m)?, "repl" => repl_parse(&mut flags, &mut m)?, "run" => run_parse(&mut flags, &mut m, app, false)?, "serve" => serve_parse(&mut flags, &mut m, app)?, - "task" => task_parse(&mut flags, &mut m), + "task" => task_parse(&mut flags, &mut m, app)?, "test" => test_parse(&mut flags, &mut m)?, "types" => types_parse(&mut flags, &mut m), "uninstall" => uninstall_parse(&mut flags, &mut m), "upgrade" => upgrade_parse(&mut flags, &mut m), "vendor" => vendor_parse(&mut flags, &mut m), - "publish" => publish_parse(&mut flags, &mut m), + "publish" => publish_parse(&mut flags, &mut m)?, _ => unreachable!(), } } else { @@ -1605,6 +1647,7 @@ pub fn clap_root() -> Command { .subcommand(json_reference_subcommand()) .subcommand(jupyter_subcommand()) .subcommand(uninstall_subcommand()) + .subcommand(outdated_subcommand()) .subcommand(lsp_subcommand()) .subcommand(lint_subcommand()) .subcommand(publish_subcommand()) @@ -1661,8 +1704,11 @@ fn add_subcommand() -> Command { "Add dependencies to your configuration file. deno add jsr:@std/path -You can add multiple dependencies at once: - deno add jsr:@std/path jsr:@std/assert" +You can also add npm packages: + deno add npm:react + +Or multiple dependencies at once: + deno add jsr:@std/path jsr:@std/assert npm:chalk" ), UnstableArgsConfig::None, ) @@ -1890,10 +1936,10 @@ On the first invocation with deno will download the proper binary and cache it i Arg::new("include") .long("include") .help( - cstr!("Includes an additional module in the compiled executable's module graph. + cstr!("Includes an additional module or file/directory in the compiled executable. Use this flag if a dynamically imported module or a web worker main module - fails to load in the executable. This flag can be passed multiple times, - to include multiple additional modules.", + fails to load in the executable or to embed a file or directory in the executable. + This flag can be passed multiple times, to include multiple additional modules.", )) .action(ArgAction::Append) .value_hint(ValueHint::FilePath) @@ -1921,6 +1967,7 @@ On the first invocation with deno will download the proper binary and cache it i ]) .help_heading(COMPILE_HEADING), ) + .arg(no_code_cache_arg()) .arg( Arg::new("no-terminal") .long("no-terminal") @@ -2272,7 +2319,7 @@ Ignore formatting a file by adding an ignore comment at the top of the file: .value_parser([ "ts", "tsx", "js", "jsx", "md", "json", "jsonc", "css", "scss", "sass", "less", "html", "svelte", "vue", "astro", "yml", "yaml", - "ipynb", + "ipynb", "sql" ]) .help_heading(FMT_HEADING).requires("files"), ) @@ -2391,6 +2438,14 @@ Ignore formatting a file by adding an ignore comment at the top of the file: .help_heading(FMT_HEADING) .hide(true), ) + .arg( + Arg::new("unstable-sql") + .long("unstable-sql") + .help("Enable formatting SQL files.") + .value_parser(FalseyValueParser::new()) + .action(ArgAction::SetTrue) + .help_heading(FMT_HEADING), + ) }) } @@ -2398,7 +2453,19 @@ fn init_subcommand() -> Command { command("init", "scaffolds a basic Deno project with a script, test, and configuration file", UnstableArgsConfig::None).defer( |cmd| { cmd - .arg(Arg::new("dir").value_hint(ValueHint::DirPath)) + .arg(Arg::new("args") + .num_args(0..) + .action(ArgAction::Append) + .value_name("DIRECTORY OR PACKAGE") + .trailing_var_arg(true) + ) + .arg( + Arg::new("npm") + .long("npm") + .help("Generate a npm create-* project") + .conflicts_with_all(["lib", "serve"]) + .action(ArgAction::SetTrue), + ) .arg( Arg::new("lib") .long("lib") @@ -2586,6 +2653,83 @@ fn jupyter_subcommand() -> Command { .conflicts_with("install")) } +fn outdated_subcommand() -> Command { + command( + "outdated", + cstr!("Find and update outdated dependencies. +By default, outdated dependencies are only displayed. + +Display outdated dependencies: + deno outdated + deno outdated --compatible + +Update dependencies: + deno outdated --update + deno outdated --update --latest + deno outdated --update + +Filters can be used to select which packages to act on. Filters can include wildcards (*) to match multiple packages. + deno outdated --update --latest \"@std/*\" + deno outdated --update --latest \"react*\" +Note that filters act on their aliases configured in deno.json / package.json, not the actual package names: + Given \"foobar\": \"npm:react@17.0.0\" in deno.json or package.json, the filter \"foobar\" would update npm:react to + the latest version. + deno outdated --update --latest foobar +Filters can be combined, and negative filters can be used to exclude results: + deno outdated --update --latest \"@std/*\" \"!@std/fmt*\" + +Specific version requirements to update to can be specified: + deno outdated --update @std/fmt@^1.0.2 +"), + UnstableArgsConfig::None, + ) + .defer(|cmd| { + cmd + .arg( + Arg::new("filters") + .num_args(0..) + .action(ArgAction::Append) + .help(concat!("Filters selecting which packages to act on. Can include wildcards (*) to match multiple packages. ", + "If a version requirement is specified, the matching packages will be updated to the given requirement."), + ) + ) + .arg(no_lock_arg()) + .arg(lock_arg()) + .arg( + Arg::new("latest") + .long("latest") + .action(ArgAction::SetTrue) + .help( + "Update to the latest version, regardless of semver constraints", + ) + .requires("update") + .conflicts_with("compatible"), + ) + .arg( + Arg::new("update") + .long("update") + .short('u') + .action(ArgAction::SetTrue) + .conflicts_with("compatible") + .help("Update dependency versions"), + ) + .arg( + Arg::new("compatible") + .long("compatible") + .action(ArgAction::SetTrue) + .help("Only output versions that satisfy semver requirements") + .conflicts_with("update"), + ) + .arg( + Arg::new("recursive") + .long("recursive") + .short('r') + .action(ArgAction::SetTrue) + .help("include all workspace members"), + ) + }) +} + fn uninstall_subcommand() -> Command { command( "uninstall", @@ -2902,7 +3046,10 @@ fn task_subcommand() -> Command { deno task build List all available tasks: - deno task" + deno task + +Evaluate a task from string + deno task --eval \"echo $(pwd)\"" ), UnstableArgsConfig::ResolutionAndRuntime, ) @@ -2918,6 +3065,27 @@ List all available tasks: .help("Specify the directory to run the task in") .value_hint(ValueHint::DirPath), ) + .arg( + Arg::new("recursive") + .long("recursive") + .short('r') + .help("Run the task in all projects in the workspace") + .action(ArgAction::SetTrue), + ) + .arg( + Arg::new("filter") + .long("filter") + .short('f') + .help("Filter members of the workspace by name, implies --recursive flag") + .value_parser(value_parser!(String)), + ) + .arg( + Arg::new("eval") + .long("eval") + .help( + "Evaluate the passed value as if it was a task in a configuration file", + ).action(ArgAction::SetTrue) + ) .arg(node_modules_dir_arg()) }) } @@ -3197,12 +3365,12 @@ fn publish_subcommand() -> Command { command("publish", "Publish the current working directory's package or workspace to JSR", UnstableArgsConfig::ResolutionOnly) .defer(|cmd| { cmd - .arg( - Arg::new("token") - .long("token") - .help("The API token to use when publishing. If unset, interactive authentication is be used") - .help_heading(PUBLISH_HEADING) - ) + .arg( + Arg::new("token") + .long("token") + .help("The API token to use when publishing. If unset, interactive authentication is be used") + .help_heading(PUBLISH_HEADING) + ) .arg(config_arg()) .arg(no_config_arg()) .arg( @@ -3210,29 +3378,38 @@ fn publish_subcommand() -> Command { .long("dry-run") .help("Prepare the package for publishing performing all checks and validations without uploading") .action(ArgAction::SetTrue) - .help_heading(PUBLISH_HEADING), + .help_heading(PUBLISH_HEADING), ) .arg( Arg::new("allow-slow-types") .long("allow-slow-types") .help("Allow publishing with slow types") .action(ArgAction::SetTrue) - .help_heading(PUBLISH_HEADING), + .help_heading(PUBLISH_HEADING), ) .arg( Arg::new("allow-dirty") .long("allow-dirty") .help("Allow publishing if the repository has uncommitted changed") .action(ArgAction::SetTrue) - .help_heading(PUBLISH_HEADING), - ).arg( - Arg::new("no-provenance") - .long("no-provenance") - .help(cstr!("Disable provenance attestation. + .help_heading(PUBLISH_HEADING), + ) + .arg( + Arg::new("no-provenance") + .long("no-provenance") + .help(cstr!("Disable provenance attestation. Enabled by default on Github actions, publicly links the package to where it was built and published from.")) - .action(ArgAction::SetTrue) - .help_heading(PUBLISH_HEADING) - ) + .action(ArgAction::SetTrue) + .help_heading(PUBLISH_HEADING) + ) + .arg( + Arg::new("set-version") + .long("set-version") + .help("Set version for a package to be published. + This flag can be used while publishing individual packages and cannot be used in a workspace.") + .value_name("VERSION") + .help_heading(PUBLISH_HEADING) + ) .arg(check_arg(/* type checks by default */ true)) .arg(no_check_arg()) }) @@ -3297,6 +3474,8 @@ fn permission_args(app: Command, requires: Option<&'static str>) -> Command { --deny-run | --deny-run="whoami,ps" --deny-ffi[=<...] (Unstable) Deny loading dynamic libraries. Optionally specify denied directories or files. --deny-ffi | --deny-ffi="./libfoo.so" + DENO_TRACE_PERMISSIONS Environmental variable to enable stack traces in permission prompts. + DENO_TRACE_PERMISSIONS=1 deno run main.ts "#)) .arg( { @@ -3757,12 +3936,14 @@ fn env_file_arg() -> Arg { .help(cstr!( "Load environment variables from local file Only the first environment variable with a given key is used. - Existing process environment variables are not overwritten." + Existing process environment variables are not overwritten, so if variables with the same names already exist in the environment, their values will be preserved. + Where multiple declarations for the same environment variable exist in your .env file, the first one encountered is applied. This is determined by the order of the files you pass as arguments." )) .value_hint(ValueHint::FilePath) .default_missing_value(".env") .require_equals(true) .num_args(0..=1) + .action(ArgAction::Append) } fn reload_arg() -> Arg { @@ -4299,6 +4480,31 @@ fn remove_parse(flags: &mut Flags, matches: &mut ArgMatches) { }); } +fn outdated_parse( + flags: &mut Flags, + matches: &mut ArgMatches, +) -> clap::error::Result<()> { + let filters = match matches.remove_many::("filters") { + Some(f) => f.collect(), + None => vec![], + }; + let recursive = matches.get_flag("recursive"); + let update = matches.get_flag("update"); + let kind = if update { + let latest = matches.get_flag("latest"); + OutdatedKind::Update { latest } + } else { + let compatible = matches.get_flag("compatible"); + OutdatedKind::PrintOutdated { compatible } + }; + flags.subcommand = DenoSubcommand::Outdated(OutdatedFlags { + filters, + recursive, + kind, + }); + Ok(()) +} + fn bench_parse( flags: &mut Flags, matches: &mut ArgMatches, @@ -4411,6 +4617,8 @@ fn compile_parse( }; ext_arg_parse(flags, matches); + flags.code_cache_enabled = !matches.get_flag("no-code-cache"); + flags.subcommand = DenoSubcommand::Compile(CompileFlags { source_file, output, @@ -4611,6 +4819,7 @@ fn fmt_parse( let prose_wrap = matches.remove_one::("prose-wrap"); let no_semicolons = matches.remove_one::("no-semicolons"); let unstable_component = matches.get_flag("unstable-component"); + let unstable_sql = matches.get_flag("unstable-sql"); flags.subcommand = DenoSubcommand::Fmt(FmtFlags { check: matches.get_flag("check"), @@ -4623,16 +4832,49 @@ fn fmt_parse( no_semicolons, watch: watch_arg_parse(matches)?, unstable_component, + unstable_sql, }); Ok(()) } -fn init_parse(flags: &mut Flags, matches: &mut ArgMatches) { +fn init_parse( + flags: &mut Flags, + matches: &mut ArgMatches, +) -> Result<(), clap::Error> { + let mut lib = matches.get_flag("lib"); + let mut serve = matches.get_flag("serve"); + let mut dir = None; + let mut package = None; + let mut package_args = vec![]; + + if let Some(mut args) = matches.remove_many::("args") { + let name = args.next().unwrap(); + let mut args = args.collect::>(); + + if matches.get_flag("npm") { + package = Some(name); + package_args = args; + } else { + dir = Some(name); + + if !args.is_empty() { + args.insert(0, "init".to_string()); + let inner_matches = init_subcommand().try_get_matches_from_mut(args)?; + lib = inner_matches.get_flag("lib"); + serve = inner_matches.get_flag("serve"); + } + } + } + flags.subcommand = DenoSubcommand::Init(InitFlags { - dir: matches.remove_one::("dir"), - lib: matches.get_flag("lib"), - serve: matches.get_flag("serve"), + package, + package_args, + dir, + lib, + serve, }); + + Ok(()) } fn info_parse( @@ -5022,7 +5264,11 @@ fn serve_parse( Ok(()) } -fn task_parse(flags: &mut Flags, matches: &mut ArgMatches) { +fn task_parse( + flags: &mut Flags, + matches: &mut ArgMatches, + mut app: Command, +) -> clap::error::Result<()> { flags.config_flag = matches .remove_one::("config") .map(ConfigFlag::Path) @@ -5031,10 +5277,16 @@ fn task_parse(flags: &mut Flags, matches: &mut ArgMatches) { unstable_args_parse(flags, matches, UnstableArgsConfig::ResolutionAndRuntime); node_modules_arg_parse(flags, matches); + let filter = matches.remove_one::("filter"); + let recursive = matches.get_flag("recursive") || filter.is_some(); + let mut task_flags = TaskFlags { cwd: matches.remove_one::("cwd"), task: None, is_run: false, + recursive, + filter, + eval: matches.get_flag("eval"), }; if let Some((task, mut matches)) = matches.remove_subcommand() { @@ -5047,9 +5299,15 @@ fn task_parse(flags: &mut Flags, matches: &mut ArgMatches) { .flatten() .filter_map(|arg| arg.into_string().ok()), ); + } else if task_flags.eval { + return Err(app.find_subcommand_mut("task").unwrap().error( + clap::error::ErrorKind::MissingRequiredArgument, + "[TASK] must be specified when using --eval", + )); } flags.subcommand = DenoSubcommand::Task(task_flags); + Ok(()) } fn parallel_arg_parse(matches: &mut ArgMatches) -> Option { @@ -5195,7 +5453,10 @@ fn vendor_parse(flags: &mut Flags, _matches: &mut ArgMatches) { flags.subcommand = DenoSubcommand::Vendor } -fn publish_parse(flags: &mut Flags, matches: &mut ArgMatches) { +fn publish_parse( + flags: &mut Flags, + matches: &mut ArgMatches, +) -> clap::error::Result<()> { flags.type_check_mode = TypeCheckMode::Local; // local by default unstable_args_parse(flags, matches, UnstableArgsConfig::ResolutionOnly); no_check_arg_parse(flags, matches); @@ -5208,7 +5469,10 @@ fn publish_parse(flags: &mut Flags, matches: &mut ArgMatches) { allow_slow_types: matches.get_flag("allow-slow-types"), allow_dirty: matches.get_flag("allow-dirty"), no_provenance: matches.get_flag("no-provenance"), + set_version: matches.remove_one::("set-version"), }); + + Ok(()) } fn compile_args_parse( @@ -5469,7 +5733,9 @@ fn import_map_arg_parse(flags: &mut Flags, matches: &mut ArgMatches) { } fn env_file_arg_parse(flags: &mut Flags, matches: &mut ArgMatches) { - flags.env_file = matches.remove_one::("env-file"); + flags.env_file = matches + .get_many::("env-file") + .map(|values| values.cloned().collect()); } fn reload_arg_parse( @@ -5720,7 +5986,6 @@ fn unstable_args_parse( flags.unstable_config.bare_node_builtins = matches.get_flag("unstable-bare-node-builtins"); - flags.unstable_config.detect_cjs = matches.get_flag("unstable-detect-cjs"); flags.unstable_config.sloppy_imports = matches.get_flag("unstable-sloppy-imports"); @@ -6541,6 +6806,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6564,6 +6830,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6587,6 +6854,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6610,6 +6878,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Some(Default::default()), }), ..Flags::default() @@ -6624,7 +6893,8 @@ mod tests { "--unstable-css", "--unstable-html", "--unstable-component", - "--unstable-yaml" + "--unstable-yaml", + "--unstable-sql" ]); assert_eq!( r.unwrap(), @@ -6642,6 +6912,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: true, + unstable_sql: true, watch: Some(WatchFlags { hmr: false, no_clear_screen: true, @@ -6676,6 +6947,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Some(Default::default()), }), ..Flags::default() @@ -6699,6 +6971,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), config_flag: ConfigFlag::Path("deno.jsonc".to_string()), @@ -6730,6 +7003,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Some(Default::default()), }), config_flag: ConfigFlag::Path("deno.jsonc".to_string()), @@ -6766,6 +7040,7 @@ mod tests { prose_wrap: Some("never".to_string()), no_semicolons: Some(true), unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6796,6 +7071,7 @@ mod tests { prose_wrap: None, no_semicolons: Some(false), unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6821,6 +7097,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ext: Some("html".to_string()), @@ -7406,7 +7683,7 @@ mod tests { allow_all: true, ..Default::default() }, - env_file: Some(".example.env".to_owned()), + env_file: Some(vec![".example.env".to_owned()]), ..Flags::default() } ); @@ -7500,7 +7777,7 @@ mod tests { allow_all: true, ..Default::default() }, - env_file: Some(".example.env".to_owned()), + env_file: Some(vec![".example.env".to_owned()]), unsafely_ignore_certificate_errors: Some(vec![]), ..Flags::default() } @@ -8148,7 +8425,7 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags::new_default( "script.ts".to_string(), )), - env_file: Some(".env".to_owned()), + env_file: Some(vec![".env".to_owned()]), code_cache_enabled: true, ..Flags::default() } @@ -8164,7 +8441,7 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags::new_default( "script.ts".to_string(), )), - env_file: Some(".env".to_owned()), + env_file: Some(vec![".env".to_owned()]), code_cache_enabled: true, ..Flags::default() } @@ -8197,7 +8474,7 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags::new_default( "script.ts".to_string(), )), - env_file: Some(".another_env".to_owned()), + env_file: Some(vec![".another_env".to_owned()]), code_cache_enabled: true, ..Flags::default() } @@ -8218,7 +8495,29 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags::new_default( "script.ts".to_string(), )), - env_file: Some(".another_env".to_owned()), + env_file: Some(vec![".another_env".to_owned()]), + code_cache_enabled: true, + ..Flags::default() + } + ); + } + + #[test] + fn run_multiple_env_file_defined() { + let r = flags_from_vec(svec![ + "deno", + "run", + "--env-file", + "--env-file=.two_env", + "script.ts" + ]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Run(RunFlags::new_default( + "script.ts".to_string(), + )), + env_file: Some(vec![".env".to_owned(), ".two_env".to_owned()]), code_cache_enabled: true, ..Flags::default() } @@ -8361,7 +8660,7 @@ mod tests { allow_read: Some(vec![]), ..Default::default() }, - env_file: Some(".example.env".to_owned()), + env_file: Some(vec![".example.env".to_owned()]), ..Flags::default() } ); @@ -9997,6 +10296,7 @@ mod tests { include: vec![] }), type_check_mode: TypeCheckMode::Local, + code_cache_enabled: true, ..Flags::default() } ); @@ -10005,7 +10305,7 @@ mod tests { #[test] fn compile_with_flags() { #[rustfmt::skip] - let r = flags_from_vec(svec!["deno", "compile", "--import-map", "import_map.json", "--no-remote", "--config", "tsconfig.json", "--no-check", "--unsafely-ignore-certificate-errors", "--reload", "--lock", "lock.json", "--cert", "example.crt", "--cached-only", "--location", "https:foo", "--allow-read", "--allow-net", "--v8-flags=--help", "--seed", "1", "--no-terminal", "--icon", "favicon.ico", "--output", "colors", "--env=.example.env", "https://examples.deno.land/color-logging.ts", "foo", "bar", "-p", "8080"]); + let r = flags_from_vec(svec!["deno", "compile", "--import-map", "import_map.json", "--no-code-cache", "--no-remote", "--config", "tsconfig.json", "--no-check", "--unsafely-ignore-certificate-errors", "--reload", "--lock", "lock.json", "--cert", "example.crt", "--cached-only", "--location", "https:foo", "--allow-read", "--allow-net", "--v8-flags=--help", "--seed", "1", "--no-terminal", "--icon", "favicon.ico", "--output", "colors", "--env=.example.env", "https://examples.deno.land/color-logging.ts", "foo", "bar", "-p", "8080"]); assert_eq!( r.unwrap(), Flags { @@ -10021,6 +10321,7 @@ mod tests { }), import_map_path: Some("import_map.json".to_string()), no_remote: true, + code_cache_enabled: false, config_flag: ConfigFlag::Path("tsconfig.json".to_owned()), type_check_mode: TypeCheckMode::None, reload: true, @@ -10036,7 +10337,7 @@ mod tests { unsafely_ignore_certificate_errors: Some(vec![]), v8_flags: svec!["--help", "--random-seed=1"], seed: Some(1), - env_file: Some(".example.env".to_owned()), + env_file: Some(vec![".example.env".to_owned()]), ..Flags::default() } ); @@ -10187,6 +10488,9 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, }), argv: svec!["hello", "world"], ..Flags::default() @@ -10201,6 +10505,9 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, }), ..Flags::default() } @@ -10214,10 +10521,80 @@ mod tests { cwd: Some("foo".to_string()), task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, + }), + ..Flags::default() + } + ); + + let r = flags_from_vec(svec!["deno", "task", "--filter", "*", "build"]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Task(TaskFlags { + cwd: None, + task: Some("build".to_string()), + is_run: false, + recursive: true, + filter: Some("*".to_string()), + eval: false, + }), + ..Flags::default() + } + ); + + let r = flags_from_vec(svec!["deno", "task", "--recursive", "build"]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Task(TaskFlags { + cwd: None, + task: Some("build".to_string()), + is_run: false, + recursive: true, + filter: None, + eval: false, }), ..Flags::default() } ); + + let r = flags_from_vec(svec!["deno", "task", "-r", "build"]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Task(TaskFlags { + cwd: None, + task: Some("build".to_string()), + is_run: false, + recursive: true, + filter: None, + eval: false, + }), + ..Flags::default() + } + ); + + let r = flags_from_vec(svec!["deno", "task", "--eval", "echo 1"]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Task(TaskFlags { + cwd: None, + task: Some("echo 1".to_string()), + is_run: false, + recursive: false, + filter: None, + eval: true, + }), + ..Flags::default() + } + ); + + let r = flags_from_vec(svec!["deno", "task", "--eval"]); + assert!(r.is_err()); } #[test] @@ -10239,6 +10616,9 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, }), argv: svec!["--", "hello", "world"], config_flag: ConfigFlag::Path("deno.json".to_owned()), @@ -10256,6 +10636,9 @@ mod tests { cwd: Some("foo".to_string()), task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, }), argv: svec!["--", "hello", "world"], ..Flags::default() @@ -10274,6 +10657,9 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, }), argv: svec!["--"], ..Flags::default() @@ -10291,6 +10677,9 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, }), argv: svec!["-1", "--test"], ..Flags::default() @@ -10308,6 +10697,9 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, }), argv: svec!["--test"], ..Flags::default() @@ -10326,6 +10718,9 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, + eval: false, }), log_level: Some(log::Level::Error), ..Flags::default() @@ -10343,6 +10738,9 @@ mod tests { cwd: None, task: None, is_run: false, + recursive: false, + filter: None, + eval: false, }), ..Flags::default() } @@ -10359,6 +10757,9 @@ mod tests { cwd: None, task: None, is_run: false, + recursive: false, + filter: None, + eval: false, }), config_flag: ConfigFlag::Path("deno.jsonc".to_string()), ..Flags::default() @@ -10376,6 +10777,9 @@ mod tests { cwd: None, task: None, is_run: false, + recursive: false, + filter: None, + eval: false, }), config_flag: ConfigFlag::Path("deno.jsonc".to_string()), ..Flags::default() @@ -10552,6 +10956,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: None, lib: false, serve: false, @@ -10565,6 +10971,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: Some(String::from("foo")), lib: false, serve: false, @@ -10578,6 +10986,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: None, lib: false, serve: false, @@ -10592,6 +11002,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: None, lib: true, serve: false, @@ -10605,6 +11017,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: None, lib: false, serve: true, @@ -10618,6 +11032,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: Some(String::from("foo")), lib: true, serve: false, @@ -10625,6 +11041,57 @@ mod tests { ..Flags::default() } ); + + let r = flags_from_vec(svec!["deno", "init", "--lib", "--npm", "vite"]); + assert!(r.is_err()); + + let r = flags_from_vec(svec!["deno", "init", "--serve", "--npm", "vite"]); + assert!(r.is_err()); + + let r = flags_from_vec(svec!["deno", "init", "--npm", "vite", "--lib"]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Init(InitFlags { + package: Some("vite".to_string()), + package_args: svec!["--lib"], + dir: None, + lib: false, + serve: false, + }), + ..Flags::default() + } + ); + + let r = flags_from_vec(svec!["deno", "init", "--npm", "vite", "--serve"]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Init(InitFlags { + package: Some("vite".to_string()), + package_args: svec!["--serve"], + dir: None, + lib: false, + serve: false, + }), + ..Flags::default() + } + ); + + let r = flags_from_vec(svec!["deno", "init", "--npm", "vite", "new_dir"]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Init(InitFlags { + package: Some("vite".to_string()), + package_args: svec!["new_dir"], + dir: None, + lib: false, + serve: false, + }), + ..Flags::default() + } + ); } #[test] @@ -10698,6 +11165,7 @@ mod tests { "--allow-slow-types", "--allow-dirty", "--token=asdf", + "--set-version=1.0.1", ]); assert_eq!( r.unwrap(), @@ -10708,6 +11176,7 @@ mod tests { allow_slow_types: true, allow_dirty: true, no_provenance: true, + set_version: Some("1.0.1".to_string()), }), type_check_mode: TypeCheckMode::Local, ..Flags::default() @@ -11156,4 +11625,77 @@ Usage: deno repl [OPTIONS] [-- [ARGS]...]\n" assert!(r.is_err()); } } + + #[test] + fn outdated_subcommand() { + let cases = [ + ( + svec![], + OutdatedFlags { + filters: vec![], + kind: OutdatedKind::PrintOutdated { compatible: false }, + recursive: false, + }, + ), + ( + svec!["--recursive"], + OutdatedFlags { + filters: vec![], + kind: OutdatedKind::PrintOutdated { compatible: false }, + recursive: true, + }, + ), + ( + svec!["--recursive", "--compatible"], + OutdatedFlags { + filters: vec![], + kind: OutdatedKind::PrintOutdated { compatible: true }, + recursive: true, + }, + ), + ( + svec!["--update"], + OutdatedFlags { + filters: vec![], + kind: OutdatedKind::Update { latest: false }, + recursive: false, + }, + ), + ( + svec!["--update", "--latest"], + OutdatedFlags { + filters: vec![], + kind: OutdatedKind::Update { latest: true }, + recursive: false, + }, + ), + ( + svec!["--update", "--recursive"], + OutdatedFlags { + filters: vec![], + kind: OutdatedKind::Update { latest: false }, + recursive: true, + }, + ), + ( + svec!["--update", "@foo/bar"], + OutdatedFlags { + filters: svec!["@foo/bar"], + kind: OutdatedKind::Update { latest: false }, + recursive: false, + }, + ), + ]; + for (input, expected) in cases { + let mut args = svec!["deno", "outdated"]; + args.extend(input); + let r = flags_from_vec(args.clone()).unwrap(); + assert_eq!( + r.subcommand, + DenoSubcommand::Outdated(expected), + "incorrect result for args: {:?}", + args + ); + } + } } diff --git a/cli/args/lockfile.rs b/cli/args/lockfile.rs index 1805d264263baf..a9eb8a0d7cae83 100644 --- a/cli/args/lockfile.rs +++ b/cli/args/lockfile.rs @@ -126,11 +126,7 @@ impl CliLockfile { maybe_deno_json: Option<&ConfigFile>, ) -> HashSet { maybe_deno_json - .map(|c| { - crate::args::deno_json::deno_json_deps(c) - .into_iter() - .collect() - }) + .map(crate::args::deno_json::deno_json_deps) .unwrap_or_default() } diff --git a/cli/args/mod.rs b/cli/args/mod.rs index e19025f8b10cb6..a1a9c49cbe4421 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -7,6 +7,7 @@ mod import_map; mod lockfile; mod package_json; +use deno_ast::MediaType; use deno_ast::SourceMapOption; use deno_config::deno_json::NodeModulesDirMode; use deno_config::workspace::CreateResolverOptions; @@ -27,13 +28,13 @@ use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::resolution::ValidSerializedNpmResolutionSnapshot; use deno_npm::NpmSystemInfo; use deno_path_util::normalize_path; +use deno_runtime::ops::otel::OtelConfig; use deno_semver::npm::NpmPackageReqReference; use import_map::resolve_import_map_value_from_specifier; pub use deno_config::deno_json::BenchConfig; pub use deno_config::deno_json::ConfigFile; pub use deno_config::deno_json::FmtOptionsConfig; -pub use deno_config::deno_json::JsxImportSourceConfig; pub use deno_config::deno_json::LintRulesConfig; pub use deno_config::deno_json::ProseWrap; pub use deno_config::deno_json::TsConfig; @@ -288,6 +289,7 @@ impl BenchOptions { #[derive(Clone, Debug, Default, PartialEq, Eq, Hash)] pub struct UnstableFmtOptions { pub component: bool, + pub sql: bool, } #[derive(Clone, Debug)] @@ -321,6 +323,7 @@ impl FmtOptions { options: resolve_fmt_options(fmt_flags, fmt_config.options), unstable: UnstableFmtOptions { component: unstable.component || fmt_flags.unstable_component, + sql: unstable.sql || fmt_flags.unstable_sql, }, files: fmt_config.files, } @@ -822,10 +825,8 @@ impl CliOptions { }; let msg = format!("DANGER: TLS certificate validation is disabled {}", domains); - #[allow(clippy::print_stderr)] { - // use eprintln instead of log::warn so this always gets shown - eprintln!("{}", colors::yellow(msg)); + log::error!("{}", colors::yellow(msg)); } } @@ -869,12 +870,8 @@ impl CliOptions { } else { &[] }; - let config_parse_options = deno_config::deno_json::ConfigParseOptions { - include_task_comments: matches!( - flags.subcommand, - DenoSubcommand::Task(..) - ), - }; + let config_parse_options = + deno_config::deno_json::ConfigParseOptions::default(); let discover_pkg_json = flags.config_flag != ConfigFlag::Disabled && !flags.no_npm && !has_flag_env_var("DENO_NO_PACKAGE_JSON"); @@ -1129,7 +1126,11 @@ impl CliOptions { } } - pub fn env_file_name(&self) -> Option<&String> { + pub fn otel_config(&self) -> Option { + self.flags.otel_config() + } + + pub fn env_file_name(&self) -> Option<&Vec> { self.flags.env_file.as_ref() } @@ -1137,21 +1138,34 @@ impl CliOptions { self .main_module_cell .get_or_init(|| { - let main_module = match &self.flags.subcommand { + Ok(match &self.flags.subcommand { DenoSubcommand::Compile(compile_flags) => { resolve_url_or_path(&compile_flags.source_file, self.initial_cwd())? } DenoSubcommand::Eval(_) => { - resolve_url_or_path("./$deno$eval.ts", self.initial_cwd())? + resolve_url_or_path("./$deno$eval.mts", self.initial_cwd())? } DenoSubcommand::Repl(_) => { - resolve_url_or_path("./$deno$repl.ts", self.initial_cwd())? + resolve_url_or_path("./$deno$repl.mts", self.initial_cwd())? } DenoSubcommand::Run(run_flags) => { if run_flags.is_stdin() { - resolve_url_or_path("./$deno$stdin.ts", self.initial_cwd())? + resolve_url_or_path("./$deno$stdin.mts", self.initial_cwd())? } else { - resolve_url_or_path(&run_flags.script, self.initial_cwd())? + let url = + resolve_url_or_path(&run_flags.script, self.initial_cwd())?; + if self.is_node_main() + && url.scheme() == "file" + && MediaType::from_specifier(&url) == MediaType::Unknown + { + try_resolve_node_binary_main_entrypoint( + &run_flags.script, + self.initial_cwd(), + )? + .unwrap_or(url) + } else { + url + } } } DenoSubcommand::Serve(run_flags) => { @@ -1160,9 +1174,7 @@ impl CliOptions { _ => { bail!("No main module.") } - }; - - Ok(main_module) + }) }) .as_ref() .map_err(|err| deno_core::anyhow::anyhow!("{}", err)) @@ -1211,7 +1223,7 @@ impl CliOptions { // This is triggered via a secret environment variable which is used // for functionality like child_process.fork. Users should NOT depend // on this functionality. - pub fn is_npm_main(&self) -> bool { + pub fn is_node_main(&self) -> bool { NPM_PROCESS_STATE.is_some() } @@ -1309,6 +1321,7 @@ impl CliOptions { let workspace = self.workspace(); UnstableFmtOptions { component: workspace.has_unstable("fmt-component"), + sql: workspace.has_unstable("fmt-sql"), } } @@ -1535,6 +1548,10 @@ impl CliOptions { }) => Url::parse(&flags.module_url) .ok() .map(|url| vec![Cow::Owned(url)]), + DenoSubcommand::Doc(DocFlags { + source_files: DocSourceFileFlag::Paths(paths), + .. + }) => Some(files_to_urls(paths)), _ => None, }) .unwrap_or_default(); @@ -1589,9 +1606,11 @@ impl CliOptions { || self.workspace().has_unstable("bare-node-builtins") } - pub fn unstable_detect_cjs(&self) -> bool { - self.flags.unstable_config.detect_cjs - || self.workspace().has_unstable("detect-cjs") + pub fn detect_cjs(&self) -> bool { + // only enabled when there's a package.json in order to not have a + // perf penalty for non-npm Deno projects of searching for the closest + // package.json beside each module + self.workspace().package_jsons().next().is_some() || self.is_node_main() } fn byonm_enabled(&self) -> bool { @@ -1609,8 +1628,10 @@ impl CliOptions { DenoSubcommand::Install(_) | DenoSubcommand::Add(_) | DenoSubcommand::Remove(_) + | DenoSubcommand::Init(_) + | DenoSubcommand::Outdated(_) ) { - // For `deno install/add/remove` we want to force the managed resolver so it can set up `node_modules/` directory. + // For `deno install/add/remove/init` we want to force the managed resolver so it can set up `node_modules/` directory. return false; } if self.node_modules_dir().ok().flatten().is_none() @@ -1655,7 +1676,7 @@ impl CliOptions { "byonm", "bare-node-builtins", "fmt-component", - "detect-cjs", + "fmt-sql", ]) .collect(); @@ -1793,6 +1814,36 @@ fn resolve_node_modules_folder( Ok(Some(canonicalize_path_maybe_not_exists(&path)?)) } +fn try_resolve_node_binary_main_entrypoint( + specifier: &str, + initial_cwd: &Path, +) -> Result, AnyError> { + // node allows running files at paths without a `.js` extension + // or at directories with an index.js file + let path = deno_core::normalize_path(initial_cwd.join(specifier)); + if path.is_dir() { + let index_file = path.join("index.js"); + Ok(if index_file.is_file() { + Some(deno_path_util::url_from_file_path(&index_file)?) + } else { + None + }) + } else { + let path = path.with_extension( + path + .extension() + .and_then(|s| s.to_str()) + .map(|s| format!("{}.js", s)) + .unwrap_or("js".to_string()), + ); + if path.is_file() { + Ok(Some(deno_path_util::url_from_file_path(&path)?)) + } else { + Ok(None) + } + } +} + fn resolve_import_map_specifier( maybe_import_map_path: Option<&str>, maybe_config_file: Option<&ConfigFile>, @@ -1863,6 +1914,10 @@ pub fn resolve_no_prompt(flags: &PermissionFlags) -> bool { flags.no_prompt || has_flag_env_var("DENO_NO_PROMPT") } +pub fn has_trace_permissions_enabled() -> bool { + has_flag_env_var("DENO_TRACE_PERMISSIONS") +} + pub fn has_flag_env_var(name: &str) -> bool { let value = env::var(name); matches!(value.as_ref().map(|s| s.as_str()), Ok("1")) @@ -1894,19 +1949,22 @@ pub fn config_to_deno_graph_workspace_member( }) } -fn load_env_variables_from_env_file(filename: Option<&String>) { - let Some(env_file_name) = filename else { +fn load_env_variables_from_env_file(filename: Option<&Vec>) { + let Some(env_file_names) = filename else { return; }; - match from_filename(env_file_name) { - Ok(_) => (), - Err(error) => { - match error { + + for env_file_name in env_file_names.iter().rev() { + match from_filename(env_file_name) { + Ok(_) => (), + Err(error) => { + match error { dotenvy::Error::LineParse(line, index)=> log::info!("{} Parsing failed within the specified environment file: {} at index: {} of the value: {}",colors::yellow("Warning"), env_file_name, index, line), dotenvy::Error::Io(_)=> log::info!("{} The `--env-file` flag was used, but the environment file specified '{}' was not found.",colors::yellow("Warning"),env_file_name), dotenvy::Error::EnvVar(_)=> log::info!("{} One or more of the environment variables isn't present or not unicode within the specified environment file: {}",colors::yellow("Warning"),env_file_name), _ => log::info!("{} Unknown failure occurred with the specified environment file: {}", colors::yellow("Warning"), env_file_name), } + } } } } diff --git a/cli/build.rs b/cli/build.rs index b33660da5c05fa..7d6ed80fb3a1af 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -399,6 +399,24 @@ fn main() { println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap()); println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap()); + if cfg!(windows) { + // these dls load slowly, so delay loading them + let dlls = [ + // webgpu + "d3dcompiler_47", + "OPENGL32", + // network related functions + "iphlpapi", + ]; + for dll in dlls { + println!("cargo:rustc-link-arg-bin=deno=/delayload:{dll}.dll"); + println!("cargo:rustc-link-arg-bin=denort=/delayload:{dll}.dll"); + } + // enable delay loading + println!("cargo:rustc-link-arg-bin=deno=delayimp.lib"); + println!("cargo:rustc-link-arg-bin=denort=delayimp.lib"); + } + let c = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); let o = PathBuf::from(env::var_os("OUT_DIR").unwrap()); diff --git a/cli/cache/code_cache.rs b/cli/cache/code_cache.rs index abcd0d46ac1cff..b1d9ae757b9038 100644 --- a/cli/cache/code_cache.rs +++ b/cli/cache/code_cache.rs @@ -1,10 +1,14 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use std::sync::Arc; + use deno_ast::ModuleSpecifier; use deno_core::error::AnyError; use deno_runtime::code_cache; use deno_runtime::deno_webstorage::rusqlite::params; +use crate::worker::CliCodeCache; + use super::cache_db::CacheDB; use super::cache_db::CacheDBConfiguration; use super::cache_db::CacheDBHash; @@ -82,6 +86,12 @@ impl CodeCache { } } +impl CliCodeCache for CodeCache { + fn as_code_cache(self: Arc) -> Arc { + self + } +} + impl code_cache::CodeCache for CodeCache { fn get_sync( &self, diff --git a/cli/clippy.toml b/cli/clippy.toml index e20c56c47abba3..f1c25acfb87da6 100644 --- a/cli/clippy.toml +++ b/cli/clippy.toml @@ -1,5 +1,6 @@ disallowed-methods = [ { path = "reqwest::Client::new", reason = "create an HttpClient via an HttpClientProvider instead" }, + { path = "std::process::exit", reason = "use deno_runtime::exit instead" }, ] disallowed-types = [ { path = "reqwest::Client", reason = "use crate::http_util::HttpClient instead" }, diff --git a/cli/emit.rs b/cli/emit.rs index 8c4f2091cf021f..3cd23b7abbcaa6 100644 --- a/cli/emit.rs +++ b/cli/emit.rs @@ -181,7 +181,6 @@ impl Emitter { pub async fn load_and_emit_for_hmr( &self, specifier: &ModuleSpecifier, - module_kind: deno_ast::ModuleKind, ) -> Result { let media_type = MediaType::from_specifier(specifier); let source_code = tokio::fs::read_to_string( @@ -203,11 +202,16 @@ impl Emitter { // this statement is probably wrong) let mut options = self.transpile_and_emit_options.1.clone(); options.source_map = SourceMapOption::None; + let is_cjs = self.cjs_tracker.is_cjs_with_known_is_script( + specifier, + media_type, + parsed_source.compute_is_script(), + )?; let transpiled_source = parsed_source .transpile( &self.transpile_and_emit_options.0, &deno_ast::TranspileModuleOptions { - module_kind: Some(module_kind), + module_kind: Some(ModuleKind::from_is_cjs(is_cjs)), }, &options, )? diff --git a/cli/errors.rs b/cli/errors.rs index b1808f733908b4..38dc8259e3c61c 100644 --- a/cli/errors.rs +++ b/cli/errors.rs @@ -38,6 +38,7 @@ fn get_module_graph_error_class(err: &ModuleGraphError) -> &'static str { ModuleGraphError::ModuleError(err) => match err { ModuleError::InvalidTypeAssertion { .. } => "SyntaxError", ModuleError::ParseErr(_, diagnostic) => get_diagnostic_class(diagnostic), + ModuleError::WasmParseErr(..) => "SyntaxError", ModuleError::UnsupportedMediaType { .. } | ModuleError::UnsupportedImportAttributeType { .. } => "TypeError", ModuleError::Missing(_, _) | ModuleError::MissingDynamic(_, _) => { diff --git a/cli/factory.rs b/cli/factory.rs index 4a36c75ba2af12..98149982f04edf 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -42,12 +42,13 @@ use crate::npm::CliNpmResolverCreateOptions; use crate::npm::CliNpmResolverManagedSnapshotOption; use crate::npm::CreateInNpmPkgCheckerOptions; use crate::resolver::CjsTracker; -use crate::resolver::CjsTrackerOptions; +use crate::resolver::CliDenoResolver; use crate::resolver::CliDenoResolverFs; -use crate::resolver::CliGraphResolver; -use crate::resolver::CliGraphResolverOptions; -use crate::resolver::CliNodeResolver; +use crate::resolver::CliNpmReqResolver; +use crate::resolver::CliResolver; +use crate::resolver::CliResolverOptions; use crate::resolver::CliSloppyImportsResolver; +use crate::resolver::IsCjsResolverOptions; use crate::resolver::NpmModuleLoader; use crate::resolver::SloppyImportsCachedFs; use crate::standalone::DenoCompileBinaryWriter; @@ -71,6 +72,9 @@ use deno_core::error::AnyError; use deno_core::futures::FutureExt; use deno_core::FeatureChecker; +use deno_resolver::npm::NpmReqResolverOptions; +use deno_resolver::DenoResolverOptions; +use deno_resolver::NodeAndNpmReqResolver; use deno_runtime::deno_fs; use deno_runtime::deno_node::DenoFsNodeResolverEnv; use deno_runtime::deno_node::NodeResolver; @@ -126,7 +130,7 @@ impl RootCertStoreProvider for CliRootCertStoreProvider { } } -struct Deferred(once_cell::unsync::OnceCell); +pub struct Deferred(once_cell::unsync::OnceCell); impl Default for Deferred { fn default() -> Self { @@ -175,9 +179,9 @@ struct CliFactoryServices { blob_store: Deferred>, caches: Deferred>, cjs_tracker: Deferred>, - cli_node_resolver: Deferred>, cli_options: Deferred>, code_cache: Deferred>, + deno_resolver: Deferred>, emit_cache: Deferred>, emitter: Deferred>, feature_checker: Deferred>, @@ -197,11 +201,12 @@ struct CliFactoryServices { node_code_translator: Deferred>, node_resolver: Deferred>, npm_cache_dir: Deferred>, + npm_req_resolver: Deferred>, npm_resolver: Deferred>, parsed_source_cache: Deferred>, permission_desc_parser: Deferred>, pkg_json_resolver: Deferred>, - resolver: Deferred>, + resolver: Deferred>, root_cert_store_provider: Deferred>, root_permissions_container: Deferred, sloppy_imports_resolver: Deferred>>, @@ -523,28 +528,47 @@ impl CliFactory { .await } - pub async fn resolver(&self) -> Result<&Arc, AnyError> { + pub async fn deno_resolver(&self) -> Result<&Arc, AnyError> { + self + .services + .deno_resolver + .get_or_try_init_async(async { + let cli_options = self.cli_options()?; + Ok(Arc::new(CliDenoResolver::new(DenoResolverOptions { + in_npm_pkg_checker: self.in_npm_pkg_checker()?.clone(), + node_and_req_resolver: if cli_options.no_npm() { + None + } else { + Some(NodeAndNpmReqResolver { + node_resolver: self.node_resolver().await?.clone(), + npm_req_resolver: self.npm_req_resolver().await?.clone(), + }) + }, + sloppy_imports_resolver: self.sloppy_imports_resolver()?.cloned(), + workspace_resolver: self.workspace_resolver().await?.clone(), + is_byonm: cli_options.use_byonm(), + maybe_vendor_dir: cli_options.vendor_dir_path(), + }))) + }) + .await + } + + pub async fn resolver(&self) -> Result<&Arc, AnyError> { self .services .resolver .get_or_try_init_async( async { let cli_options = self.cli_options()?; - Ok(Arc::new(CliGraphResolver::new(CliGraphResolverOptions { - sloppy_imports_resolver: self.sloppy_imports_resolver()?.cloned(), - node_resolver: Some(self.cli_node_resolver().await?.clone()), + Ok(Arc::new(CliResolver::new(CliResolverOptions { npm_resolver: if cli_options.no_npm() { None } else { Some(self.npm_resolver().await?.clone()) }, - workspace_resolver: self.workspace_resolver().await?.clone(), bare_node_builtins_enabled: cli_options .unstable_bare_node_builtins(), - maybe_jsx_import_source_config: cli_options - .workspace() - .to_maybe_jsx_import_source_config()?, - maybe_vendor_dir: cli_options.vendor_dir_path(), + deno_resolver: self.deno_resolver().await?.clone(), }))) } .boxed_local(), @@ -627,7 +651,11 @@ impl CliFactory { Ok(Arc::new(NodeResolver::new( DenoFsNodeResolverEnv::new(self.fs().clone()), self.in_npm_pkg_checker()?.clone(), - self.npm_resolver().await?.clone().into_npm_resolver(), + self + .npm_resolver() + .await? + .clone() + .into_npm_pkg_folder_resolver(), self.pkg_json_resolver().clone(), ))) } @@ -652,7 +680,6 @@ impl CliFactory { self.cjs_tracker()?.clone(), self.fs().clone(), Some(self.parsed_source_cache().clone()), - self.cli_options()?.is_npm_main(), ); Ok(Arc::new(NodeCodeTranslator::new( @@ -660,13 +687,36 @@ impl CliFactory { DenoFsNodeResolverEnv::new(self.fs().clone()), self.in_npm_pkg_checker()?.clone(), node_resolver, - self.npm_resolver().await?.clone().into_npm_resolver(), + self + .npm_resolver() + .await? + .clone() + .into_npm_pkg_folder_resolver(), self.pkg_json_resolver().clone(), ))) }) .await } + pub async fn npm_req_resolver( + &self, + ) -> Result<&Arc, AnyError> { + self + .services + .npm_req_resolver + .get_or_try_init_async(async { + let npm_resolver = self.npm_resolver().await?; + Ok(Arc::new(CliNpmReqResolver::new(NpmReqResolverOptions { + byonm_resolver: (npm_resolver.clone()).into_maybe_byonm(), + fs: CliDenoResolverFs(self.fs().clone()), + in_npm_pkg_checker: self.in_npm_pkg_checker()?.clone(), + node_resolver: self.node_resolver().await?.clone(), + npm_req_resolver: npm_resolver.clone().into_npm_req_resolver(), + }))) + }) + .await + } + pub fn pkg_json_resolver(&self) -> &Arc { self.services.pkg_json_resolver.get_or_init(|| { Arc::new(PackageJsonResolver::new(DenoFsNodeResolverEnv::new( @@ -706,6 +756,7 @@ impl CliFactory { let cli_options = self.cli_options()?; Ok(Arc::new(ModuleGraphBuilder::new( self.caches()?.clone(), + self.cjs_tracker()?.clone(), cli_options.clone(), self.file_fetcher()?.clone(), self.fs().clone(), @@ -794,31 +845,14 @@ impl CliFactory { Ok(Arc::new(CjsTracker::new( self.in_npm_pkg_checker()?.clone(), self.pkg_json_resolver().clone(), - CjsTrackerOptions { - unstable_detect_cjs: options.unstable_detect_cjs(), + IsCjsResolverOptions { + detect_cjs: options.detect_cjs(), + is_node_main: options.is_node_main(), }, ))) }) } - pub async fn cli_node_resolver( - &self, - ) -> Result<&Arc, AnyError> { - self - .services - .cli_node_resolver - .get_or_try_init_async(async { - Ok(Arc::new(CliNodeResolver::new( - self.cjs_tracker()?.clone(), - self.fs().clone(), - self.in_npm_pkg_checker()?.clone(), - self.node_resolver().await?.clone(), - self.npm_resolver().await?.clone(), - ))) - }) - .await - } - pub fn permission_desc_parser( &self, ) -> Result<&Arc, AnyError> { @@ -850,6 +884,7 @@ impl CliFactory { let cli_options = self.cli_options()?; Ok(DenoCompileBinaryWriter::new( self.cjs_tracker()?, + self.cli_options()?, self.deno_dir()?, self.emitter()?, self.file_fetcher()?, @@ -883,7 +918,6 @@ impl CliFactory { let fs = self.fs(); let node_resolver = self.node_resolver().await?; let npm_resolver = self.npm_resolver().await?; - let cli_node_resolver = self.cli_node_resolver().await?; let cli_npm_resolver = self.npm_resolver().await?.clone(); let in_npm_pkg_checker = self.in_npm_pkg_checker()?; let maybe_file_watcher_communicator = if cli_options.has_hmr() { @@ -894,6 +928,7 @@ impl CliFactory { let node_code_translator = self.node_code_translator().await?; let cjs_tracker = self.cjs_tracker()?.clone(); let pkg_json_resolver = self.pkg_json_resolver().clone(); + let npm_req_resolver = self.npm_req_resolver().await?; Ok(CliMainWorkerFactory::new( self.blob_store().clone(), @@ -921,7 +956,8 @@ impl CliFactory { self.main_module_graph_container().await?.clone(), self.module_load_preparer().await?.clone(), node_code_translator.clone(), - cli_node_resolver.clone(), + node_resolver.clone(), + npm_req_resolver.clone(), cli_npm_resolver.clone(), NpmModuleLoader::new( self.cjs_tracker()?.clone(), @@ -939,6 +975,7 @@ impl CliFactory { StorageKeyResolver::from_options(cli_options), cli_options.sub_command().clone(), self.create_cli_main_worker_options()?, + self.cli_options()?.otel_config(), )) } @@ -949,10 +986,8 @@ impl CliFactory { let create_hmr_runner = if cli_options.has_hmr() { let watcher_communicator = self.watcher_communicator.clone().unwrap(); let emitter = self.emitter()?.clone(); - let cjs_tracker = self.cjs_tracker()?.clone(); let fn_: crate::worker::CreateHmrRunnerCb = Box::new(move |session| { Box::new(HmrRunner::new( - cjs_tracker.clone(), emitter.clone(), session, watcher_communicator.clone(), diff --git a/cli/file_fetcher.rs b/cli/file_fetcher.rs index 95d778f0bbc49f..640f83c35cbb98 100644 --- a/cli/file_fetcher.rs +++ b/cli/file_fetcher.rs @@ -164,8 +164,19 @@ fn get_validated_scheme( ) -> Result { let scheme = specifier.scheme(); if !SUPPORTED_SCHEMES.contains(&scheme) { + // NOTE(bartlomieju): this message list additional `npm` and `jsr` schemes, but they should actually be handled + // before `file_fetcher.rs` APIs are even hit. + let mut all_supported_schemes = SUPPORTED_SCHEMES.to_vec(); + all_supported_schemes.extend_from_slice(&["npm", "jsr"]); + all_supported_schemes.sort(); + let scheme_list = all_supported_schemes + .iter() + .map(|scheme| format!(" - \"{}\"", scheme)) + .collect::>() + .join("\n"); Err(generic_error(format!( - "Unsupported scheme \"{scheme}\" for module \"{specifier}\". Supported schemes: {SUPPORTED_SCHEMES:#?}" + "Unsupported scheme \"{scheme}\" for module \"{specifier}\". Supported schemes:\n{}", + scheme_list ))) } else { Ok(scheme.to_string()) diff --git a/cli/graph_util.rs b/cli/graph_util.rs index 46257cf785bab4..6ed0506dd70b30 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -13,16 +13,19 @@ use crate::colors; use crate::errors::get_error_class_name; use crate::file_fetcher::FileFetcher; use crate::npm::CliNpmResolver; -use crate::resolver::CliGraphResolver; +use crate::resolver::CjsTracker; +use crate::resolver::CliResolver; use crate::resolver::CliSloppyImportsResolver; use crate::resolver::SloppyImportsCachedFs; use crate::tools::check; use crate::tools::check::TypeChecker; use crate::util::file_watcher::WatcherCommunicator; use crate::util::fs::canonicalize_path; +use deno_config::deno_json::JsxImportSourceConfig; use deno_config::workspace::JsrPackageConfig; use deno_core::anyhow::bail; use deno_graph::source::LoaderChecksum; +use deno_graph::source::ResolutionMode; use deno_graph::FillFromLockfileOptions; use deno_graph::JsrLoadError; use deno_graph::ModuleLoadError; @@ -185,7 +188,7 @@ pub fn graph_exit_integrity_errors(graph: &ModuleGraph) { fn exit_for_integrity_error(err: &ModuleError) { if let Some(err_message) = enhanced_integrity_error_message(err) { log::error!("{} {}", colors::red("error:"), err_message); - std::process::exit(10); + deno_runtime::exit(10); } } @@ -379,6 +382,7 @@ pub struct BuildFastCheckGraphOptions<'a> { pub struct ModuleGraphBuilder { caches: Arc, + cjs_tracker: Arc, cli_options: Arc, file_fetcher: Arc, fs: Arc, @@ -389,7 +393,7 @@ pub struct ModuleGraphBuilder { module_info_cache: Arc, npm_resolver: Arc, parsed_source_cache: Arc, - resolver: Arc, + resolver: Arc, root_permissions_container: PermissionsContainer, } @@ -397,6 +401,7 @@ impl ModuleGraphBuilder { #[allow(clippy::too_many_arguments)] pub fn new( caches: Arc, + cjs_tracker: Arc, cli_options: Arc, file_fetcher: Arc, fs: Arc, @@ -407,11 +412,12 @@ impl ModuleGraphBuilder { module_info_cache: Arc, npm_resolver: Arc, parsed_source_cache: Arc, - resolver: Arc, + resolver: Arc, root_permissions_container: PermissionsContainer, ) -> Self { Self { caches, + cjs_tracker, cli_options, file_fetcher, fs, @@ -518,7 +524,7 @@ impl ModuleGraphBuilder { None => MutLoaderRef::Owned(self.create_graph_loader()), }; let cli_resolver = &self.resolver; - let graph_resolver = cli_resolver.as_graph_resolver(); + let graph_resolver = self.create_graph_resolver()?; let graph_npm_resolver = cli_resolver.create_graph_npm_resolver(); let maybe_file_watcher_reporter = self .maybe_file_watcher_reporter @@ -543,7 +549,7 @@ impl ModuleGraphBuilder { npm_resolver: Some(&graph_npm_resolver), module_analyzer: &analyzer, reporter: maybe_file_watcher_reporter, - resolver: Some(graph_resolver), + resolver: Some(&graph_resolver), locker: locker.as_mut().map(|l| l as _), }, ) @@ -666,7 +672,7 @@ impl ModuleGraphBuilder { }; let parser = self.parsed_source_cache.as_capturing_parser(); let cli_resolver = &self.resolver; - let graph_resolver = cli_resolver.as_graph_resolver(); + let graph_resolver = self.create_graph_resolver()?; let graph_npm_resolver = cli_resolver.create_graph_npm_resolver(); graph.build_fast_check_type_graph( @@ -675,7 +681,7 @@ impl ModuleGraphBuilder { fast_check_cache: fast_check_cache.as_ref().map(|c| c as _), fast_check_dts: false, jsr_url_provider: &CliJsrUrlProvider, - resolver: Some(graph_resolver), + resolver: Some(&graph_resolver), npm_resolver: Some(&graph_npm_resolver), workspace_fast_check: options.workspace_fast_check, }, @@ -739,6 +745,18 @@ impl ModuleGraphBuilder { }, ) } + + fn create_graph_resolver(&self) -> Result { + let jsx_import_source_config = self + .cli_options + .workspace() + .to_maybe_jsx_import_source_config()?; + Ok(CliGraphResolver { + cjs_tracker: &self.cjs_tracker, + resolver: &self.resolver, + jsx_import_source_config, + }) + } } /// Adds more explanatory information to a resolution error. @@ -1143,6 +1161,53 @@ fn format_deno_graph_error(err: &dyn Error) -> String { message } +#[derive(Debug)] +struct CliGraphResolver<'a> { + cjs_tracker: &'a CjsTracker, + resolver: &'a CliResolver, + jsx_import_source_config: Option, +} + +impl<'a> deno_graph::source::Resolver for CliGraphResolver<'a> { + fn default_jsx_import_source(&self) -> Option { + self + .jsx_import_source_config + .as_ref() + .and_then(|c| c.default_specifier.clone()) + } + + fn default_jsx_import_source_types(&self) -> Option { + self + .jsx_import_source_config + .as_ref() + .and_then(|c| c.default_types_specifier.clone()) + } + + fn jsx_import_source_module(&self) -> &str { + self + .jsx_import_source_config + .as_ref() + .map(|c| c.module.as_str()) + .unwrap_or(deno_graph::source::DEFAULT_JSX_IMPORT_SOURCE_MODULE) + } + + fn resolve( + &self, + raw_specifier: &str, + referrer_range: &deno_graph::Range, + mode: ResolutionMode, + ) -> Result { + self.resolver.resolve( + raw_specifier, + referrer_range, + self + .cjs_tracker + .get_referrer_kind(&referrer_range.specifier), + mode, + ) + } +} + #[cfg(test)] mod test { use std::sync::Arc; diff --git a/cli/js/40_jupyter.js b/cli/js/40_jupyter.js index ace50d6dccbc0e..198b6a350254eb 100644 --- a/cli/js/40_jupyter.js +++ b/cli/js/40_jupyter.js @@ -177,6 +177,52 @@ function isCanvasLike(obj) { return obj !== null && typeof obj === "object" && "toDataURL" in obj; } +function isJpg(obj) { + // Check if obj is a Uint8Array + if (!(obj instanceof Uint8Array)) { + return false; + } + + // JPG files start with the magic bytes FF D8 + if (obj.length < 2 || obj[0] !== 0xFF || obj[1] !== 0xD8) { + return false; + } + + // JPG files end with the magic bytes FF D9 + if ( + obj.length < 2 || obj[obj.length - 2] !== 0xFF || + obj[obj.length - 1] !== 0xD9 + ) { + return false; + } + + return true; +} + +function isPng(obj) { + // Check if obj is a Uint8Array + if (!(obj instanceof Uint8Array)) { + return false; + } + + // PNG files start with a specific 8-byte signature + const pngSignature = [137, 80, 78, 71, 13, 10, 26, 10]; + + // Check if the array is at least as long as the signature + if (obj.length < pngSignature.length) { + return false; + } + + // Check each byte of the signature + for (let i = 0; i < pngSignature.length; i++) { + if (obj[i] !== pngSignature[i]) { + return false; + } + } + + return true; +} + /** Possible HTML and SVG Elements */ function isSVGElementLike(obj) { return obj !== null && typeof obj === "object" && "outerHTML" in obj && @@ -233,6 +279,16 @@ async function format(obj) { if (isDataFrameLike(obj)) { return extractDataFrame(obj); } + if (isJpg(obj)) { + return { + "image/jpeg": core.ops.op_base64_encode(obj), + }; + } + if (isPng(obj)) { + return { + "image/png": core.ops.op_base64_encode(obj), + }; + } if (isSVGElementLike(obj)) { return { "image/svg+xml": obj.outerHTML, @@ -314,6 +370,28 @@ const html = createTaggedTemplateDisplayable("text/html"); */ const svg = createTaggedTemplateDisplayable("image/svg+xml"); +function image(obj) { + if (typeof obj === "string") { + try { + obj = Deno.readFileSync(obj); + } catch { + // pass + } + } + + if (isJpg(obj)) { + return makeDisplayable({ "image/jpeg": core.ops.op_base64_encode(obj) }); + } + + if (isPng(obj)) { + return makeDisplayable({ "image/png": core.ops.op_base64_encode(obj) }); + } + + throw new TypeError( + "Object is not a valid image or a path to an image. `Deno.jupyter.image` supports displaying JPG or PNG images.", + ); +} + function isMediaBundle(obj) { if (obj == null || typeof obj !== "object" || Array.isArray(obj)) { return false; @@ -465,6 +543,7 @@ function enableJupyter() { md, html, svg, + image, $display, }; } diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index 98215855c905e6..044b1573b9bb9d 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -10,6 +10,7 @@ use super::tsc; use super::urls::url_to_uri; use crate::args::jsr_url; +use crate::lsp::logging::lsp_warn; use crate::lsp::search::PackageSearchApi; use crate::tools::lint::CliLinter; use crate::util::path::relative_specifier; @@ -38,6 +39,7 @@ use deno_semver::package::PackageReq; use deno_semver::package::PackageReqReference; use deno_semver::Version; use import_map::ImportMap; +use node_resolver::NodeModuleKind; use once_cell::sync::Lazy; use regex::Regex; use std::borrow::Cow; @@ -342,9 +344,8 @@ impl<'a> TsResponseImportMapper<'a> { { let in_npm_pkg = self .resolver - .maybe_node_resolver(Some(&self.file_referrer)) - .map(|n| n.in_npm_package(specifier)) - .unwrap_or(false); + .in_npm_pkg_checker(Some(&self.file_referrer)) + .in_npm_package(specifier); if in_npm_pkg { if let Ok(Some(pkg_id)) = npm_resolver.resolve_pkg_id_from_specifier(specifier) @@ -466,6 +467,7 @@ impl<'a> TsResponseImportMapper<'a> { &self, specifier: &str, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, ) -> Option { let specifier_stem = specifier.strip_suffix(".js").unwrap_or(specifier); let specifiers = std::iter::once(Cow::Borrowed(specifier)).chain( @@ -476,7 +478,7 @@ impl<'a> TsResponseImportMapper<'a> { for specifier in specifiers { if let Some(specifier) = self .resolver - .as_graph_resolver(Some(&self.file_referrer)) + .as_cli_resolver(Some(&self.file_referrer)) .resolve( &specifier, &deno_graph::Range { @@ -484,6 +486,7 @@ impl<'a> TsResponseImportMapper<'a> { start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + referrer_kind, ResolutionMode::Types, ) .ok() @@ -506,10 +509,11 @@ impl<'a> TsResponseImportMapper<'a> { &self, specifier_text: &str, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, ) -> bool { self .resolver - .as_graph_resolver(Some(&self.file_referrer)) + .as_cli_resolver(Some(&self.file_referrer)) .resolve( specifier_text, &deno_graph::Range { @@ -517,6 +521,7 @@ impl<'a> TsResponseImportMapper<'a> { start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + referrer_kind, deno_graph::source::ResolutionMode::Types, ) .is_ok() @@ -585,6 +590,7 @@ fn try_reverse_map_package_json_exports( /// like an import and rewrite the import specifier to include the extension pub fn fix_ts_import_changes( referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, changes: &[tsc::FileTextChanges], language_server: &language_server::Inner, ) -> Result, AnyError> { @@ -601,8 +607,8 @@ pub fn fix_ts_import_changes( if let Some(captures) = IMPORT_SPECIFIER_RE.captures(line) { let specifier = captures.iter().skip(1).find_map(|s| s).unwrap().as_str(); - if let Some(new_specifier) = - import_mapper.check_unresolved_specifier(specifier, referrer) + if let Some(new_specifier) = import_mapper + .check_unresolved_specifier(specifier, referrer, referrer_kind) { line.replace(specifier, &new_specifier) } else { @@ -632,6 +638,7 @@ pub fn fix_ts_import_changes( /// resolution by Deno (includes the extension). fn fix_ts_import_action<'a>( referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, action: &'a tsc::CodeFixAction, language_server: &language_server::Inner, ) -> Option> { @@ -651,7 +658,7 @@ fn fix_ts_import_action<'a>( }; let import_mapper = language_server.get_ts_response_import_mapper(referrer); if let Some(new_specifier) = - import_mapper.check_unresolved_specifier(specifier, referrer) + import_mapper.check_unresolved_specifier(specifier, referrer, referrer_kind) { let description = action.description.replace(specifier, &new_specifier); let changes = action @@ -682,7 +689,7 @@ fn fix_ts_import_action<'a>( fix_id: None, fix_all_description: None, })) - } else if !import_mapper.is_valid_import(specifier, referrer) { + } else if !import_mapper.is_valid_import(specifier, referrer, referrer_kind) { None } else { Some(Cow::Borrowed(action)) @@ -747,8 +754,14 @@ pub fn ts_changes_to_edit( ) -> Result, AnyError> { let mut text_document_edits = Vec::new(); for change in changes { - let text_document_edit = change.to_text_document_edit(language_server)?; - text_document_edits.push(text_document_edit); + let edit = match change.to_text_document_edit(language_server) { + Ok(e) => e, + Err(err) => { + lsp_warn!("Couldn't covert text document edit: {:#}", err); + continue; + } + }; + text_document_edits.push(edit); } Ok(Some(lsp::WorkspaceEdit { changes: None, @@ -1010,6 +1023,7 @@ impl CodeActionCollection { pub fn add_ts_fix_action( &mut self, specifier: &ModuleSpecifier, + specifier_kind: NodeModuleKind, action: &tsc::CodeFixAction, diagnostic: &lsp::Diagnostic, language_server: &language_server::Inner, @@ -1027,7 +1041,8 @@ impl CodeActionCollection { "The action returned from TypeScript is unsupported.", )); } - let Some(action) = fix_ts_import_action(specifier, action, language_server) + let Some(action) = + fix_ts_import_action(specifier, specifier_kind, action, language_server) else { return Ok(()); }; @@ -1269,6 +1284,9 @@ impl CodeActionCollection { import_start_from_specifier(document, i) })?; let referrer = document.specifier(); + let referrer_kind = language_server + .is_cjs_resolver + .get_doc_module_kind(document); let file_referrer = document.file_referrer(); let config_data = language_server .config @@ -1291,10 +1309,11 @@ impl CodeActionCollection { if !config_data.byonm { return None; } - if !language_server - .resolver - .is_bare_package_json_dep(&dep_key, referrer) - { + if !language_server.resolver.is_bare_package_json_dep( + &dep_key, + referrer, + referrer_kind, + ) { return None; } NpmPackageReqReference::from_str(&format!("npm:{}", &dep_key)).ok()? @@ -1313,7 +1332,7 @@ impl CodeActionCollection { } if language_server .resolver - .npm_to_file_url(&npm_ref, document.specifier(), file_referrer) + .npm_to_file_url(&npm_ref, referrer, referrer_kind, file_referrer) .is_some() { // The package import has types. diff --git a/cli/lsp/completions.rs b/cli/lsp/completions.rs index 1590743b2b8f84..3ee8ae93e410f6 100644 --- a/cli/lsp/completions.rs +++ b/cli/lsp/completions.rs @@ -9,6 +9,7 @@ use super::jsr::CliJsrSearchApi; use super::lsp_custom; use super::npm::CliNpmSearchApi; use super::registries::ModuleRegistry; +use super::resolver::LspIsCjsResolver; use super::resolver::LspResolver; use super::search::PackageSearchApi; use super::tsc; @@ -35,6 +36,7 @@ use deno_semver::package::PackageNv; use import_map::ImportMap; use indexmap::IndexSet; use lsp_types::CompletionList; +use node_resolver::NodeModuleKind; use once_cell::sync::Lazy; use regex::Regex; use tower_lsp::lsp_types as lsp; @@ -159,15 +161,17 @@ pub async fn get_import_completions( jsr_search_api: &CliJsrSearchApi, npm_search_api: &CliNpmSearchApi, documents: &Documents, + is_cjs_resolver: &LspIsCjsResolver, resolver: &LspResolver, maybe_import_map: Option<&ImportMap>, ) -> Option { let document = documents.get(specifier)?; + let specifier_kind = is_cjs_resolver.get_doc_module_kind(&document); let file_referrer = document.file_referrer(); let (text, _, range) = document.get_maybe_dependency(position)?; let range = to_narrow_lsp_range(document.text_info(), &range); let resolved = resolver - .as_graph_resolver(file_referrer) + .as_cli_resolver(file_referrer) .resolve( &text, &Range { @@ -175,6 +179,7 @@ pub async fn get_import_completions( start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + specifier_kind, ResolutionMode::Execution, ) .ok(); @@ -201,7 +206,7 @@ pub async fn get_import_completions( // completions for import map specifiers Some(lsp::CompletionResponse::List(completion_list)) } else if let Some(completion_list) = - get_local_completions(specifier, &text, &range, resolver) + get_local_completions(specifier, specifier_kind, &text, &range, resolver) { // completions for local relative modules Some(lsp::CompletionResponse::List(completion_list)) @@ -355,24 +360,26 @@ fn get_import_map_completions( /// Return local completions that are relative to the base specifier. fn get_local_completions( - base: &ModuleSpecifier, + referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, text: &str, range: &lsp::Range, resolver: &LspResolver, ) -> Option { - if base.scheme() != "file" { + if referrer.scheme() != "file" { return None; } let parent = &text[..text.char_indices().rfind(|(_, c)| *c == '/')?.0 + 1]; let resolved_parent = resolver - .as_graph_resolver(Some(base)) + .as_cli_resolver(Some(referrer)) .resolve( parent, &Range { - specifier: base.clone(), + specifier: referrer.clone(), start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + referrer_kind, ResolutionMode::Execution, ) .ok()?; @@ -385,7 +392,7 @@ fn get_local_completions( let de = de.ok()?; let label = de.path().file_name()?.to_string_lossy().to_string(); let entry_specifier = resolve_path(de.path().to_str()?, &cwd).ok()?; - if entry_specifier == *base { + if entry_specifier == *referrer { return None; } let full_text = format!("{parent}{label}"); @@ -905,6 +912,7 @@ mod tests { ModuleSpecifier::from_file_path(file_c).expect("could not create"); let actual = get_local_completions( &specifier, + NodeModuleKind::Esm, "./", &lsp::Range { start: lsp::Position { diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index 34bf64446d0259..ea77e36bcfe1c1 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -4,6 +4,7 @@ use deno_ast::MediaType; use deno_config::deno_json::DenoJsonCache; use deno_config::deno_json::FmtConfig; use deno_config::deno_json::FmtOptionsConfig; +use deno_config::deno_json::JsxImportSourceConfig; use deno_config::deno_json::LintConfig; use deno_config::deno_json::NodeModulesDirMode; use deno_config::deno_json::TestConfig; @@ -1654,6 +1655,17 @@ impl ConfigData { self.member_dir.maybe_pkg_json() } + pub fn maybe_jsx_import_source_config( + &self, + ) -> Option { + self + .member_dir + .workspace + .to_maybe_jsx_import_source_config() + .ok() + .flatten() + } + pub fn scope_contains_specifier(&self, specifier: &ModuleSpecifier) -> bool { specifier.as_str().starts_with(self.scope.as_str()) || self diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs index 83c00d27edadea..e4fb82e58d5122 100644 --- a/cli/lsp/diagnostics.rs +++ b/cli/lsp/diagnostics.rs @@ -1707,6 +1707,7 @@ mod tests { documents: Arc::new(documents), assets: Default::default(), config: Arc::new(config), + is_cjs_resolver: Default::default(), resolver, }, ) diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index ce13c32157b119..cdc25f3ac32656 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -3,7 +3,10 @@ use super::cache::calculate_fs_version; use super::cache::LspCache; use super::config::Config; +use super::resolver::LspIsCjsResolver; use super::resolver::LspResolver; +use super::resolver::ScopeDepInfo; +use super::resolver::SingleReferrerGraphResolver; use super::testing::TestCollector; use super::testing::TestModule; use super::text::LineIndex; @@ -33,9 +36,9 @@ use deno_semver::npm::NpmPackageReqReference; use deno_semver::package::PackageReq; use indexmap::IndexMap; use indexmap::IndexSet; +use node_resolver::NodeModuleKind; use std::borrow::Cow; use std::collections::BTreeMap; -use std::collections::BTreeSet; use std::collections::HashMap; use std::collections::HashSet; use std::fs; @@ -293,6 +296,8 @@ pub struct Document { /// Contains the last-known-good set of dependencies from parsing the module. config: Arc, dependencies: Arc>, + /// If this is maybe a CJS script and maybe not an ES module. + is_script: Option, // TODO(nayeemrmn): This is unused, use it for scope attribution for remote // modules. file_referrer: Option, @@ -323,6 +328,7 @@ impl Document { maybe_lsp_version: Option, maybe_language_id: Option, maybe_headers: Option>, + is_cjs_resolver: &LspIsCjsResolver, resolver: Arc, config: Arc, cache: &Arc, @@ -342,6 +348,7 @@ impl Document { maybe_headers.as_ref(), media_type, file_referrer.as_ref(), + is_cjs_resolver, &resolver, ) } else { @@ -367,6 +374,7 @@ impl Document { file_referrer.as_ref(), ), file_referrer, + is_script: maybe_module.as_ref().map(|m| m.is_script), maybe_types_dependency, line_index, maybe_language_id, @@ -388,6 +396,7 @@ impl Document { fn with_new_config( &self, + is_cjs_resolver: &LspIsCjsResolver, resolver: Arc, config: Arc, ) -> Arc { @@ -399,6 +408,7 @@ impl Document { let dependencies; let maybe_types_dependency; let maybe_parsed_source; + let is_script; let maybe_test_module_fut; if media_type != self.media_type { let parsed_source_result = @@ -408,6 +418,7 @@ impl Document { &parsed_source_result, self.maybe_headers.as_ref(), self.file_referrer.as_ref(), + is_cjs_resolver, &resolver, ) .ok(); @@ -415,6 +426,7 @@ impl Document { .as_ref() .map(|m| Arc::new(m.dependencies.clone())) .unwrap_or_default(); + is_script = maybe_module.as_ref().map(|m| m.is_script); maybe_types_dependency = maybe_module .as_ref() .and_then(|m| Some(Arc::new(m.maybe_types_dependency.clone()?))); @@ -422,10 +434,19 @@ impl Document { maybe_test_module_fut = get_maybe_test_module_fut(maybe_parsed_source.as_ref(), &config); } else { - let graph_resolver = - resolver.as_graph_resolver(self.file_referrer.as_ref()); + let cli_resolver = resolver.as_cli_resolver(self.file_referrer.as_ref()); let npm_resolver = resolver.create_graph_npm_resolver(self.file_referrer.as_ref()); + let config_data = resolver.as_config_data(self.file_referrer.as_ref()); + let jsx_import_source_config = + config_data.and_then(|d| d.maybe_jsx_import_source_config()); + let resolver = SingleReferrerGraphResolver { + valid_referrer: &self.specifier, + referrer_kind: is_cjs_resolver + .get_lsp_referrer_kind(&self.specifier, self.is_script), + cli_resolver, + jsx_import_source_config: jsx_import_source_config.as_ref(), + }; dependencies = Arc::new( self .dependencies @@ -436,7 +457,7 @@ impl Document { d.with_new_resolver( s, &CliJsrUrlProvider, - Some(graph_resolver), + Some(&resolver), Some(&npm_resolver), ), ) @@ -446,10 +467,11 @@ impl Document { maybe_types_dependency = self.maybe_types_dependency.as_ref().map(|d| { Arc::new(d.with_new_resolver( &CliJsrUrlProvider, - Some(graph_resolver), + Some(&resolver), Some(&npm_resolver), )) }); + is_script = self.is_script; maybe_parsed_source = self.maybe_parsed_source().cloned(); maybe_test_module_fut = self .maybe_test_module_fut @@ -461,6 +483,7 @@ impl Document { // updated properties dependencies, file_referrer: self.file_referrer.clone(), + is_script, maybe_types_dependency, maybe_navigation_tree: Mutex::new(None), // maintain - this should all be copies/clones @@ -485,6 +508,7 @@ impl Document { fn with_change( &self, + is_cjs_resolver: &LspIsCjsResolver, version: i32, changes: Vec, ) -> Result, AnyError> { @@ -518,6 +542,7 @@ impl Document { self.maybe_headers.as_ref(), media_type, self.file_referrer.as_ref(), + is_cjs_resolver, self.resolver.as_ref(), ) } else { @@ -541,6 +566,7 @@ impl Document { get_maybe_test_module_fut(maybe_parsed_source.as_ref(), &self.config); Ok(Arc::new(Self { config: self.config.clone(), + is_script: maybe_module.as_ref().map(|m| m.is_script), specifier: self.specifier.clone(), file_referrer: self.file_referrer.clone(), maybe_fs_version: self.maybe_fs_version.clone(), @@ -575,6 +601,7 @@ impl Document { ), maybe_language_id: self.maybe_language_id, dependencies: self.dependencies.clone(), + is_script: self.is_script, maybe_types_dependency: self.maybe_types_dependency.clone(), text: self.text.clone(), text_info_cell: once_cell::sync::OnceCell::new(), @@ -602,6 +629,7 @@ impl Document { ), maybe_language_id: self.maybe_language_id, dependencies: self.dependencies.clone(), + is_script: self.is_script, maybe_types_dependency: self.maybe_types_dependency.clone(), text: self.text.clone(), text_info_cell: once_cell::sync::OnceCell::new(), @@ -650,6 +678,13 @@ impl Document { }) } + /// If this is maybe a CJS script and maybe not an ES module. + /// + /// Use `LspIsCjsResolver` to determine for sure. + pub fn is_script(&self) -> Option { + self.is_script + } + pub fn line_index(&self) -> Arc { self.line_index.clone() } @@ -797,6 +832,7 @@ impl FileSystemDocuments { pub fn get( &self, specifier: &ModuleSpecifier, + is_cjs_resolver: &LspIsCjsResolver, resolver: &Arc, config: &Arc, cache: &Arc, @@ -820,7 +856,14 @@ impl FileSystemDocuments { }; if dirty { // attempt to update the file on the file system - self.refresh_document(specifier, resolver, config, cache, file_referrer) + self.refresh_document( + specifier, + is_cjs_resolver, + resolver, + config, + cache, + file_referrer, + ) } else { old_doc } @@ -831,6 +874,7 @@ impl FileSystemDocuments { fn refresh_document( &self, specifier: &ModuleSpecifier, + is_cjs_resolver: &LspIsCjsResolver, resolver: &Arc, config: &Arc, cache: &Arc, @@ -839,14 +883,20 @@ impl FileSystemDocuments { let doc = if specifier.scheme() == "file" { let path = url_to_file_path(specifier).ok()?; let bytes = fs::read(path).ok()?; - let content = - deno_graph::source::decode_owned_source(specifier, bytes, None).ok()?; + let content = bytes_to_content( + specifier, + MediaType::from_specifier(specifier), + bytes, + None, + ) + .ok()?; Document::new( specifier.clone(), content.into(), None, None, None, + is_cjs_resolver, resolver.clone(), config.clone(), cache, @@ -863,6 +913,7 @@ impl FileSystemDocuments { None, None, None, + is_cjs_resolver, resolver.clone(), config.clone(), cache, @@ -877,19 +928,25 @@ impl FileSystemDocuments { specifier, Some(&cached_file.metadata.headers), ); - let content = deno_graph::source::decode_owned_source( + let media_type = resolve_media_type( + specifier, + Some(&cached_file.metadata.headers), + None, + ); + let content = bytes_to_content( specifier, + media_type, cached_file.content, maybe_charset, ) .ok()?; - let maybe_headers = Some(cached_file.metadata.headers); Document::new( specifier.clone(), content.into(), None, None, - maybe_headers, + Some(cached_file.metadata.headers), + is_cjs_resolver, resolver.clone(), config.clone(), cache, @@ -930,6 +987,11 @@ pub struct Documents { /// The DENO_DIR that the documents looks for non-file based modules. cache: Arc, config: Arc, + /// Resolver for detecting if a document is CJS or ESM. + is_cjs_resolver: Arc, + /// A resolver that takes into account currently loaded import map and JSX + /// settings. + resolver: Arc, /// A flag that indicates that stated data is potentially invalid and needs to /// be recalculated before being considered valid. dirty: bool, @@ -937,15 +999,7 @@ pub struct Documents { open_docs: HashMap>, /// Documents stored on the file system. file_system_docs: Arc, - /// A resolver that takes into account currently loaded import map and JSX - /// settings. - resolver: Arc, - /// The npm package requirements found in npm specifiers. - npm_reqs_by_scope: - Arc, BTreeSet>>, - /// Config scopes that contain a node: specifier such that a @types/node - /// package should be injected. - scopes_with_node_specifier: Arc>>, + dep_info_by_scope: Arc, Arc>>, } impl Documents { @@ -970,6 +1024,7 @@ impl Documents { // the cache for remote modules here in order to get the // x-typescript-types? None, + &self.is_cjs_resolver, self.resolver.clone(), self.config.clone(), &self.cache, @@ -1004,7 +1059,7 @@ impl Documents { )) })?; self.dirty = true; - let doc = doc.with_change(version, changes)?; + let doc = doc.with_change(&self.is_cjs_resolver, version, changes)?; self.open_docs.insert(doc.specifier().clone(), doc.clone()); Ok(doc) } @@ -1107,17 +1162,20 @@ impl Documents { false } - pub fn npm_reqs_by_scope( + pub fn dep_info_by_scope( &mut self, - ) -> Arc, BTreeSet>> { - self.calculate_npm_reqs_if_dirty(); - self.npm_reqs_by_scope.clone() + ) -> Arc, Arc>> { + self.calculate_dep_info_if_dirty(); + self.dep_info_by_scope.clone() } - pub fn scopes_with_node_specifier( - &self, - ) -> &Arc>> { - &self.scopes_with_node_specifier + pub fn scopes_with_node_specifier(&self) -> HashSet> { + self + .dep_info_by_scope + .iter() + .filter(|(_, i)| i.has_node_specifier) + .map(|(s, _)| s.clone()) + .collect::>() } /// Return a document for the specifier. @@ -1133,6 +1191,7 @@ impl Documents { if let Some(old_doc) = old_doc { self.file_system_docs.get( specifier, + &self.is_cjs_resolver, &self.resolver, &self.config, &self.cache, @@ -1157,6 +1216,7 @@ impl Documents { } else { self.file_system_docs.get( &specifier, + &self.is_cjs_resolver, &self.resolver, &self.config, &self.cache, @@ -1215,12 +1275,15 @@ impl Documents { referrer: &ModuleSpecifier, file_referrer: Option<&ModuleSpecifier>, ) -> Vec> { - let document = self.get(referrer); - let file_referrer = document + let referrer_doc = self.get(referrer); + let file_referrer = referrer_doc .as_ref() .and_then(|d| d.file_referrer()) .or(file_referrer); - let dependencies = document.as_ref().map(|d| d.dependencies()); + let dependencies = referrer_doc.as_ref().map(|d| d.dependencies()); + let referrer_kind = self + .is_cjs_resolver + .get_maybe_doc_module_kind(referrer, referrer_doc.as_deref()); let mut results = Vec::new(); for raw_specifier in raw_specifiers { if raw_specifier.starts_with("asset:") { @@ -1237,31 +1300,35 @@ impl Documents { results.push(self.resolve_dependency( specifier, referrer, + referrer_kind, file_referrer, )); } else if let Some(specifier) = dep.maybe_code.maybe_specifier() { results.push(self.resolve_dependency( specifier, referrer, + referrer_kind, file_referrer, )); } else { results.push(None); } } else if let Ok(specifier) = - self.resolver.as_graph_resolver(file_referrer).resolve( + self.resolver.as_cli_resolver(file_referrer).resolve( raw_specifier, &deno_graph::Range { specifier: referrer.clone(), start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + referrer_kind, ResolutionMode::Types, ) { results.push(self.resolve_dependency( &specifier, referrer, + referrer_kind, file_referrer, )); } else { @@ -1280,7 +1347,11 @@ impl Documents { ) { self.config = Arc::new(config.clone()); self.cache = Arc::new(cache.clone()); + self.is_cjs_resolver = Arc::new(LspIsCjsResolver::new(cache)); self.resolver = resolver.clone(); + + node_resolver::PackageJsonThreadLocalCache::clear(); + { let fs_docs = &self.file_system_docs; // Clean up non-existent documents. @@ -1300,14 +1371,21 @@ impl Documents { if !config.specifier_enabled(doc.specifier()) { continue; } - *doc = doc.with_new_config(self.resolver.clone(), self.config.clone()); + *doc = doc.with_new_config( + &self.is_cjs_resolver, + self.resolver.clone(), + self.config.clone(), + ); } for mut doc in self.file_system_docs.docs.iter_mut() { if !config.specifier_enabled(doc.specifier()) { continue; } - *doc.value_mut() = - doc.with_new_config(self.resolver.clone(), self.config.clone()); + *doc.value_mut() = doc.with_new_config( + &self.is_cjs_resolver, + self.resolver.clone(), + self.config.clone(), + ); } self.open_docs = open_docs; let mut preload_count = 0; @@ -1324,6 +1402,7 @@ impl Documents { { fs_docs.refresh_document( specifier, + &self.is_cjs_resolver, &self.resolver, &self.config, &self.cache, @@ -1339,34 +1418,46 @@ impl Documents { /// Iterate through the documents, building a map where the key is a unique /// document and the value is a set of specifiers that depend on that /// document. - fn calculate_npm_reqs_if_dirty(&mut self) { - let mut npm_reqs_by_scope: BTreeMap<_, BTreeSet<_>> = Default::default(); - let mut scopes_with_specifier = HashSet::new(); + fn calculate_dep_info_if_dirty(&mut self) { + let mut dep_info_by_scope: BTreeMap<_, ScopeDepInfo> = Default::default(); let is_fs_docs_dirty = self.file_system_docs.set_dirty(false); if !is_fs_docs_dirty && !self.dirty { return; } let mut visit_doc = |doc: &Arc| { let scope = doc.scope(); - let reqs = npm_reqs_by_scope.entry(scope.cloned()).or_default(); + let dep_info = dep_info_by_scope.entry(scope.cloned()).or_default(); for dependency in doc.dependencies().values() { - if let Some(dep) = dependency.get_code() { + let code_specifier = dependency.get_code(); + let type_specifier = dependency.get_type(); + if let Some(dep) = code_specifier { if dep.scheme() == "node" { - scopes_with_specifier.insert(scope.cloned()); + dep_info.has_node_specifier = true; } if let Ok(reference) = NpmPackageReqReference::from_specifier(dep) { - reqs.insert(reference.into_inner().req); + dep_info.npm_reqs.insert(reference.into_inner().req); } } - if let Some(dep) = dependency.get_type() { + if let Some(dep) = type_specifier { if let Ok(reference) = NpmPackageReqReference::from_specifier(dep) { - reqs.insert(reference.into_inner().req); + dep_info.npm_reqs.insert(reference.into_inner().req); + } + } + if dependency.maybe_deno_types_specifier.is_some() { + if let (Some(code_specifier), Some(type_specifier)) = + (code_specifier, type_specifier) + { + if MediaType::from_specifier(type_specifier).is_declaration() { + dep_info + .deno_types_to_code_resolutions + .insert(type_specifier.clone(), code_specifier.clone()); + } } } } if let Some(dep) = doc.maybe_types_dependency().maybe_specifier() { if let Ok(reference) = NpmPackageReqReference::from_specifier(dep) { - reqs.insert(reference.into_inner().req); + dep_info.npm_reqs.insert(reference.into_inner().req); } } }; @@ -1377,14 +1468,49 @@ impl Documents { visit_doc(doc); } - // fill the reqs from the lockfile for (scope, config_data) in self.config.tree.data_by_scope().as_ref() { + let dep_info = dep_info_by_scope.entry(Some(scope.clone())).or_default(); + (|| { + let config_file = config_data.maybe_deno_json()?; + let jsx_config = + config_file.to_maybe_jsx_import_source_config().ok()??; + let type_specifier = jsx_config.default_types_specifier.as_ref()?; + let code_specifier = jsx_config.default_specifier.as_ref()?; + let cli_resolver = self.resolver.as_cli_resolver(Some(scope)); + let range = deno_graph::Range { + specifier: jsx_config.base_url.clone(), + start: deno_graph::Position::zeroed(), + end: deno_graph::Position::zeroed(), + }; + let type_specifier = cli_resolver + .resolve( + type_specifier, + &range, + // todo(dsherret): this is wrong because it doesn't consider CJS referrers + deno_package_json::NodeModuleKind::Esm, + ResolutionMode::Types, + ) + .ok()?; + let code_specifier = cli_resolver + .resolve( + code_specifier, + &range, + // todo(dsherret): this is wrong because it doesn't consider CJS referrers + deno_package_json::NodeModuleKind::Esm, + ResolutionMode::Execution, + ) + .ok()?; + dep_info + .deno_types_to_code_resolutions + .insert(type_specifier, code_specifier); + Some(()) + })(); + // fill the reqs from the lockfile if let Some(lockfile) = config_data.lockfile.as_ref() { - let reqs = npm_reqs_by_scope.entry(Some(scope.clone())).or_default(); let lockfile = lockfile.lock(); for dep_req in lockfile.content.packages.specifiers.keys() { if dep_req.kind == deno_semver::package::PackageKind::Npm { - reqs.insert(dep_req.req.clone()); + dep_info.npm_reqs.insert(dep_req.req.clone()); } } } @@ -1393,15 +1519,22 @@ impl Documents { // Ensure a @types/node package exists when any module uses a node: specifier. // Unlike on the command line, here we just add @types/node to the npm package // requirements since this won't end up in the lockfile. - for scope in &scopes_with_specifier { - let reqs = npm_reqs_by_scope.entry(scope.clone()).or_default(); - if !reqs.iter().any(|r| r.name == "@types/node") { - reqs.insert(PackageReq::from_str("@types/node").unwrap()); + for dep_info in dep_info_by_scope.values_mut() { + if dep_info.has_node_specifier + && !dep_info.npm_reqs.iter().any(|r| r.name == "@types/node") + { + dep_info + .npm_reqs + .insert(PackageReq::from_str("@types/node").unwrap()); } } - self.npm_reqs_by_scope = Arc::new(npm_reqs_by_scope); - self.scopes_with_node_specifier = Arc::new(scopes_with_specifier); + self.dep_info_by_scope = Arc::new( + dep_info_by_scope + .into_iter() + .map(|(s, i)| (s, Arc::new(i))) + .collect(), + ); self.dirty = false; } @@ -1409,6 +1542,7 @@ impl Documents { &self, specifier: &ModuleSpecifier, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, file_referrer: Option<&ModuleSpecifier>, ) -> Option<(ModuleSpecifier, MediaType)> { if let Some(module_name) = specifier.as_str().strip_prefix("node:") { @@ -1422,10 +1556,12 @@ impl Documents { let mut specifier = specifier.clone(); let mut media_type = None; if let Ok(npm_ref) = NpmPackageReqReference::from_specifier(&specifier) { - let (s, mt) = - self - .resolver - .npm_to_file_url(&npm_ref, referrer, file_referrer)?; + let (s, mt) = self.resolver.npm_to_file_url( + &npm_ref, + referrer, + referrer_kind, + file_referrer, + )?; specifier = s; media_type = Some(mt); } @@ -1435,7 +1571,8 @@ impl Documents { return Some((specifier, media_type)); }; if let Some(types) = doc.maybe_types_dependency().maybe_specifier() { - self.resolve_dependency(types, &specifier, file_referrer) + let specifier_kind = self.is_cjs_resolver.get_doc_module_kind(&doc); + self.resolve_dependency(types, &specifier, specifier_kind, file_referrer) } else { Some((doc.specifier().clone(), doc.media_type())) } @@ -1503,6 +1640,7 @@ fn parse_and_analyze_module( maybe_headers: Option<&HashMap>, media_type: MediaType, file_referrer: Option<&ModuleSpecifier>, + is_cjs_resolver: &LspIsCjsResolver, resolver: &LspResolver, ) -> (Option, Option) { let parsed_source_result = parse_source(specifier.clone(), text, media_type); @@ -1511,6 +1649,7 @@ fn parse_and_analyze_module( &parsed_source_result, maybe_headers, file_referrer, + is_cjs_resolver, resolver, ); (Some(parsed_source_result), Some(module_result)) @@ -1536,11 +1675,26 @@ fn analyze_module( parsed_source_result: &ParsedSourceResult, maybe_headers: Option<&HashMap>, file_referrer: Option<&ModuleSpecifier>, + is_cjs_resolver: &LspIsCjsResolver, resolver: &LspResolver, ) -> ModuleResult { match parsed_source_result { Ok(parsed_source) => { let npm_resolver = resolver.create_graph_npm_resolver(file_referrer); + let cli_resolver = resolver.as_cli_resolver(file_referrer); + let config_data = resolver.as_config_data(file_referrer); + let valid_referrer = specifier.clone(); + let jsx_import_source_config = + config_data.and_then(|d| d.maybe_jsx_import_source_config()); + let resolver = SingleReferrerGraphResolver { + valid_referrer: &valid_referrer, + referrer_kind: is_cjs_resolver.get_lsp_referrer_kind( + &specifier, + Some(parsed_source.compute_is_script()), + ), + cli_resolver, + jsx_import_source_config: jsx_import_source_config.as_ref(), + }; Ok(deno_graph::parse_module_from_ast( deno_graph::ParseModuleFromAstOptions { graph_kind: deno_graph::GraphKind::TypesOnly, @@ -1551,7 +1705,7 @@ fn analyze_module( // dynamic imports like import(`./dir/${something}`) in the LSP file_system: &deno_graph::source::NullFileSystem, jsr_url_provider: &CliJsrUrlProvider, - maybe_resolver: Some(resolver.as_graph_resolver(file_referrer)), + maybe_resolver: Some(&resolver), maybe_npm_resolver: Some(&npm_resolver), }, )) @@ -1562,6 +1716,24 @@ fn analyze_module( } } +fn bytes_to_content( + specifier: &ModuleSpecifier, + media_type: MediaType, + bytes: Vec, + maybe_charset: Option<&str>, +) -> Result { + if media_type == MediaType::Wasm { + // we use the dts representation for Wasm modules + Ok(deno_graph::source::wasm::wasm_module_to_dts(&bytes)?) + } else { + Ok(deno_graph::source::decode_owned_source( + specifier, + bytes, + maybe_charset, + )?) + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 2554fa34b1853f..cbe194e14e6950 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -22,6 +22,7 @@ use deno_semver::jsr::JsrPackageReqReference; use indexmap::Equivalent; use indexmap::IndexSet; use log::error; +use node_resolver::NodeModuleKind; use serde::Deserialize; use serde_json::from_value; use std::collections::BTreeMap; @@ -77,6 +78,7 @@ use super::parent_process_checker; use super::performance::Performance; use super::refactor; use super::registries::ModuleRegistry; +use super::resolver::LspIsCjsResolver; use super::resolver::LspResolver; use super::testing; use super::text; @@ -144,6 +146,7 @@ pub struct StateSnapshot { pub project_version: usize, pub assets: AssetsSnapshot, pub config: Arc, + pub is_cjs_resolver: Arc, pub documents: Arc, pub resolver: Arc, } @@ -203,6 +206,7 @@ pub struct Inner { pub documents: Documents, http_client_provider: Arc, initial_cwd: PathBuf, + pub is_cjs_resolver: Arc, jsr_search_api: CliJsrSearchApi, /// Handles module registries, which allow discovery of modules module_registry: ModuleRegistry, @@ -480,6 +484,7 @@ impl Inner { let initial_cwd = std::env::current_dir().unwrap_or_else(|_| { panic!("Could not resolve current working directory") }); + let is_cjs_resolver = Arc::new(LspIsCjsResolver::new(&cache)); Self { assets, @@ -491,6 +496,7 @@ impl Inner { documents, http_client_provider, initial_cwd: initial_cwd.clone(), + is_cjs_resolver, jsr_search_api, project_version: 0, task_queue: Default::default(), @@ -601,6 +607,7 @@ impl Inner { project_version: self.project_version, assets: self.assets.snapshot(), config: Arc::new(self.config.clone()), + is_cjs_resolver: self.is_cjs_resolver.clone(), documents: Arc::new(self.documents.clone()), resolver: self.resolver.snapshot(), }) @@ -622,6 +629,7 @@ impl Inner { } }); self.cache = LspCache::new(global_cache_url); + self.is_cjs_resolver = Arc::new(LspIsCjsResolver::new(&self.cache)); let deno_dir = self.cache.deno_dir(); let workspace_settings = self.config.workspace_settings(); let maybe_root_path = self @@ -982,7 +990,7 @@ impl Inner { spawn(async move { let specifier = { let inner = ls.inner.read().await; - let resolver = inner.resolver.as_graph_resolver(Some(&referrer)); + let resolver = inner.resolver.as_cli_resolver(Some(&referrer)); let Ok(specifier) = resolver.resolve( &specifier, &deno_graph::Range { @@ -990,6 +998,7 @@ impl Inner { start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + NodeModuleKind::Esm, deno_graph::source::ResolutionMode::Types, ) else { return; @@ -1027,7 +1036,7 @@ impl Inner { // refresh the npm specifiers because it might have discovered // a @types/node package and now's a good time to do that anyway - self.refresh_npm_specifiers().await; + self.refresh_dep_info().await; self.project_changed([], true); } @@ -1073,7 +1082,7 @@ impl Inner { ); if document.is_diagnosable() { self.project_changed([(document.specifier(), ChangeKind::Opened)], false); - self.refresh_npm_specifiers().await; + self.refresh_dep_info().await; self.diagnostics_server.invalidate(&[specifier]); self.send_diagnostics_update(); self.send_testing_update(); @@ -1094,8 +1103,8 @@ impl Inner { Ok(document) => { if document.is_diagnosable() { let old_scopes_with_node_specifier = - self.documents.scopes_with_node_specifier().clone(); - self.refresh_npm_specifiers().await; + self.documents.scopes_with_node_specifier(); + self.refresh_dep_info().await; let mut config_changed = false; if !self .documents @@ -1146,13 +1155,15 @@ impl Inner { })); } - async fn refresh_npm_specifiers(&mut self) { - let package_reqs = self.documents.npm_reqs_by_scope(); + async fn refresh_dep_info(&mut self) { + let dep_info_by_scope = self.documents.dep_info_by_scope(); let resolver = self.resolver.clone(); // spawn due to the lsp's `Send` requirement - spawn(async move { resolver.set_npm_reqs(&package_reqs).await }) - .await - .ok(); + spawn( + async move { resolver.set_dep_info_by_scope(&dep_info_by_scope).await }, + ) + .await + .ok(); } async fn did_close(&mut self, params: DidCloseTextDocumentParams) { @@ -1171,7 +1182,7 @@ impl Inner { .uri_to_specifier(¶ms.text_document.uri, LspUrlKind::File); self.diagnostics_state.clear(&specifier); if self.is_diagnosable(&specifier) { - self.refresh_npm_specifiers().await; + self.refresh_dep_info().await; self.diagnostics_server.invalidate(&[specifier.clone()]); self.send_diagnostics_update(); self.send_testing_update(); @@ -1385,13 +1396,18 @@ impl Inner { .fmt_config_for_specifier(&specifier) .options .clone(); - fmt_options.use_tabs = Some(!params.options.insert_spaces); - fmt_options.indent_width = Some(params.options.tab_size as u8); let config_data = self.config.tree.data_for_specifier(&specifier); + if !config_data.is_some_and(|d| d.maybe_deno_json().is_some()) { + fmt_options.use_tabs = Some(!params.options.insert_spaces); + fmt_options.indent_width = Some(params.options.tab_size as u8); + } let unstable_options = UnstableFmtOptions { component: config_data .map(|d| d.unstable.contains("fmt-component")) .unwrap_or(false), + sql: config_data + .map(|d| d.unstable.contains("fmt-sql")) + .unwrap_or(false), }; let document = document.clone(); move || { @@ -1622,6 +1638,10 @@ impl Inner { let file_diagnostics = self .diagnostics_server .get_ts_diagnostics(&specifier, asset_or_doc.document_lsp_version()); + let specifier_kind = asset_or_doc + .document() + .map(|d| self.is_cjs_resolver.get_doc_module_kind(d)) + .unwrap_or(NodeModuleKind::Esm); let mut includes_no_cache = false; for diagnostic in &fixable_diagnostics { match diagnostic.source.as_deref() { @@ -1660,7 +1680,13 @@ impl Inner { .await; for action in actions { code_actions - .add_ts_fix_action(&specifier, &action, diagnostic, self) + .add_ts_fix_action( + &specifier, + specifier_kind, + &action, + diagnostic, + self, + ) .map_err(|err| { error!("Unable to convert fix: {:#}", err); LspError::internal_error() @@ -1806,10 +1832,9 @@ impl Inner { error!("Unable to decode code action data: {:#}", err); LspError::invalid_params("The CodeAction's data is invalid.") })?; - let scope = self - .get_asset_or_document(&code_action_data.specifier) - .ok() - .and_then(|d| d.scope().cloned()); + let maybe_asset_or_doc = + self.get_asset_or_document(&code_action_data.specifier).ok(); + let scope = maybe_asset_or_doc.as_ref().and_then(|d| d.scope().cloned()); let combined_code_actions = self .ts_server .get_combined_code_fix( @@ -1836,6 +1861,11 @@ impl Inner { let changes = if code_action_data.fix_id == "fixMissingImport" { fix_ts_import_changes( &code_action_data.specifier, + maybe_asset_or_doc + .as_ref() + .and_then(|d| d.document()) + .map(|d| self.is_cjs_resolver.get_doc_module_kind(d)) + .unwrap_or(NodeModuleKind::Esm), &combined_code_actions.changes, self, ) @@ -1889,6 +1919,10 @@ impl Inner { if kind_suffix == ".rewrite.function.returnType" { refactor_edit_info.edits = fix_ts_import_changes( &action_data.specifier, + asset_or_doc + .document() + .map(|d| self.is_cjs_resolver.get_doc_module_kind(d)) + .unwrap_or(NodeModuleKind::Esm), &refactor_edit_info.edits, self, ) @@ -2238,6 +2272,7 @@ impl Inner { &self.jsr_search_api, &self.npm_search_api, &self.documents, + &self.is_cjs_resolver, self.resolver.as_ref(), self .config @@ -3572,15 +3607,16 @@ impl Inner { if byonm { roots.retain(|s| s.scheme() != "npm"); - } else if let Some(npm_reqs) = self + } else if let Some(dep_info) = self .documents - .npm_reqs_by_scope() + .dep_info_by_scope() .get(&config_data.map(|d| d.scope.as_ref().clone())) { // always include the npm packages since resolution of one npm package // might affect the resolution of other npm packages roots.extend( - npm_reqs + dep_info + .npm_reqs .iter() .map(|req| ModuleSpecifier::parse(&format!("npm:{}", req)).unwrap()), ); @@ -3601,9 +3637,8 @@ impl Inner { deno_json_cache: None, pkg_json_cache: None, workspace_cache: None, - config_parse_options: deno_config::deno_json::ConfigParseOptions { - include_task_comments: false, - }, + config_parse_options: + deno_config::deno_json::ConfigParseOptions::default(), additional_config_file_names: &[], discover_pkg_json: !has_flag_env_var("DENO_NO_PACKAGE_JSON"), maybe_vendor_override: if force_global_cache { @@ -3658,7 +3693,7 @@ impl Inner { async fn post_cache(&mut self) { self.resolver.did_cache(); - self.refresh_npm_specifiers().await; + self.refresh_dep_info().await; self.diagnostics_server.invalidate_all(); self.project_changed([], true); self.ts_server.cleanup_semantic_cache(self.snapshot()).await; diff --git a/cli/lsp/parent_process_checker.rs b/cli/lsp/parent_process_checker.rs index e5b2b2f23115fd..b8a42cd1a4deb9 100644 --- a/cli/lsp/parent_process_checker.rs +++ b/cli/lsp/parent_process_checker.rs @@ -11,7 +11,7 @@ pub fn start(parent_process_id: u32) { std::thread::sleep(Duration::from_secs(10)); if !is_process_active(parent_process_id) { - std::process::exit(1); + deno_runtime::exit(1); } }); } diff --git a/cli/lsp/repl.rs b/cli/lsp/repl.rs index fa5809045ed954..b4aaa8cd0d0594 100644 --- a/cli/lsp/repl.rs +++ b/cli/lsp/repl.rs @@ -263,7 +263,7 @@ impl ReplLanguageServer { } fn get_document_uri(&self) -> Uri { - uri_parse_unencoded(self.cwd_uri.join("$deno$repl.ts").unwrap().as_str()) + uri_parse_unencoded(self.cwd_uri.join("$deno$repl.mts").unwrap().as_str()) .unwrap() } } diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs index f5df24d575b925..4ede799227204f 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -2,17 +2,23 @@ use dashmap::DashMap; use deno_ast::MediaType; -use deno_ast::ParsedSource; use deno_cache_dir::npm::NpmCacheDir; use deno_cache_dir::HttpCache; +use deno_config::deno_json::JsxImportSourceConfig; use deno_config::workspace::PackageJsonDepResolution; use deno_config::workspace::WorkspaceResolver; +use deno_core::parking_lot::Mutex; use deno_core::url::Url; -use deno_graph::source::Resolver; +use deno_graph::source::ResolutionMode; use deno_graph::GraphImport; use deno_graph::ModuleSpecifier; +use deno_graph::Range; use deno_npm::NpmSystemInfo; +use deno_path_util::url_from_directory_path; use deno_path_util::url_to_file_path; +use deno_resolver::npm::NpmReqResolverOptions; +use deno_resolver::DenoResolverOptions; +use deno_resolver::NodeAndNpmReqResolver; use deno_runtime::deno_fs; use deno_runtime::deno_node::NodeResolver; use deno_runtime::deno_node::PackageJson; @@ -24,6 +30,7 @@ use deno_semver::package::PackageReq; use indexmap::IndexMap; use node_resolver::errors::ClosestPkgJsonError; use node_resolver::InNpmPackageChecker; +use node_resolver::NodeModuleKind; use node_resolver::NodeResolutionMode; use std::borrow::Cow; use std::collections::BTreeMap; @@ -33,12 +40,14 @@ use std::collections::HashSet; use std::sync::Arc; use super::cache::LspCache; +use super::documents::Document; use super::jsr::JsrCacheResolver; use crate::args::create_default_npmrc; use crate::args::CacheSetting; use crate::args::CliLockfile; use crate::args::NpmInstallDepsProvider; use crate::cache::DenoCacheEnvFsAdapter; +use crate::factory::Deferred; use crate::graph_util::CliJsrUrlProvider; use crate::http_util::HttpClientProvider; use crate::lsp::config::Config; @@ -53,42 +62,48 @@ use crate::npm::CliNpmResolverCreateOptions; use crate::npm::CliNpmResolverManagedSnapshotOption; use crate::npm::CreateInNpmPkgCheckerOptions; use crate::npm::ManagedCliNpmResolver; -use crate::resolver::CjsTracker; -use crate::resolver::CjsTrackerOptions; +use crate::resolver::CliDenoResolver; use crate::resolver::CliDenoResolverFs; -use crate::resolver::CliGraphResolver; -use crate::resolver::CliGraphResolverOptions; -use crate::resolver::CliNodeResolver; +use crate::resolver::CliNpmReqResolver; +use crate::resolver::CliResolver; +use crate::resolver::CliResolverOptions; +use crate::resolver::IsCjsResolver; use crate::resolver::WorkerCliNpmGraphResolver; use crate::tsc::into_specifier_and_media_type; +use crate::util::fs::canonicalize_path_maybe_not_exists; use crate::util::progress_bar::ProgressBar; use crate::util::progress_bar::ProgressBarStyle; #[derive(Debug, Clone)] struct LspScopeResolver { - cjs_tracker: Option>, - graph_resolver: Arc, + resolver: Arc, + in_npm_pkg_checker: Arc, jsr_resolver: Option>, npm_resolver: Option>, - node_resolver: Option>, - pkg_json_resolver: Option>, + node_resolver: Option>, + npm_pkg_req_resolver: Option>, + pkg_json_resolver: Arc, redirect_resolver: Option>, graph_imports: Arc>, + dep_info: Arc>>, package_json_deps_by_resolution: Arc>, config_data: Option>, } impl Default for LspScopeResolver { fn default() -> Self { + let factory = ResolverFactory::new(None); Self { - cjs_tracker: None, - graph_resolver: create_graph_resolver(None, None, None), + resolver: factory.cli_resolver().clone(), + in_npm_pkg_checker: factory.in_npm_pkg_checker().clone(), jsr_resolver: None, npm_resolver: None, node_resolver: None, - pkg_json_resolver: None, + npm_pkg_req_resolver: None, + pkg_json_resolver: factory.pkg_json_resolver().clone(), redirect_resolver: None, graph_imports: Default::default(), + dep_info: Default::default(), package_json_deps_by_resolution: Default::default(), config_data: None, } @@ -101,43 +116,16 @@ impl LspScopeResolver { cache: &LspCache, http_client_provider: Option<&Arc>, ) -> Self { - let mut npm_resolver = None; - let mut node_resolver = None; - let mut lsp_cjs_tracker = None; - let fs = Arc::new(deno_fs::RealFs); - let pkg_json_resolver = Arc::new(PackageJsonResolver::new( - deno_runtime::deno_node::DenoFsNodeResolverEnv::new(fs.clone()), - )); - if let Some(http_client) = http_client_provider { - npm_resolver = create_npm_resolver( - config_data.map(|d| d.as_ref()), - cache, - http_client, - &pkg_json_resolver, - ) - .await; - if let Some(npm_resolver) = &npm_resolver { - let in_npm_pkg_checker = create_in_npm_pkg_checker(npm_resolver); - let cjs_tracker = create_cjs_tracker( - in_npm_pkg_checker.clone(), - pkg_json_resolver.clone(), - ); - lsp_cjs_tracker = - Some(Arc::new(LspCjsTracker::new(cjs_tracker.clone()))); - node_resolver = Some(create_node_resolver( - cjs_tracker, - fs.clone(), - in_npm_pkg_checker, - npm_resolver, - pkg_json_resolver.clone(), - )); - } + let mut factory = ResolverFactory::new(config_data); + if let Some(http_client_provider) = http_client_provider { + factory.init_npm_resolver(http_client_provider, cache).await; } - let graph_resolver = create_graph_resolver( - config_data.map(|d| d.as_ref()), - npm_resolver.as_ref(), - node_resolver.as_ref(), - ); + let in_npm_pkg_checker = factory.in_npm_pkg_checker().clone(); + let npm_resolver = factory.npm_resolver().cloned(); + let node_resolver = factory.node_resolver().cloned(); + let npm_pkg_req_resolver = factory.npm_pkg_req_resolver().cloned(); + let cli_resolver = factory.cli_resolver().clone(); + let pkg_json_resolver = factory.pkg_json_resolver().clone(); let jsr_resolver = Some(Arc::new(JsrCacheResolver::new( cache.for_specifier(config_data.map(|d| d.scope.as_ref())), config_data.map(|d| d.as_ref()), @@ -146,7 +134,9 @@ impl LspScopeResolver { cache.for_specifier(config_data.map(|d| d.scope.as_ref())), config_data.and_then(|d| d.lockfile.clone()), ))); - let npm_graph_resolver = graph_resolver.create_graph_npm_resolver(); + let npm_graph_resolver = cli_resolver.create_graph_npm_resolver(); + let maybe_jsx_import_source_config = + config_data.and_then(|d| d.maybe_jsx_import_source_config()); let graph_imports = config_data .and_then(|d| d.member_dir.workspace.to_compiler_option_types().ok()) .map(|imports| { @@ -154,11 +144,18 @@ impl LspScopeResolver { imports .into_iter() .map(|(referrer, imports)| { + let resolver = SingleReferrerGraphResolver { + valid_referrer: &referrer, + referrer_kind: NodeModuleKind::Esm, + cli_resolver: &cli_resolver, + jsx_import_source_config: maybe_jsx_import_source_config + .as_ref(), + }; let graph_import = GraphImport::new( &referrer, imports, &CliJsrUrlProvider, - Some(graph_resolver.as_ref()), + Some(&resolver), Some(&npm_graph_resolver), ); (referrer, graph_import) @@ -168,7 +165,7 @@ impl LspScopeResolver { }) .unwrap_or_default(); let package_json_deps_by_resolution = (|| { - let node_resolver = node_resolver.as_ref()?; + let npm_pkg_req_resolver = npm_pkg_req_resolver.as_ref()?; let package_json = config_data?.maybe_pkg_json()?; let referrer = package_json.specifier(); let dependencies = package_json.dependencies.as_ref()?; @@ -178,12 +175,23 @@ impl LspScopeResolver { let req_ref = NpmPackageReqReference::from_str(&format!("npm:{name}")).ok()?; let specifier = into_specifier_and_media_type(Some( - node_resolver + npm_pkg_req_resolver .resolve_req_reference( &req_ref, &referrer, + // todo(dsherret): this is wrong because it doesn't consider CJS referrers + NodeModuleKind::Esm, NodeResolutionMode::Types, ) + .or_else(|_| { + npm_pkg_req_resolver.resolve_req_reference( + &req_ref, + &referrer, + // todo(dsherret): this is wrong because it doesn't consider CJS referrers + NodeModuleKind::Esm, + NodeResolutionMode::Execution, + ) + }) .ok()?, )) .0; @@ -195,57 +203,39 @@ impl LspScopeResolver { let package_json_deps_by_resolution = Arc::new(package_json_deps_by_resolution.unwrap_or_default()); Self { - cjs_tracker: lsp_cjs_tracker, - graph_resolver, + resolver: cli_resolver, + in_npm_pkg_checker, jsr_resolver, + npm_pkg_req_resolver, npm_resolver, node_resolver, - pkg_json_resolver: Some(pkg_json_resolver), + pkg_json_resolver, redirect_resolver, graph_imports, + dep_info: Default::default(), package_json_deps_by_resolution, config_data: config_data.cloned(), } } fn snapshot(&self) -> Arc { + let mut factory = ResolverFactory::new(self.config_data.as_ref()); let npm_resolver = self.npm_resolver.as_ref().map(|r| r.clone_snapshotted()); - let fs = Arc::new(deno_fs::RealFs); - let pkg_json_resolver = Arc::new(PackageJsonResolver::new( - deno_runtime::deno_node::DenoFsNodeResolverEnv::new(fs.clone()), - )); - let mut node_resolver = None; - let mut lsp_cjs_tracker = None; if let Some(npm_resolver) = &npm_resolver { - let in_npm_pkg_checker = create_in_npm_pkg_checker(npm_resolver); - let cjs_tracker = create_cjs_tracker( - in_npm_pkg_checker.clone(), - pkg_json_resolver.clone(), - ); - lsp_cjs_tracker = Some(Arc::new(LspCjsTracker::new(cjs_tracker.clone()))); - node_resolver = Some(create_node_resolver( - cjs_tracker, - fs, - in_npm_pkg_checker, - npm_resolver, - pkg_json_resolver.clone(), - )); + factory.set_npm_resolver(npm_resolver.clone()); } - let graph_resolver = create_graph_resolver( - self.config_data.as_deref(), - npm_resolver.as_ref(), - node_resolver.as_ref(), - ); Arc::new(Self { - cjs_tracker: lsp_cjs_tracker, - graph_resolver, + resolver: factory.cli_resolver().clone(), + in_npm_pkg_checker: factory.in_npm_pkg_checker().clone(), jsr_resolver: self.jsr_resolver.clone(), - npm_resolver, - node_resolver, + npm_pkg_req_resolver: factory.npm_pkg_req_resolver().cloned(), + npm_resolver: factory.npm_resolver().cloned(), + node_resolver: factory.node_resolver().cloned(), redirect_resolver: self.redirect_resolver.clone(), - pkg_json_resolver: Some(pkg_json_resolver), + pkg_json_resolver: factory.pkg_json_resolver().clone(), graph_imports: self.graph_imports.clone(), + dep_info: self.dep_info.clone(), package_json_deps_by_resolution: self .package_json_deps_by_resolution .clone(), @@ -312,19 +302,24 @@ impl LspResolver { } } - pub async fn set_npm_reqs( + pub async fn set_dep_info_by_scope( &self, - reqs: &BTreeMap, BTreeSet>, + dep_info_by_scope: &Arc< + BTreeMap, Arc>, + >, ) { for (scope, resolver) in [(None, &self.unscoped)] .into_iter() .chain(self.by_scope.iter().map(|(s, r)| (Some(s), r))) { + let dep_info = dep_info_by_scope.get(&scope.cloned()); + if let Some(dep_info) = dep_info { + *resolver.dep_info.lock() = dep_info.clone(); + } if let Some(npm_resolver) = resolver.npm_resolver.as_ref() { if let Some(npm_resolver) = npm_resolver.as_managed() { - let reqs = reqs - .get(&scope.cloned()) - .map(|reqs| reqs.iter().cloned().collect::>()) + let reqs = dep_info + .map(|i| i.npm_reqs.iter().cloned().collect::>()) .unwrap_or_default(); if let Err(err) = npm_resolver.set_package_reqs(&reqs).await { lsp_warn!("Could not set npm package requirements: {:#}", err); @@ -334,12 +329,12 @@ impl LspResolver { } } - pub fn as_graph_resolver( + pub fn as_cli_resolver( &self, file_referrer: Option<&ModuleSpecifier>, - ) -> &dyn Resolver { + ) -> &CliResolver { let resolver = self.get_scope_resolver(file_referrer); - resolver.graph_resolver.as_ref() + resolver.resolver.as_ref() } pub fn create_graph_npm_resolver( @@ -347,23 +342,23 @@ impl LspResolver { file_referrer: Option<&ModuleSpecifier>, ) -> WorkerCliNpmGraphResolver { let resolver = self.get_scope_resolver(file_referrer); - resolver.graph_resolver.create_graph_npm_resolver() + resolver.resolver.create_graph_npm_resolver() } - pub fn maybe_cjs_tracker( + pub fn as_config_data( &self, file_referrer: Option<&ModuleSpecifier>, - ) -> Option<&Arc> { + ) -> Option<&Arc> { let resolver = self.get_scope_resolver(file_referrer); - resolver.cjs_tracker.as_ref() + resolver.config_data.as_ref() } - pub fn maybe_node_resolver( + pub fn in_npm_pkg_checker( &self, file_referrer: Option<&ModuleSpecifier>, - ) -> Option<&Arc> { + ) -> &Arc { let resolver = self.get_scope_resolver(file_referrer); - resolver.node_resolver.as_ref() + &resolver.in_npm_pkg_checker } pub fn maybe_managed_npm_resolver( @@ -429,13 +424,19 @@ impl LspResolver { &self, req_ref: &NpmPackageReqReference, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, file_referrer: Option<&ModuleSpecifier>, ) -> Option<(ModuleSpecifier, MediaType)> { let resolver = self.get_scope_resolver(file_referrer); - let node_resolver = resolver.node_resolver.as_ref()?; + let npm_pkg_req_resolver = resolver.npm_pkg_req_resolver.as_ref()?; Some(into_specifier_and_media_type(Some( - node_resolver - .resolve_req_reference(req_ref, referrer, NodeResolutionMode::Types) + npm_pkg_req_resolver + .resolve_req_reference( + req_ref, + referrer, + referrer_kind, + NodeResolutionMode::Types, + ) .ok()?, ))) } @@ -452,6 +453,19 @@ impl LspResolver { .cloned() } + pub fn deno_types_to_code_resolution( + &self, + specifier: &ModuleSpecifier, + file_referrer: Option<&ModuleSpecifier>, + ) -> Option { + let resolver = self.get_scope_resolver(file_referrer); + let dep_info = resolver.dep_info.lock().clone(); + dep_info + .deno_types_to_code_resolutions + .get(specifier) + .cloned() + } + pub fn in_node_modules(&self, specifier: &ModuleSpecifier) -> bool { fn has_node_modules_dir(specifier: &ModuleSpecifier) -> bool { // consider any /node_modules/ directory as being in the node_modules @@ -478,15 +492,18 @@ impl LspResolver { &self, specifier_text: &str, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, ) -> bool { let resolver = self.get_scope_resolver(Some(referrer)); - let Some(node_resolver) = resolver.node_resolver.as_ref() else { + let Some(npm_pkg_req_resolver) = resolver.npm_pkg_req_resolver.as_ref() + else { return false; }; - node_resolver + npm_pkg_req_resolver .resolve_if_for_npm_pkg( specifier_text, referrer, + referrer_kind, NodeResolutionMode::Types, ) .ok() @@ -499,10 +516,9 @@ impl LspResolver { referrer: &ModuleSpecifier, ) -> Result>, ClosestPkgJsonError> { let resolver = self.get_scope_resolver(Some(referrer)); - let Some(pkg_json_resolver) = resolver.pkg_json_resolver.as_ref() else { - return Ok(None); - }; - pkg_json_resolver.get_closest_package_json(referrer) + resolver + .pkg_json_resolver + .get_closest_package_json(referrer) } pub fn resolve_redirects( @@ -554,152 +570,213 @@ impl LspResolver { } } -async fn create_npm_resolver( - config_data: Option<&ConfigData>, - cache: &LspCache, - http_client_provider: &Arc, - pkg_json_resolver: &Arc, -) -> Option> { - let enable_byonm = config_data.map(|d| d.byonm).unwrap_or(false); - let options = if enable_byonm { - CliNpmResolverCreateOptions::Byonm(CliByonmNpmResolverCreateOptions { - fs: CliDenoResolverFs(Arc::new(deno_fs::RealFs)), - pkg_json_resolver: pkg_json_resolver.clone(), - root_node_modules_dir: config_data.and_then(|config_data| { - config_data.node_modules_dir.clone().or_else(|| { - url_to_file_path(&config_data.scope) - .ok() - .map(|p| p.join("node_modules/")) - }) - }), - }) - } else { - let npmrc = config_data - .and_then(|d| d.npmrc.clone()) - .unwrap_or_else(create_default_npmrc); - let npm_cache_dir = Arc::new(NpmCacheDir::new( - &DenoCacheEnvFsAdapter(&deno_fs::RealFs), - cache.deno_dir().npm_folder_path(), - npmrc.get_all_known_registries_urls(), - )); - CliNpmResolverCreateOptions::Managed(CliManagedNpmResolverCreateOptions { - http_client_provider: http_client_provider.clone(), - snapshot: match config_data.and_then(|d| d.lockfile.as_ref()) { - Some(lockfile) => { - CliNpmResolverManagedSnapshotOption::ResolveFromLockfile( - lockfile.clone(), - ) - } - None => CliNpmResolverManagedSnapshotOption::Specified(None), - }, - // Don't provide the lockfile. We don't want these resolvers - // updating it. Only the cache request should update the lockfile. - maybe_lockfile: None, - fs: Arc::new(deno_fs::RealFs), - npm_cache_dir, - // Use an "only" cache setting in order to make the - // user do an explicit "cache" command and prevent - // the cache from being filled with lots of packages while - // the user is typing. - cache_setting: CacheSetting::Only, - text_only_progress_bar: ProgressBar::new(ProgressBarStyle::TextOnly), - maybe_node_modules_path: config_data - .and_then(|d| d.node_modules_dir.clone()), - // only used for top level install, so we can ignore this - npm_install_deps_provider: Arc::new(NpmInstallDepsProvider::empty()), - npmrc, - npm_system_info: NpmSystemInfo::default(), - lifecycle_scripts: Default::default(), - }) - }; - Some(create_cli_npm_resolver_for_lsp(options).await) +#[derive(Debug, Default, Clone)] +pub struct ScopeDepInfo { + pub deno_types_to_code_resolutions: HashMap, + pub npm_reqs: BTreeSet, + pub has_node_specifier: bool, } -fn create_cjs_tracker( - in_npm_pkg_checker: Arc, +#[derive(Default)] +struct ResolverFactoryServices { + cli_resolver: Deferred>, + in_npm_pkg_checker: Deferred>, + node_resolver: Deferred>>, + npm_pkg_req_resolver: Deferred>>, + npm_resolver: Option>, +} + +struct ResolverFactory<'a> { + config_data: Option<&'a Arc>, + fs: Arc, pkg_json_resolver: Arc, -) -> Arc { - Arc::new(CjsTracker::new( - in_npm_pkg_checker, - pkg_json_resolver, - CjsTrackerOptions { - // todo(dsherret): support in the lsp by stabilizing the feature - // so that we don't have to pipe the config in here - unstable_detect_cjs: false, - }, - )) + services: ResolverFactoryServices, } -fn create_in_npm_pkg_checker( - npm_resolver: &Arc, -) -> Arc { - crate::npm::create_in_npm_pkg_checker(match npm_resolver.as_inner() { - crate::npm::InnerCliNpmResolverRef::Byonm(_) => { - CreateInNpmPkgCheckerOptions::Byonm +impl<'a> ResolverFactory<'a> { + pub fn new(config_data: Option<&'a Arc>) -> Self { + let fs = Arc::new(deno_fs::RealFs); + let pkg_json_resolver = Arc::new(PackageJsonResolver::new( + deno_runtime::deno_node::DenoFsNodeResolverEnv::new(fs.clone()), + )); + Self { + config_data, + fs, + pkg_json_resolver, + services: Default::default(), } - crate::npm::InnerCliNpmResolverRef::Managed(m) => { - CreateInNpmPkgCheckerOptions::Managed( - CliManagedInNpmPkgCheckerCreateOptions { - root_cache_dir_url: m.global_cache_root_url(), - maybe_node_modules_path: m.maybe_node_modules_path(), + } + + async fn init_npm_resolver( + &mut self, + http_client_provider: &Arc, + cache: &LspCache, + ) { + let enable_byonm = self.config_data.map(|d| d.byonm).unwrap_or(false); + let options = if enable_byonm { + CliNpmResolverCreateOptions::Byonm(CliByonmNpmResolverCreateOptions { + fs: CliDenoResolverFs(Arc::new(deno_fs::RealFs)), + pkg_json_resolver: self.pkg_json_resolver.clone(), + root_node_modules_dir: self.config_data.and_then(|config_data| { + config_data.node_modules_dir.clone().or_else(|| { + url_to_file_path(&config_data.scope) + .ok() + .map(|p| p.join("node_modules/")) + }) + }), + }) + } else { + let npmrc = self + .config_data + .and_then(|d| d.npmrc.clone()) + .unwrap_or_else(create_default_npmrc); + let npm_cache_dir = Arc::new(NpmCacheDir::new( + &DenoCacheEnvFsAdapter(self.fs.as_ref()), + cache.deno_dir().npm_folder_path(), + npmrc.get_all_known_registries_urls(), + )); + CliNpmResolverCreateOptions::Managed(CliManagedNpmResolverCreateOptions { + http_client_provider: http_client_provider.clone(), + snapshot: match self.config_data.and_then(|d| d.lockfile.as_ref()) { + Some(lockfile) => { + CliNpmResolverManagedSnapshotOption::ResolveFromLockfile( + lockfile.clone(), + ) + } + None => CliNpmResolverManagedSnapshotOption::Specified(None), + }, + // Don't provide the lockfile. We don't want these resolvers + // updating it. Only the cache request should update the lockfile. + maybe_lockfile: None, + fs: Arc::new(deno_fs::RealFs), + npm_cache_dir, + // Use an "only" cache setting in order to make the + // user do an explicit "cache" command and prevent + // the cache from being filled with lots of packages while + // the user is typing. + cache_setting: CacheSetting::Only, + text_only_progress_bar: ProgressBar::new(ProgressBarStyle::TextOnly), + maybe_node_modules_path: self + .config_data + .and_then(|d| d.node_modules_dir.clone()), + // only used for top level install, so we can ignore this + npm_install_deps_provider: Arc::new(NpmInstallDepsProvider::empty()), + npmrc, + npm_system_info: NpmSystemInfo::default(), + lifecycle_scripts: Default::default(), + }) + }; + self.set_npm_resolver(create_cli_npm_resolver_for_lsp(options).await); + } + + pub fn set_npm_resolver(&mut self, npm_resolver: Arc) { + self.services.npm_resolver = Some(npm_resolver); + } + + pub fn npm_resolver(&self) -> Option<&Arc> { + self.services.npm_resolver.as_ref() + } + + pub fn cli_resolver(&self) -> &Arc { + self.services.cli_resolver.get_or_init(|| { + let npm_req_resolver = self.npm_pkg_req_resolver().cloned(); + let deno_resolver = Arc::new(CliDenoResolver::new(DenoResolverOptions { + in_npm_pkg_checker: self.in_npm_pkg_checker().clone(), + node_and_req_resolver: match (self.node_resolver(), npm_req_resolver) { + (Some(node_resolver), Some(npm_req_resolver)) => { + Some(NodeAndNpmReqResolver { + node_resolver: node_resolver.clone(), + npm_req_resolver, + }) + } + _ => None, + }, + sloppy_imports_resolver: self + .config_data + .and_then(|d| d.sloppy_imports_resolver.clone()), + workspace_resolver: self + .config_data + .map(|d| d.resolver.clone()) + .unwrap_or_else(|| { + Arc::new(WorkspaceResolver::new_raw( + // this is fine because this is only used before initialization + Arc::new(ModuleSpecifier::parse("file:///").unwrap()), + None, + Vec::new(), + Vec::new(), + PackageJsonDepResolution::Disabled, + )) + }), + is_byonm: self.config_data.map(|d| d.byonm).unwrap_or(false), + maybe_vendor_dir: self.config_data.and_then(|d| d.vendor_dir.as_ref()), + })); + Arc::new(CliResolver::new(CliResolverOptions { + deno_resolver, + npm_resolver: self.npm_resolver().cloned(), + bare_node_builtins_enabled: self + .config_data + .is_some_and(|d| d.unstable.contains("bare-node-builtins")), + })) + }) + } + + pub fn pkg_json_resolver(&self) -> &Arc { + &self.pkg_json_resolver + } + + pub fn in_npm_pkg_checker(&self) -> &Arc { + self.services.in_npm_pkg_checker.get_or_init(|| { + crate::npm::create_in_npm_pkg_checker( + match self.services.npm_resolver.as_ref().map(|r| r.as_inner()) { + Some(crate::npm::InnerCliNpmResolverRef::Byonm(_)) | None => { + CreateInNpmPkgCheckerOptions::Byonm + } + Some(crate::npm::InnerCliNpmResolverRef::Managed(m)) => { + CreateInNpmPkgCheckerOptions::Managed( + CliManagedInNpmPkgCheckerCreateOptions { + root_cache_dir_url: m.global_cache_root_url(), + maybe_node_modules_path: m.maybe_node_modules_path(), + }, + ) + } }, ) - } - }) -} + }) + } -fn create_node_resolver( - cjs_tracker: Arc, - fs: Arc, - in_npm_pkg_checker: Arc, - npm_resolver: &Arc, - pkg_json_resolver: Arc, -) -> Arc { - let node_resolver_inner = Arc::new(NodeResolver::new( - deno_runtime::deno_node::DenoFsNodeResolverEnv::new(fs.clone()), - in_npm_pkg_checker.clone(), - npm_resolver.clone().into_npm_resolver(), - pkg_json_resolver.clone(), - )); - Arc::new(CliNodeResolver::new( - cjs_tracker.clone(), - fs, - in_npm_pkg_checker, - node_resolver_inner, - npm_resolver.clone(), - )) -} + pub fn node_resolver(&self) -> Option<&Arc> { + self + .services + .node_resolver + .get_or_init(|| { + let npm_resolver = self.services.npm_resolver.as_ref()?; + Some(Arc::new(NodeResolver::new( + deno_runtime::deno_node::DenoFsNodeResolverEnv::new(self.fs.clone()), + self.in_npm_pkg_checker().clone(), + npm_resolver.clone().into_npm_pkg_folder_resolver(), + self.pkg_json_resolver.clone(), + ))) + }) + .as_ref() + } -fn create_graph_resolver( - config_data: Option<&ConfigData>, - npm_resolver: Option<&Arc>, - node_resolver: Option<&Arc>, -) -> Arc { - let workspace = config_data.map(|d| &d.member_dir.workspace); - Arc::new(CliGraphResolver::new(CliGraphResolverOptions { - node_resolver: node_resolver.cloned(), - npm_resolver: npm_resolver.cloned(), - workspace_resolver: config_data.map(|d| d.resolver.clone()).unwrap_or_else( - || { - Arc::new(WorkspaceResolver::new_raw( - // this is fine because this is only used before initialization - Arc::new(ModuleSpecifier::parse("file:///").unwrap()), - None, - Vec::new(), - Vec::new(), - PackageJsonDepResolution::Disabled, - )) - }, - ), - maybe_jsx_import_source_config: workspace.and_then(|workspace| { - workspace.to_maybe_jsx_import_source_config().ok().flatten() - }), - maybe_vendor_dir: config_data.and_then(|d| d.vendor_dir.as_ref()), - bare_node_builtins_enabled: config_data - .is_some_and(|d| d.unstable.contains("bare-node-builtins")), - sloppy_imports_resolver: config_data - .and_then(|d| d.sloppy_imports_resolver.clone()), - })) + pub fn npm_pkg_req_resolver(&self) -> Option<&Arc> { + self + .services + .npm_pkg_req_resolver + .get_or_init(|| { + let node_resolver = self.node_resolver()?; + let npm_resolver = self.npm_resolver()?; + Some(Arc::new(CliNpmReqResolver::new(NpmReqResolverOptions { + byonm_resolver: (npm_resolver.clone()).into_maybe_byonm(), + fs: CliDenoResolverFs(self.fs.clone()), + in_npm_pkg_checker: self.in_npm_pkg_checker().clone(), + node_resolver: node_resolver.clone(), + npm_req_resolver: npm_resolver.clone().into_npm_req_resolver(), + }))) + }) + .as_ref() + } } #[derive(Debug, Eq, PartialEq)] @@ -726,6 +803,141 @@ impl std::fmt::Debug for RedirectResolver { } } +#[derive(Debug)] +pub struct LspIsCjsResolver { + inner: IsCjsResolver, +} + +impl Default for LspIsCjsResolver { + fn default() -> Self { + LspIsCjsResolver::new(&Default::default()) + } +} + +impl LspIsCjsResolver { + pub fn new(cache: &LspCache) -> Self { + #[derive(Debug)] + struct LspInNpmPackageChecker { + global_cache_dir: ModuleSpecifier, + } + + impl LspInNpmPackageChecker { + pub fn new(cache: &LspCache) -> Self { + let npm_folder_path = cache.deno_dir().npm_folder_path(); + Self { + global_cache_dir: url_from_directory_path( + &canonicalize_path_maybe_not_exists(&npm_folder_path) + .unwrap_or(npm_folder_path), + ) + .unwrap_or_else(|_| { + ModuleSpecifier::parse("file:///invalid/").unwrap() + }), + } + } + } + + impl InNpmPackageChecker for LspInNpmPackageChecker { + fn in_npm_package(&self, specifier: &ModuleSpecifier) -> bool { + if specifier.scheme() != "file" { + return false; + } + if specifier + .as_str() + .starts_with(self.global_cache_dir.as_str()) + { + return true; + } + specifier.as_str().contains("/node_modules/") + } + } + + let fs = Arc::new(deno_fs::RealFs); + let pkg_json_resolver = Arc::new(PackageJsonResolver::new( + deno_runtime::deno_node::DenoFsNodeResolverEnv::new(fs.clone()), + )); + + LspIsCjsResolver { + inner: IsCjsResolver::new( + Arc::new(LspInNpmPackageChecker::new(cache)), + pkg_json_resolver, + crate::resolver::IsCjsResolverOptions { + detect_cjs: true, + is_node_main: false, + }, + ), + } + } + + pub fn get_maybe_doc_module_kind( + &self, + specifier: &ModuleSpecifier, + maybe_document: Option<&Document>, + ) -> NodeModuleKind { + self.get_lsp_referrer_kind( + specifier, + maybe_document.and_then(|d| d.is_script()), + ) + } + + pub fn get_doc_module_kind(&self, document: &Document) -> NodeModuleKind { + self.get_lsp_referrer_kind(document.specifier(), document.is_script()) + } + + pub fn get_lsp_referrer_kind( + &self, + specifier: &ModuleSpecifier, + is_script: Option, + ) -> NodeModuleKind { + self.inner.get_lsp_referrer_kind(specifier, is_script) + } +} + +#[derive(Debug)] +pub struct SingleReferrerGraphResolver<'a> { + pub valid_referrer: &'a ModuleSpecifier, + pub referrer_kind: NodeModuleKind, + pub cli_resolver: &'a CliResolver, + pub jsx_import_source_config: Option<&'a JsxImportSourceConfig>, +} + +impl<'a> deno_graph::source::Resolver for SingleReferrerGraphResolver<'a> { + fn default_jsx_import_source(&self) -> Option { + self + .jsx_import_source_config + .and_then(|c| c.default_specifier.clone()) + } + + fn default_jsx_import_source_types(&self) -> Option { + self + .jsx_import_source_config + .and_then(|c| c.default_types_specifier.clone()) + } + + fn jsx_import_source_module(&self) -> &str { + self + .jsx_import_source_config + .map(|c| c.module.as_str()) + .unwrap_or(deno_graph::source::DEFAULT_JSX_IMPORT_SOURCE_MODULE) + } + + fn resolve( + &self, + specifier_text: &str, + referrer_range: &Range, + mode: ResolutionMode, + ) -> Result { + // this resolver assumes it will only be used with a single referrer + // with the provided referrer kind + debug_assert_eq!(referrer_range.specifier, *self.valid_referrer); + self.cli_resolver.resolve( + specifier_text, + referrer_range, + self.referrer_kind, + mode, + ) + } +} + impl RedirectResolver { fn new( cache: Arc, @@ -842,45 +1054,6 @@ impl RedirectResolver { } } -#[derive(Debug)] -pub struct LspCjsTracker { - cjs_tracker: Arc, -} - -impl LspCjsTracker { - pub fn new(cjs_tracker: Arc) -> Self { - Self { cjs_tracker } - } - - pub fn is_cjs( - &self, - specifier: &ModuleSpecifier, - media_type: MediaType, - maybe_parsed_source: Option<&ParsedSource>, - ) -> bool { - if let Some(module_kind) = - self.cjs_tracker.get_known_kind(specifier, media_type) - { - module_kind.is_cjs() - } else { - let maybe_is_script = maybe_parsed_source.map(|p| p.compute_is_script()); - maybe_is_script - .and_then(|is_script| { - self - .cjs_tracker - .is_cjs_with_known_is_script(specifier, media_type, is_script) - .ok() - }) - .unwrap_or_else(|| { - self - .cjs_tracker - .is_maybe_cjs(specifier, media_type) - .unwrap_or(false) - }) - } - } -} - #[cfg(test)] mod tests { use super::*; diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index 6f63ced5be8a0a..ae87a9914f4501 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -34,6 +34,7 @@ use crate::util::path::relative_specifier; use crate::util::path::to_percent_decoded_str; use crate::util::result::InfallibleResultExt; use crate::util::v8::convert; +use crate::worker::create_isolate_create_params; use deno_core::convert::Smi; use deno_core::convert::ToV8; use deno_core::error::StdAnyError; @@ -69,6 +70,7 @@ use indexmap::IndexMap; use indexmap::IndexSet; use lazy_regex::lazy_regex; use log::error; +use node_resolver::NodeModuleKind; use once_cell::sync::Lazy; use regex::Captures; use regex::Regex; @@ -3415,9 +3417,18 @@ fn parse_code_actions( additional_text_edits.extend(change.text_changes.iter().map(|tc| { let mut text_edit = tc.as_text_edit(asset_or_doc.line_index()); if let Some(specifier_rewrite) = &data.specifier_rewrite { - text_edit.new_text = text_edit - .new_text - .replace(&specifier_rewrite.0, &specifier_rewrite.1); + text_edit.new_text = text_edit.new_text.replace( + &specifier_rewrite.old_specifier, + &specifier_rewrite.new_specifier, + ); + if let Some(deno_types_specifier) = + &specifier_rewrite.new_deno_types_specifier + { + text_edit.new_text = format!( + "// @deno-types=\"{}\"\n{}", + deno_types_specifier, &text_edit.new_text + ); + } } text_edit })); @@ -3576,17 +3587,23 @@ impl CompletionEntryDetails { let mut text_edit = original_item.text_edit.clone(); if let Some(specifier_rewrite) = &data.specifier_rewrite { if let Some(text_edit) = &mut text_edit { - match text_edit { - lsp::CompletionTextEdit::Edit(text_edit) => { - text_edit.new_text = text_edit - .new_text - .replace(&specifier_rewrite.0, &specifier_rewrite.1); - } + let new_text = match text_edit { + lsp::CompletionTextEdit::Edit(text_edit) => &mut text_edit.new_text, lsp::CompletionTextEdit::InsertAndReplace(insert_replace_edit) => { - insert_replace_edit.new_text = insert_replace_edit - .new_text - .replace(&specifier_rewrite.0, &specifier_rewrite.1); + &mut insert_replace_edit.new_text } + }; + *new_text = new_text.replace( + &specifier_rewrite.old_specifier, + &specifier_rewrite.new_specifier, + ); + if let Some(deno_types_specifier) = + &specifier_rewrite.new_deno_types_specifier + { + *new_text = format!( + "// @deno-types=\"{}\"\n{}", + deno_types_specifier, new_text + ); } } } @@ -3691,6 +3708,13 @@ impl CompletionInfo { } } +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct CompletionSpecifierRewrite { + old_specifier: String, + new_specifier: String, + new_deno_types_specifier: Option, +} + #[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct CompletionItemData { @@ -3703,7 +3727,7 @@ pub struct CompletionItemData { /// be rewritten by replacing the first string with the second. Intended for /// auto-import specifiers to be reverse-import-mapped. #[serde(skip_serializing_if = "Option::is_none")] - pub specifier_rewrite: Option<(String, String)>, + pub specifier_rewrite: Option, #[serde(skip_serializing_if = "Option::is_none")] pub data: Option, pub use_code_snippet: bool, @@ -3925,20 +3949,40 @@ impl CompletionEntry { if let Some(source) = &self.source { let mut display_source = source.clone(); if let Some(import_data) = &self.auto_import_data { - if let Some(new_module_specifier) = language_server - .get_ts_response_import_mapper(specifier) + let import_mapper = + language_server.get_ts_response_import_mapper(specifier); + if let Some(mut new_specifier) = import_mapper .check_specifier(&import_data.normalized, specifier) .or_else(|| relative_specifier(specifier, &import_data.normalized)) { - if new_module_specifier.contains("/node_modules/") { + if new_specifier.contains("/node_modules/") { return None; } - display_source.clone_from(&new_module_specifier); - if new_module_specifier != import_data.raw.module_specifier { - specifier_rewrite = Some(( - import_data.raw.module_specifier.clone(), - new_module_specifier, - )); + let mut new_deno_types_specifier = None; + if let Some(code_specifier) = language_server + .resolver + .deno_types_to_code_resolution( + &import_data.normalized, + Some(specifier), + ) + .and_then(|s| { + import_mapper + .check_specifier(&s, specifier) + .or_else(|| relative_specifier(specifier, &s)) + }) + { + new_deno_types_specifier = + Some(std::mem::replace(&mut new_specifier, code_specifier)); + } + display_source.clone_from(&new_specifier); + if new_specifier != import_data.raw.module_specifier + || new_deno_types_specifier.is_some() + { + specifier_rewrite = Some(CompletionSpecifierRewrite { + old_specifier: import_data.raw.module_specifier.clone(), + new_specifier, + new_deno_types_specifier, + }); } } else if source.starts_with(jsr_url().as_str()) { return None; @@ -4244,9 +4288,7 @@ impl TscSpecifierMap { return specifier.to_string(); } let mut specifier = original.to_string(); - if specifier.contains("/node_modules/.deno/") - && !specifier.contains("/node_modules/@types/node/") - { + if !specifier.contains("/node_modules/@types/node/") { // The ts server doesn't give completions from files in // `node_modules/.deno/`. We work around it like this. specifier = specifier.replace("/node_modules/", "/$node_modules/"); @@ -4401,30 +4443,18 @@ fn op_load<'s>( None } else { let asset_or_document = state.get_asset_or_document(&specifier); - asset_or_document.map(|doc| { - let maybe_cjs_tracker = state - .state_snapshot - .resolver - .maybe_cjs_tracker(Some(&specifier)); - LoadResponse { - data: doc.text(), - script_kind: crate::tsc::as_ts_script_kind(doc.media_type()), - version: state.script_version(&specifier), - is_cjs: maybe_cjs_tracker - .map(|t| { - t.is_cjs( - &specifier, - doc.media_type(), - doc.maybe_parsed_source().and_then(|p| p.as_ref().ok()), - ) - }) - .unwrap_or(false), - } + asset_or_document.map(|doc| LoadResponse { + data: doc.text(), + script_kind: crate::tsc::as_ts_script_kind(doc.media_type()), + version: state.script_version(&specifier), + is_cjs: doc + .document() + .map(|d| state.state_snapshot.is_cjs_resolver.get_doc_module_kind(d)) + .unwrap_or(NodeModuleKind::Esm) + == NodeModuleKind::Cjs, }) }; - let serialized = serde_v8::to_v8(scope, maybe_load_response)?; - state.performance.measure(mark); Ok(serialized) } @@ -4662,6 +4692,10 @@ fn op_script_names(state: &mut OpState) -> ScriptNames { let (types, _) = documents.resolve_dependency( types, specifier, + state + .state_snapshot + .is_cjs_resolver + .get_doc_module_kind(doc), doc.file_referrer(), )?; let types_doc = documents.get_or_load(&types, doc.file_referrer())?; @@ -4765,6 +4799,7 @@ fn run_tsc_thread( specifier_map, request_rx, )], + create_params: create_isolate_create_params(), startup_snapshot: Some(tsc::compiler_snapshot()), inspector: has_inspector_server, ..Default::default() @@ -5544,6 +5579,7 @@ mod tests { documents: Arc::new(documents), assets: Default::default(), config: Arc::new(config), + is_cjs_resolver: Default::default(), resolver, }); let performance = Arc::new(Performance::default()); @@ -5569,7 +5605,7 @@ mod tests { let (_tx, rx) = mpsc::unbounded_channel(); let state = State::new(state_snapshot, Default::default(), Default::default(), rx); - let mut op_state = OpState::new(None); + let mut op_state = OpState::new(None, None); op_state.put(state); op_state } diff --git a/cli/main.rs b/cli/main.rs index 04daff6700ac7f..c49c8a83a6d54e 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -37,6 +37,7 @@ use crate::util::v8::init_v8_flags; use args::TaskFlags; use deno_resolver::npm::ByonmResolvePkgFolderFromDenoReqError; +use deno_resolver::npm::ResolvePkgFolderFromDenoReqError; use deno_runtime::WorkerExecutionMode; pub use deno_runtime::UNSTABLE_GRANULAR_FLAGS; @@ -50,7 +51,6 @@ use deno_runtime::fmt_errors::format_js_error; use deno_runtime::tokio_util::create_and_run_current_thread_with_maybe_metrics; use deno_terminal::colors; use factory::CliFactory; -use npm::ResolvePkgFolderFromDenoReqError; use standalone::MODULE_NOT_FOUND; use standalone::UNSUPPORTED_SCHEME; use std::env; @@ -144,9 +144,7 @@ async fn run_subcommand(flags: Arc) -> Result { } DenoSubcommand::Init(init_flags) => { spawn_subcommand(async { - // make compiler happy since init_project is sync - tokio::task::yield_now().await; - tools::init::init_project(init_flags) + tools::init::init_project(init_flags).await }) } DenoSubcommand::Info(info_flags) => { @@ -188,6 +186,11 @@ async fn run_subcommand(flags: Arc) -> Result { tools::lint::lint(flags, lint_flags).await } }), + DenoSubcommand::Outdated(update_flags) => { + spawn_subcommand(async move { + tools::registry::outdated(flags, update_flags).await + }) + } DenoSubcommand::Repl(repl_flags) => { spawn_subcommand(async move { tools::repl::run(flags, repl_flags).await }) } @@ -238,6 +241,9 @@ async fn run_subcommand(flags: Arc) -> Result { cwd: None, task: Some(run_flags.script.clone()), is_run: true, + recursive: false, + filter: None, + eval: false, }; new_flags.subcommand = DenoSubcommand::Task(task_flags.clone()); let result = tools::task::execute_script(Arc::new(new_flags), task_flags.clone()).await; @@ -350,18 +356,17 @@ fn setup_panic_hook() { eprintln!("Args: {:?}", env::args().collect::>()); eprintln!(); orig_hook(panic_info); - std::process::exit(1); + deno_runtime::exit(1); })); } -#[allow(clippy::print_stderr)] fn exit_with_message(message: &str, code: i32) -> ! { - eprintln!( + log::error!( "{}: {}", colors::red_bold("error"), message.trim_start_matches("error: ") ); - std::process::exit(code); + deno_runtime::exit(code); } fn exit_for_error(error: AnyError) -> ! { @@ -380,13 +385,12 @@ fn exit_for_error(error: AnyError) -> ! { exit_with_message(&error_string, error_code); } -#[allow(clippy::print_stderr)] pub(crate) fn unstable_exit_cb(feature: &str, api_name: &str) { - eprintln!( + log::error!( "Unstable API '{api_name}'. The `--unstable-{}` flag must be provided.", feature ); - std::process::exit(70); + deno_runtime::exit(70); } pub fn main() { @@ -419,7 +423,7 @@ pub fn main() { drop(profiler); match result { - Ok(exit_code) => std::process::exit(exit_code), + Ok(exit_code) => deno_runtime::exit(exit_code), Err(err) => exit_for_error(err), } } @@ -433,12 +437,21 @@ fn resolve_flags_and_init( if err.kind() == clap::error::ErrorKind::DisplayVersion => { // Ignore results to avoid BrokenPipe errors. + util::logger::init(None); let _ = err.print(); - std::process::exit(0); + deno_runtime::exit(0); + } + Err(err) => { + util::logger::init(None); + exit_for_error(AnyError::from(err)) } - Err(err) => exit_for_error(AnyError::from(err)), }; + if let Some(otel_config) = flags.otel_config() { + deno_runtime::ops::otel::init(otel_config)?; + } + util::logger::init(flags.log_level); + // TODO(bartlomieju): remove in Deno v2.5 and hard error then. if flags.unstable_config.legacy_flag_enabled { log::warn!( @@ -467,7 +480,6 @@ fn resolve_flags_and_init( deno_core::JsRuntime::init_platform( None, /* import assertions enabled */ false, ); - util::logger::init(flags.log_level); Ok(flags) } diff --git a/cli/mainrt.rs b/cli/mainrt.rs index f5b798f81766d6..2951aa711a46d0 100644 --- a/cli/mainrt.rs +++ b/cli/mainrt.rs @@ -40,23 +40,21 @@ use std::env::current_exe; use crate::args::Flags; -#[allow(clippy::print_stderr)] pub(crate) fn unstable_exit_cb(feature: &str, api_name: &str) { - eprintln!( + log::error!( "Unstable API '{api_name}'. The `--unstable-{}` flag must be provided.", feature ); - std::process::exit(70); + deno_runtime::exit(70); } -#[allow(clippy::print_stderr)] fn exit_with_message(message: &str, code: i32) -> ! { - eprintln!( + log::error!( "{}: {}", colors::red_bold("error"), message.trim_start_matches("error: ") ); - std::process::exit(code); + deno_runtime::exit(code); } fn unwrap_or_exit(result: Result) -> T { @@ -89,13 +87,19 @@ fn main() { let future = async move { match standalone { Ok(Some(data)) => { + if let Some(otel_config) = data.metadata.otel_config.clone() { + deno_runtime::ops::otel::init(otel_config)?; + } util::logger::init(data.metadata.log_level); load_env_vars(&data.metadata.env_vars_from_env_file); let exit_code = standalone::run(data).await?; - std::process::exit(exit_code); + deno_runtime::exit(exit_code); } Ok(None) => Ok(()), - Err(err) => Err(err), + Err(err) => { + util::logger::init(None); + Err(err) + } } }; diff --git a/cli/module_loader.rs b/cli/module_loader.rs index f535b8e0abedc0..af983466776e64 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -27,8 +27,8 @@ use crate::node; use crate::node::CliNodeCodeTranslator; use crate::npm::CliNpmResolver; use crate::resolver::CjsTracker; -use crate::resolver::CliGraphResolver; -use crate::resolver::CliNodeResolver; +use crate::resolver::CliNpmReqResolver; +use crate::resolver::CliResolver; use crate::resolver::ModuleCodeStringSource; use crate::resolver::NotSupportedKindInNpmError; use crate::resolver::NpmModuleLoader; @@ -60,19 +60,21 @@ use deno_core::RequestedModuleType; use deno_core::ResolutionKind; use deno_core::SourceCodeCacheInfo; use deno_graph::source::ResolutionMode; -use deno_graph::source::Resolver; use deno_graph::GraphKind; use deno_graph::JsModule; use deno_graph::JsonModule; use deno_graph::Module; use deno_graph::ModuleGraph; use deno_graph::Resolution; +use deno_graph::WasmModule; use deno_runtime::code_cache; use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::create_host_defined_options; use deno_runtime::deno_node::NodeRequireLoader; +use deno_runtime::deno_node::NodeResolver; use deno_runtime::deno_permissions::PermissionsContainer; use deno_semver::npm::NpmPackageReqReference; +use node_resolver::errors::ClosestPkgJsonError; use node_resolver::InNpmPackageChecker; use node_resolver::NodeResolutionMode; @@ -206,7 +208,6 @@ struct SharedCliModuleLoaderState { lib_worker: TsTypeLib, initial_cwd: PathBuf, is_inspecting: bool, - is_npm_main: bool, is_repl: bool, cjs_tracker: Arc, code_cache: Option>, @@ -216,11 +217,12 @@ struct SharedCliModuleLoaderState { main_module_graph_container: Arc, module_load_preparer: Arc, node_code_translator: Arc, - node_resolver: Arc, + node_resolver: Arc, + npm_req_resolver: Arc, npm_resolver: Arc, npm_module_loader: NpmModuleLoader, parsed_source_cache: Arc, - resolver: Arc, + resolver: Arc, } pub struct CliModuleLoaderFactory { @@ -239,11 +241,12 @@ impl CliModuleLoaderFactory { main_module_graph_container: Arc, module_load_preparer: Arc, node_code_translator: Arc, - node_resolver: Arc, + node_resolver: Arc, + npm_req_resolver: Arc, npm_resolver: Arc, npm_module_loader: NpmModuleLoader, parsed_source_cache: Arc, - resolver: Arc, + resolver: Arc, ) -> Self { Self { shared: Arc::new(SharedCliModuleLoaderState { @@ -252,7 +255,6 @@ impl CliModuleLoaderFactory { lib_worker: options.ts_type_lib_worker(), initial_cwd: options.initial_cwd().to_path_buf(), is_inspecting: options.is_inspecting(), - is_npm_main: options.is_npm_main(), is_repl: matches!( options.sub_command(), DenoSubcommand::Repl(_) | DenoSubcommand::Jupyter(_) @@ -266,6 +268,7 @@ impl CliModuleLoaderFactory { module_load_preparer, node_code_translator, node_resolver, + npm_req_resolver, npm_resolver, npm_module_loader, parsed_source_cache, @@ -286,7 +289,6 @@ impl CliModuleLoaderFactory { Rc::new(CliModuleLoader(Rc::new(CliModuleLoaderInner { lib, is_worker, - is_npm_main: self.shared.is_npm_main, parent_permissions, permissions, graph_container: graph_container.clone(), @@ -295,13 +297,14 @@ impl CliModuleLoaderFactory { parsed_source_cache: self.shared.parsed_source_cache.clone(), shared: self.shared.clone(), }))); - let node_require_loader = Rc::new(CliNodeRequireLoader::new( - self.shared.emitter.clone(), - self.shared.fs.clone(), + let node_require_loader = Rc::new(CliNodeRequireLoader { + cjs_tracker: self.shared.cjs_tracker.clone(), + emitter: self.shared.emitter.clone(), + fs: self.shared.fs.clone(), graph_container, - self.shared.in_npm_pkg_checker.clone(), - self.shared.npm_resolver.clone(), - )); + in_npm_pkg_checker: self.shared.in_npm_pkg_checker.clone(), + npm_resolver: self.shared.npm_resolver.clone(), + }); CreateModuleLoaderResult { module_loader, node_require_loader, @@ -343,7 +346,6 @@ impl ModuleLoaderFactory for CliModuleLoaderFactory { struct CliModuleLoaderInner { lib: TsTypeLib, - is_npm_main: bool, is_worker: bool, /// The initial set of permissions used to resolve the static imports in the /// worker. These are "allow all" for main worker, and parent thread @@ -367,7 +369,9 @@ impl requested_module_type: RequestedModuleType, ) -> Result { let code_source = self.load_code_source(specifier, maybe_referrer).await?; - let code = if self.shared.is_inspecting { + let code = if self.shared.is_inspecting + || code_source.media_type == MediaType::Wasm + { // we need the code with the source map in order for // it to work with --inspect or --inspect-brk code_source.code @@ -377,6 +381,7 @@ impl }; let module_type = match code_source.media_type { MediaType::Json => ModuleType::Json, + MediaType::Wasm => ModuleType::Wasm, _ => ModuleType::JavaScript, }; @@ -428,7 +433,7 @@ impl if let Some(code_source) = self.load_prepared_module(specifier).await? { return Ok(code_source); } - if self.shared.node_resolver.in_npm_package(specifier) { + if self.shared.in_npm_pkg_checker.in_npm_package(specifier) { return self .shared .npm_module_loader @@ -450,7 +455,7 @@ impl let referrer = if referrer.is_empty() && self.shared.is_repl { // FIXME(bartlomieju): this is a hacky way to provide compatibility with REPL // and `Deno.core.evalContext` API. Ideally we should always have a referrer filled - "./$deno$repl.ts" + "./$deno$repl.mts" } else { referrer }; @@ -473,16 +478,6 @@ impl raw_specifier: &str, referrer: &ModuleSpecifier, ) -> Result { - if self.shared.node_resolver.in_npm_package(referrer) { - return Ok( - self - .shared - .node_resolver - .resolve(raw_specifier, referrer, NodeResolutionMode::Execution)? - .into_url(), - ); - } - let graph = self.graph_container.graph(); let resolution = match graph.get(referrer) { Some(Module::Js(module)) => module @@ -508,6 +503,7 @@ impl start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + self.shared.cjs_tracker.get_referrer_kind(referrer), ResolutionMode::Execution, )?), }; @@ -515,11 +511,16 @@ impl if self.shared.is_repl { if let Ok(reference) = NpmPackageReqReference::from_specifier(&specifier) { - return self.shared.node_resolver.resolve_req_reference( - &reference, - referrer, - NodeResolutionMode::Execution, - ); + return self + .shared + .npm_req_resolver + .resolve_req_reference( + &reference, + referrer, + self.shared.cjs_tracker.get_referrer_kind(referrer), + NodeResolutionMode::Execution, + ) + .map_err(AnyError::from); } } @@ -534,10 +535,11 @@ impl self .shared .node_resolver - .resolve_package_sub_path_from_deno_module( + .resolve_package_subpath_from_deno_module( &package_folder, module.nv_reference.sub_path(), Some(referrer), + self.shared.cjs_tracker.get_referrer_kind(referrer), NodeResolutionMode::Execution, ) .with_context(|| { @@ -547,6 +549,7 @@ impl Some(Module::Node(module)) => module.specifier.clone(), Some(Module::Js(module)) => module.specifier.clone(), Some(Module::Json(module)) => module.specifier.clone(), + Some(Module::Wasm(module)) => module.specifier.clone(), Some(Module::External(module)) => { node::resolve_specifier_into_node_modules( &module.specifier, @@ -668,14 +671,11 @@ impl is_script, .. })) => { - // todo(dsherret): revert in https://github.com/denoland/deno/pull/26439 - if self.is_npm_main && *is_script - || self.shared.cjs_tracker.is_cjs_with_known_is_script( - specifier, - *media_type, - *is_script, - )? - { + if self.shared.cjs_tracker.is_cjs_with_known_is_script( + specifier, + *media_type, + *is_script, + )? { return Ok(Some(CodeOrDeferredEmit::Cjs { specifier, media_type: *media_type, @@ -721,6 +721,13 @@ impl media_type: *media_type, }))) } + Some(deno_graph::Module::Wasm(WasmModule { + source, specifier, .. + })) => Ok(Some(CodeOrDeferredEmit::Code(ModuleCodeStringSource { + code: ModuleSourceCode::Bytes(source.clone().into()), + found_url: specifier.clone(), + media_type: MediaType::Wasm, + }))), Some( deno_graph::Module::External(_) | deno_graph::Module::Node(_) @@ -826,7 +833,7 @@ impl ModuleLoader name: &str, ) -> Option> { let name = deno_core::ModuleSpecifier::parse(name).ok()?; - if self.0.shared.node_resolver.in_npm_package(&name) { + if self.0.shared.in_npm_pkg_checker.in_npm_package(&name) { Some(create_host_defined_options(scope)) } else { None @@ -863,7 +870,7 @@ impl ModuleLoader _maybe_referrer: Option, is_dynamic: bool, ) -> Pin>>> { - if self.0.shared.node_resolver.in_npm_package(specifier) { + if self.0.shared.in_npm_pkg_checker.in_npm_package(specifier) { return Box::pin(deno_core::futures::future::ready(Ok(()))); } @@ -1031,6 +1038,7 @@ impl ModuleGraphUpdatePermit for WorkerModuleGraphUpdatePermit { #[derive(Debug)] struct CliNodeRequireLoader { + cjs_tracker: Arc, emitter: Arc, fs: Arc, graph_container: TGraphContainer, @@ -1038,26 +1046,6 @@ struct CliNodeRequireLoader { npm_resolver: Arc, } -impl - CliNodeRequireLoader -{ - pub fn new( - emitter: Arc, - fs: Arc, - graph_container: TGraphContainer, - in_npm_pkg_checker: Arc, - npm_resolver: Arc, - ) -> Self { - Self { - emitter, - fs, - graph_container, - in_npm_pkg_checker, - npm_resolver, - } - } -} - impl NodeRequireLoader for CliNodeRequireLoader { @@ -1103,4 +1091,12 @@ impl NodeRequireLoader Ok(text) } } + + fn is_maybe_cjs( + &self, + specifier: &ModuleSpecifier, + ) -> Result { + let media_type = MediaType::from_specifier(specifier); + self.cjs_tracker.is_maybe_cjs(specifier, media_type) + } } diff --git a/cli/node.rs b/cli/node.rs index 1d410a726af601..bc39cdbde9bb53 100644 --- a/cli/node.rs +++ b/cli/node.rs @@ -7,8 +7,6 @@ use deno_ast::MediaType; use deno_ast::ModuleSpecifier; use deno_core::error::AnyError; use deno_graph::ParsedSourceStore; -use deno_path_util::url_from_file_path; -use deno_path_util::url_to_file_path; use deno_runtime::deno_fs; use deno_runtime::deno_node::DenoFsNodeResolverEnv; use node_resolver::analyze::CjsAnalysis as ExtNodeCjsAnalysis; @@ -22,7 +20,6 @@ use crate::cache::CacheDBHash; use crate::cache::NodeAnalysisCache; use crate::cache::ParsedSourceCache; use crate::resolver::CjsTracker; -use crate::util::fs::canonicalize_path_maybe_not_exists_with_fs; pub type CliNodeCodeTranslator = NodeCodeTranslator; @@ -37,13 +34,9 @@ pub fn resolve_specifier_into_node_modules( specifier: &ModuleSpecifier, fs: &dyn deno_fs::FileSystem, ) -> ModuleSpecifier { - url_to_file_path(specifier) - .ok() - // this path might not exist at the time the graph is being created - // because the node_modules folder might not yet exist - .and_then(|path| canonicalize_path_maybe_not_exists_with_fs(&path, fs).ok()) - .and_then(|path| url_from_file_path(&path).ok()) - .unwrap_or_else(|| specifier.clone()) + node_resolver::resolve_specifier_into_node_modules(specifier, &|path| { + fs.realpath_sync(path).map_err(|err| err.into_io_error()) + }) } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] @@ -62,10 +55,6 @@ pub struct CliCjsCodeAnalyzer { cjs_tracker: Arc, fs: deno_fs::FileSystemRc, parsed_source_cache: Option>, - // todo(dsherret): hack, remove in https://github.com/denoland/deno/pull/26439 - // For example, this does not properly handle if cjs analysis was already done - // and has been cached. - is_npm_main: bool, } impl CliCjsCodeAnalyzer { @@ -74,14 +63,12 @@ impl CliCjsCodeAnalyzer { cjs_tracker: Arc, fs: deno_fs::FileSystemRc, parsed_source_cache: Option>, - is_npm_main: bool, ) -> Self { Self { cache, cjs_tracker, fs, parsed_source_cache, - is_npm_main, } } @@ -106,9 +93,7 @@ impl CliCjsCodeAnalyzer { } let cjs_tracker = self.cjs_tracker.clone(); - let is_npm_main = self.is_npm_main; - let is_maybe_cjs = - cjs_tracker.is_maybe_cjs(specifier, media_type)? || is_npm_main; + let is_maybe_cjs = cjs_tracker.is_maybe_cjs(specifier, media_type)?; let analysis = if is_maybe_cjs { let maybe_parsed_source = self .parsed_source_cache @@ -135,7 +120,7 @@ impl CliCjsCodeAnalyzer { parsed_source.specifier(), media_type, is_script, - )? || is_script && is_npm_main; + )?; if is_cjs { let analysis = parsed_source.analyze_cjs(); Ok(CliCjsAnalysis::Cjs { diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index c01cd7e4e5dfb6..ba152c387b6e1f 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -2,19 +2,17 @@ use std::borrow::Cow; use std::path::Path; -use std::path::PathBuf; use std::sync::Arc; use deno_core::error::AnyError; use deno_core::serde_json; -use deno_core::url::Url; use deno_resolver::npm::ByonmNpmResolver; use deno_resolver::npm::ByonmNpmResolverCreateOptions; +use deno_resolver::npm::CliNpmReqResolver; use deno_runtime::deno_node::DenoFsNodeResolverEnv; use deno_runtime::deno_node::NodePermissions; use deno_runtime::ops::process::NpmProcessStateProvider; -use deno_semver::package::PackageReq; -use node_resolver::NpmResolver; +use node_resolver::NpmPackageFolderResolver; use crate::args::NpmProcessState; use crate::args::NpmProcessStateKind; @@ -22,7 +20,6 @@ use crate::resolver::CliDenoResolverFs; use super::CliNpmResolver; use super::InnerCliNpmResolverRef; -use super::ResolvePkgFolderFromDenoReqError; pub type CliByonmNpmResolverCreateOptions = ByonmNpmResolverCreateOptions; @@ -47,7 +44,13 @@ impl NpmProcessStateProvider for CliByonmWrapper { } impl CliNpmResolver for CliByonmNpmResolver { - fn into_npm_resolver(self: Arc) -> Arc { + fn into_npm_pkg_folder_resolver( + self: Arc, + ) -> Arc { + self + } + + fn into_npm_req_resolver(self: Arc) -> Arc { self } @@ -57,6 +60,10 @@ impl CliNpmResolver for CliByonmNpmResolver { Arc::new(CliByonmWrapper(self)) } + fn into_maybe_byonm(self: Arc) -> Option> { + Some(self) + } + fn clone_snapshotted(&self) -> Arc { Arc::new(self.clone()) } @@ -69,17 +76,6 @@ impl CliNpmResolver for CliByonmNpmResolver { self.root_node_modules_dir() } - fn resolve_pkg_folder_from_deno_module_req( - &self, - req: &PackageReq, - referrer: &Url, - ) -> Result { - ByonmNpmResolver::resolve_pkg_folder_from_deno_module_req( - self, req, referrer, - ) - .map_err(ResolvePkgFolderFromDenoReqError::Byonm) - } - fn ensure_read_permission<'a>( &self, permissions: &mut dyn NodePermissions, diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 4a91bc34746ee5..88094d51414f74 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -22,6 +22,7 @@ use deno_npm::resolution::ValidSerializedNpmResolutionSnapshot; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; use deno_npm::NpmSystemInfo; +use deno_resolver::npm::CliNpmReqResolver; use deno_runtime::colors; use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::NodePermissions; @@ -31,7 +32,7 @@ use deno_semver::package::PackageReq; use node_resolver::errors::PackageFolderResolveError; use node_resolver::errors::PackageFolderResolveIoError; use node_resolver::InNpmPackageChecker; -use node_resolver::NpmResolver; +use node_resolver::NpmPackageFolderResolver; use resolution::AddPkgReqsResult; use crate::args::CliLockfile; @@ -499,7 +500,7 @@ impl ManagedCliNpmResolver { self.resolve_pkg_folder_from_pkg_id(&pkg_id) } - fn resolve_pkg_id_from_pkg_req( + pub fn resolve_pkg_id_from_pkg_req( &self, req: &PackageReq, ) -> Result { @@ -605,7 +606,7 @@ fn npm_process_state( .unwrap() } -impl NpmResolver for ManagedCliNpmResolver { +impl NpmPackageFolderResolver for ManagedCliNpmResolver { fn resolve_package_folder_from_package( &self, name: &str, @@ -635,8 +636,29 @@ impl NpmProcessStateProvider for ManagedCliNpmResolver { } } +impl CliNpmReqResolver for ManagedCliNpmResolver { + fn resolve_pkg_folder_from_deno_module_req( + &self, + req: &PackageReq, + _referrer: &ModuleSpecifier, + ) -> Result { + let pkg_id = self + .resolve_pkg_id_from_pkg_req(req) + .map_err(|err| ResolvePkgFolderFromDenoReqError::Managed(err.into()))?; + self + .resolve_pkg_folder_from_pkg_id(&pkg_id) + .map_err(ResolvePkgFolderFromDenoReqError::Managed) + } +} + impl CliNpmResolver for ManagedCliNpmResolver { - fn into_npm_resolver(self: Arc) -> Arc { + fn into_npm_pkg_folder_resolver( + self: Arc, + ) -> Arc { + self + } + + fn into_npm_req_resolver(self: Arc) -> Arc { self } @@ -687,19 +709,6 @@ impl CliNpmResolver for ManagedCliNpmResolver { self.fs_resolver.node_modules_path() } - fn resolve_pkg_folder_from_deno_module_req( - &self, - req: &PackageReq, - _referrer: &ModuleSpecifier, - ) -> Result { - let pkg_id = self - .resolve_pkg_id_from_pkg_req(req) - .map_err(|err| ResolvePkgFolderFromDenoReqError::Managed(err.into()))?; - self - .resolve_pkg_folder_from_pkg_id(&pkg_id) - .map_err(ResolvePkgFolderFromDenoReqError::Managed) - } - fn ensure_read_permission<'a>( &self, permissions: &mut dyn NodePermissions, diff --git a/cli/npm/managed/resolvers/common/bin_entries.rs b/cli/npm/managed/resolvers/common/bin_entries.rs index 4524ce83265929..e4a1845689c155 100644 --- a/cli/npm/managed/resolvers/common/bin_entries.rs +++ b/cli/npm/managed/resolvers/common/bin_entries.rs @@ -18,6 +18,7 @@ pub struct BinEntries<'a> { seen_names: HashMap<&'a str, &'a NpmPackageId>, /// The bin entries entries: Vec<(&'a NpmResolutionPackage, PathBuf)>, + sorted: bool, } /// Returns the name of the default binary for the given package. @@ -31,6 +32,20 @@ fn default_bin_name(package: &NpmResolutionPackage) -> &str { .map_or(package.id.nv.name.as_str(), |(_, name)| name) } +pub fn warn_missing_entrypoint( + bin_name: &str, + package_path: &Path, + entrypoint: &Path, +) { + log::warn!( + "{} Trying to set up '{}' bin for \"{}\", but the entry point \"{}\" doesn't exist.", + deno_terminal::colors::yellow("Warning"), + bin_name, + package_path.display(), + entrypoint.display() + ); +} + impl<'a> BinEntries<'a> { pub fn new() -> Self { Self::default() @@ -42,6 +57,7 @@ impl<'a> BinEntries<'a> { package: &'a NpmResolutionPackage, package_path: PathBuf, ) { + self.sorted = false; // check for a new collision, if we haven't already // found one match package.bin.as_ref().unwrap() { @@ -79,16 +95,21 @@ impl<'a> BinEntries<'a> { &str, // bin name &str, // bin script ) -> Result<(), AnyError>, + mut filter: impl FnMut(&NpmResolutionPackage) -> bool, ) -> Result<(), AnyError> { - if !self.collisions.is_empty() { + if !self.collisions.is_empty() && !self.sorted { // walking the dependency tree to find out the depth of each package // is sort of expensive, so we only do it if there's a collision sort_by_depth(snapshot, &mut self.entries, &mut self.collisions); + self.sorted = true; } let mut seen = HashSet::new(); for (package, package_path) in &self.entries { + if !filter(package) { + continue; + } if let Some(bin_entries) = &package.bin { match bin_entries { deno_npm::registry::NpmPackageVersionBinEntry::String(script) => { @@ -118,8 +139,8 @@ impl<'a> BinEntries<'a> { } /// Collect the bin entries into a vec of (name, script path) - pub fn into_bin_files( - mut self, + pub fn collect_bin_files( + &mut self, snapshot: &NpmResolutionSnapshot, ) -> Vec<(String, PathBuf)> { let mut bins = Vec::new(); @@ -131,17 +152,18 @@ impl<'a> BinEntries<'a> { bins.push((name.to_string(), package_path.join(script))); Ok(()) }, + |_| true, ) .unwrap(); bins } - /// Finish setting up the bin entries, writing the necessary files - /// to disk. - pub fn finish( + fn set_up_entries_filtered( mut self, snapshot: &NpmResolutionSnapshot, bin_node_modules_dir_path: &Path, + filter: impl FnMut(&NpmResolutionPackage) -> bool, + mut handler: impl FnMut(&EntrySetupOutcome<'_>), ) -> Result<(), AnyError> { if !self.entries.is_empty() && !bin_node_modules_dir_path.exists() { std::fs::create_dir_all(bin_node_modules_dir_path).with_context( @@ -160,18 +182,54 @@ impl<'a> BinEntries<'a> { Ok(()) }, |package, package_path, name, script| { - set_up_bin_entry( + let outcome = set_up_bin_entry( package, name, script, package_path, bin_node_modules_dir_path, - ) + )?; + handler(&outcome); + Ok(()) }, + filter, )?; Ok(()) } + + /// Finish setting up the bin entries, writing the necessary files + /// to disk. + pub fn finish( + self, + snapshot: &NpmResolutionSnapshot, + bin_node_modules_dir_path: &Path, + handler: impl FnMut(&EntrySetupOutcome<'_>), + ) -> Result<(), AnyError> { + self.set_up_entries_filtered( + snapshot, + bin_node_modules_dir_path, + |_| true, + handler, + ) + } + + /// Finish setting up the bin entries, writing the necessary files + /// to disk. + pub fn finish_only( + self, + snapshot: &NpmResolutionSnapshot, + bin_node_modules_dir_path: &Path, + handler: impl FnMut(&EntrySetupOutcome<'_>), + only: &HashSet<&NpmPackageId>, + ) -> Result<(), AnyError> { + self.set_up_entries_filtered( + snapshot, + bin_node_modules_dir_path, + |package| only.contains(&package.id), + handler, + ) + } } // walk the dependency tree to find out the depth of each package @@ -233,16 +291,17 @@ fn sort_by_depth( }); } -pub fn set_up_bin_entry( - package: &NpmResolutionPackage, - bin_name: &str, +pub fn set_up_bin_entry<'a>( + package: &'a NpmResolutionPackage, + bin_name: &'a str, #[allow(unused_variables)] bin_script: &str, - #[allow(unused_variables)] package_path: &Path, + #[allow(unused_variables)] package_path: &'a Path, bin_node_modules_dir_path: &Path, -) -> Result<(), AnyError> { +) -> Result, AnyError> { #[cfg(windows)] { set_up_bin_shim(package, bin_name, bin_node_modules_dir_path)?; + Ok(EntrySetupOutcome::Success) } #[cfg(unix)] { @@ -252,9 +311,8 @@ pub fn set_up_bin_entry( bin_script, package_path, bin_node_modules_dir_path, - )?; + ) } - Ok(()) } #[cfg(windows)] @@ -301,14 +359,39 @@ fn make_executable_if_exists(path: &Path) -> Result { Ok(true) } +pub enum EntrySetupOutcome<'a> { + #[cfg_attr(windows, allow(dead_code))] + MissingEntrypoint { + bin_name: &'a str, + package_path: &'a Path, + entrypoint: PathBuf, + package: &'a NpmResolutionPackage, + }, + Success, +} + +impl<'a> EntrySetupOutcome<'a> { + pub fn warn_if_failed(&self) { + match self { + EntrySetupOutcome::MissingEntrypoint { + bin_name, + package_path, + entrypoint, + .. + } => warn_missing_entrypoint(bin_name, package_path, entrypoint), + EntrySetupOutcome::Success => {} + } + } +} + #[cfg(unix)] -fn symlink_bin_entry( - _package: &NpmResolutionPackage, - bin_name: &str, +fn symlink_bin_entry<'a>( + package: &'a NpmResolutionPackage, + bin_name: &'a str, bin_script: &str, - package_path: &Path, + package_path: &'a Path, bin_node_modules_dir_path: &Path, -) -> Result<(), AnyError> { +) -> Result, AnyError> { use std::io; use std::os::unix::fs::symlink; let link = bin_node_modules_dir_path.join(bin_name); @@ -318,14 +401,12 @@ fn symlink_bin_entry( format!("Can't set up '{}' bin at {}", bin_name, original.display()) })?; if !found { - log::warn!( - "{} Trying to set up '{}' bin for \"{}\", but the entry point \"{}\" doesn't exist.", - deno_terminal::colors::yellow("Warning"), + return Ok(EntrySetupOutcome::MissingEntrypoint { bin_name, - package_path.display(), - original.display() - ); - return Ok(()); + package_path, + entrypoint: original, + package, + }); } let original_relative = @@ -348,7 +429,7 @@ fn symlink_bin_entry( original_relative.display() ) })?; - return Ok(()); + return Ok(EntrySetupOutcome::Success); } return Err(err).with_context(|| { format!( @@ -359,5 +440,5 @@ fn symlink_bin_entry( }); } - Ok(()) + Ok(EntrySetupOutcome::Success) } diff --git a/cli/npm/managed/resolvers/common/lifecycle_scripts.rs b/cli/npm/managed/resolvers/common/lifecycle_scripts.rs index 5735f524829a72..5c5755c8197d98 100644 --- a/cli/npm/managed/resolvers/common/lifecycle_scripts.rs +++ b/cli/npm/managed/resolvers/common/lifecycle_scripts.rs @@ -10,6 +10,7 @@ use deno_runtime::deno_io::FromRawIoHandle; use deno_semver::package::PackageNv; use deno_semver::Version; use std::borrow::Cow; +use std::collections::HashSet; use std::rc::Rc; use std::path::Path; @@ -61,7 +62,7 @@ impl<'a> LifecycleScripts<'a> { } } -fn has_lifecycle_scripts( +pub fn has_lifecycle_scripts( package: &NpmResolutionPackage, package_path: &Path, ) -> bool { @@ -83,7 +84,7 @@ fn is_broken_default_install_script(script: &str, package_path: &Path) -> bool { } impl<'a> LifecycleScripts<'a> { - fn can_run_scripts(&self, package_nv: &PackageNv) -> bool { + pub fn can_run_scripts(&self, package_nv: &PackageNv) -> bool { if !self.strategy.can_run_scripts() { return false; } @@ -98,6 +99,9 @@ impl<'a> LifecycleScripts<'a> { PackagesAllowedScripts::None => false, } } + pub fn has_run_scripts(&self, package: &NpmResolutionPackage) -> bool { + self.strategy.has_run(package) + } /// Register a package for running lifecycle scripts, if applicable. /// /// `package_path` is the path containing the package's code (its root dir). @@ -110,12 +114,12 @@ impl<'a> LifecycleScripts<'a> { ) { if has_lifecycle_scripts(package, &package_path) { if self.can_run_scripts(&package.id.nv) { - if !self.strategy.has_run(package) { + if !self.has_run_scripts(package) { self .packages_with_scripts .push((package, package_path.into_owned())); } - } else if !self.strategy.has_run(package) + } else if !self.has_run_scripts(package) && (self.config.explicit_install || !self.strategy.has_warned(package)) { // Skip adding `esbuild` as it is known that it can work properly without lifecycle script @@ -149,22 +153,32 @@ impl<'a> LifecycleScripts<'a> { self, snapshot: &NpmResolutionSnapshot, packages: &[NpmResolutionPackage], - root_node_modules_dir_path: Option<&Path>, + root_node_modules_dir_path: &Path, progress_bar: &ProgressBar, ) -> Result<(), AnyError> { self.warn_not_run_scripts()?; let get_package_path = |p: &NpmResolutionPackage| self.strategy.package_path(p); let mut failed_packages = Vec::new(); + let mut bin_entries = BinEntries::new(); if !self.packages_with_scripts.is_empty() { + let package_ids = self + .packages_with_scripts + .iter() + .map(|(p, _)| &p.id) + .collect::>(); // get custom commands for each bin available in the node_modules dir (essentially // the scripts that are in `node_modules/.bin`) - let base = - resolve_baseline_custom_commands(snapshot, packages, get_package_path)?; + let base = resolve_baseline_custom_commands( + &mut bin_entries, + snapshot, + packages, + get_package_path, + )?; let init_cwd = &self.config.initial_cwd; let process_state = crate::npm::managed::npm_process_state( snapshot.as_valid_serialized(), - root_node_modules_dir_path, + Some(root_node_modules_dir_path), ); let mut env_vars = crate::task_runner::real_env_vars(); @@ -221,7 +235,7 @@ impl<'a> LifecycleScripts<'a> { custom_commands: custom_commands.clone(), init_cwd, argv: &[], - root_node_modules_dir: root_node_modules_dir_path, + root_node_modules_dir: Some(root_node_modules_dir_path), stdio: Some(crate::task_runner::TaskIo { stderr: TaskStdio::piped(), stdout: TaskStdio::piped(), @@ -262,6 +276,17 @@ impl<'a> LifecycleScripts<'a> { } self.strategy.did_run_scripts(package)?; } + + // re-set up bin entries for the packages which we've run scripts for. + // lifecycle scripts can create files that are linked to by bin entries, + // and the only reliable way to handle this is to re-link bin entries + // (this is what PNPM does as well) + bin_entries.finish_only( + snapshot, + &root_node_modules_dir_path.join(".bin"), + |outcome| outcome.warn_if_failed(), + &package_ids, + )?; } if failed_packages.is_empty() { Ok(()) @@ -281,9 +306,10 @@ impl<'a> LifecycleScripts<'a> { // take in all (non copy) packages from snapshot, // and resolve the set of available binaries to create // custom commands available to the task runner -fn resolve_baseline_custom_commands( - snapshot: &NpmResolutionSnapshot, - packages: &[NpmResolutionPackage], +fn resolve_baseline_custom_commands<'a>( + bin_entries: &mut BinEntries<'a>, + snapshot: &'a NpmResolutionSnapshot, + packages: &'a [NpmResolutionPackage], get_package_path: impl Fn(&NpmResolutionPackage) -> PathBuf, ) -> Result { let mut custom_commands = crate::task_runner::TaskCustomCommands::new(); @@ -306,6 +332,7 @@ fn resolve_baseline_custom_commands( // doing it for packages that are set up already. // realistically, scripts won't be run very often so it probably isn't too big of an issue. resolve_custom_commands_from_packages( + bin_entries, custom_commands, snapshot, packages, @@ -320,12 +347,12 @@ fn resolve_custom_commands_from_packages< 'a, P: IntoIterator, >( + bin_entries: &mut BinEntries<'a>, mut commands: crate::task_runner::TaskCustomCommands, snapshot: &'a NpmResolutionSnapshot, packages: P, get_package_path: impl Fn(&'a NpmResolutionPackage) -> PathBuf, ) -> Result { - let mut bin_entries = BinEntries::new(); for package in packages { let package_path = get_package_path(package); @@ -333,7 +360,7 @@ fn resolve_custom_commands_from_packages< bin_entries.add(package, package_path); } } - let bins = bin_entries.into_bin_files(snapshot); + let bins: Vec<(String, PathBuf)> = bin_entries.collect_bin_files(snapshot); for (bin_name, script_path) in bins { commands.insert( bin_name.clone(), @@ -356,7 +383,9 @@ fn resolve_custom_commands_from_deps( snapshot: &NpmResolutionSnapshot, get_package_path: impl Fn(&NpmResolutionPackage) -> PathBuf, ) -> Result { + let mut bin_entries = BinEntries::new(); resolve_custom_commands_from_packages( + &mut bin_entries, baseline, snapshot, package diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index eddb0dc9b65628..50c5bd2689ce45 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -55,6 +55,7 @@ use crate::util::progress_bar::ProgressMessagePrompt; use super::super::cache::NpmCache; use super::super::cache::TarballCache; use super::super::resolution::NpmResolution; +use super::common::bin_entries; use super::common::NpmPackageFsResolver; use super::common::RegistryReadPermissionChecker; @@ -329,8 +330,7 @@ async fn sync_resolution_with_fs( let mut cache_futures = FuturesUnordered::new(); let mut newest_packages_by_name: HashMap<&String, &NpmResolutionPackage> = HashMap::with_capacity(package_partitions.packages.len()); - let bin_entries = - Rc::new(RefCell::new(super::common::bin_entries::BinEntries::new())); + let bin_entries = Rc::new(RefCell::new(bin_entries::BinEntries::new())); let mut lifecycle_scripts = super::common::lifecycle_scripts::LifecycleScripts::new( lifecycle_scripts, @@ -658,7 +658,28 @@ async fn sync_resolution_with_fs( // 7. Set up `node_modules/.bin` entries for packages that need it. { let bin_entries = std::mem::take(&mut *bin_entries.borrow_mut()); - bin_entries.finish(snapshot, &bin_node_modules_dir_path)?; + bin_entries.finish( + snapshot, + &bin_node_modules_dir_path, + |setup_outcome| { + match setup_outcome { + bin_entries::EntrySetupOutcome::MissingEntrypoint { + package, + package_path, + .. + } if super::common::lifecycle_scripts::has_lifecycle_scripts( + package, + package_path, + ) && lifecycle_scripts.can_run_scripts(&package.id.nv) + && !lifecycle_scripts.has_run_scripts(package) => + { + // ignore, it might get fixed when the lifecycle scripts run. + // if not, we'll warn then + } + outcome => outcome.warn_if_failed(), + } + }, + )?; } // 8. Create symlinks for the workspace packages @@ -708,7 +729,7 @@ async fn sync_resolution_with_fs( .finish( snapshot, &package_partitions.packages, - Some(root_node_modules_dir_path), + root_node_modules_dir_path, progress_bar, ) .await?; diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index da9618cc6a8fc9..1e6c52d6b161e7 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -6,19 +6,18 @@ mod managed; use std::borrow::Cow; use std::path::Path; -use std::path::PathBuf; use std::sync::Arc; use common::maybe_auth_header_for_npm_registry; use dashmap::DashMap; -use deno_ast::ModuleSpecifier; use deno_core::error::AnyError; use deno_core::serde_json; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageInfo; use deno_resolver::npm::ByonmInNpmPackageChecker; use deno_resolver::npm::ByonmNpmResolver; -use deno_resolver::npm::ByonmResolvePkgFolderFromDenoReqError; +use deno_resolver::npm::CliNpmReqResolver; +use deno_resolver::npm::ResolvePkgFolderFromDenoReqError; use deno_runtime::deno_node::NodePermissions; use deno_runtime::ops::process::NpmProcessStateProvider; use deno_semver::package::PackageNv; @@ -26,8 +25,7 @@ use deno_semver::package::PackageReq; use managed::cache::registry_info::get_package_url; use managed::create_managed_in_npm_pkg_checker; use node_resolver::InNpmPackageChecker; -use node_resolver::NpmResolver; -use thiserror::Error; +use node_resolver::NpmPackageFolderResolver; use crate::file_fetcher::FileFetcher; @@ -38,14 +36,6 @@ pub use self::managed::CliManagedNpmResolverCreateOptions; pub use self::managed::CliNpmResolverManagedSnapshotOption; pub use self::managed::ManagedCliNpmResolver; -#[derive(Debug, Error)] -pub enum ResolvePkgFolderFromDenoReqError { - #[error(transparent)] - Managed(deno_core::error::AnyError), - #[error(transparent)] - Byonm(#[from] ByonmResolvePkgFolderFromDenoReqError), -} - pub enum CliNpmResolverCreateOptions { Managed(CliManagedNpmResolverCreateOptions), Byonm(CliByonmNpmResolverCreateOptions), @@ -95,11 +85,17 @@ pub enum InnerCliNpmResolverRef<'a> { Byonm(&'a CliByonmNpmResolver), } -pub trait CliNpmResolver: NpmResolver { - fn into_npm_resolver(self: Arc) -> Arc; +pub trait CliNpmResolver: NpmPackageFolderResolver + CliNpmReqResolver { + fn into_npm_pkg_folder_resolver( + self: Arc, + ) -> Arc; + fn into_npm_req_resolver(self: Arc) -> Arc; fn into_process_state_provider( self: Arc, ) -> Arc; + fn into_maybe_byonm(self: Arc) -> Option> { + None + } fn clone_snapshotted(&self) -> Arc; @@ -121,12 +117,6 @@ pub trait CliNpmResolver: NpmResolver { fn root_node_modules_path(&self) -> Option<&Path>; - fn resolve_pkg_folder_from_deno_module_req( - &self, - req: &PackageReq, - referrer: &ModuleSpecifier, - ) -> Result; - fn ensure_read_permission<'a>( &self, permissions: &mut dyn NodePermissions, diff --git a/cli/ops/bench.rs b/cli/ops/bench.rs index 1f4a4bd9b5879d..a7c788a1899884 100644 --- a/cli/ops/bench.rs +++ b/cli/ops/bench.rs @@ -51,7 +51,7 @@ fn op_bench_get_origin(state: &mut OpState) -> String { #[derive(Clone)] struct PermissionsHolder(Uuid, PermissionsContainer); -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_pledge_test_permissions( state: &mut OpState, diff --git a/cli/ops/testing.rs b/cli/ops/testing.rs index 00aafb8286e3a8..3c6936971a5ae3 100644 --- a/cli/ops/testing.rs +++ b/cli/ops/testing.rs @@ -46,7 +46,7 @@ deno_core::extension!(deno_test, #[derive(Clone)] struct PermissionsHolder(Uuid, PermissionsContainer); -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_pledge_test_permissions( state: &mut OpState, diff --git a/cli/resolver.rs b/cli/resolver.rs index 710b97509345a6..a2dd47430f67a6 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -4,11 +4,8 @@ use async_trait::async_trait; use dashmap::DashMap; use dashmap::DashSet; use deno_ast::MediaType; -use deno_ast::ModuleKind; -use deno_config::workspace::MappedResolution; use deno_config::workspace::MappedResolutionDiagnostic; use deno_config::workspace::MappedResolutionError; -use deno_config::workspace::WorkspaceResolver; use deno_core::anyhow::anyhow; use deno_core::anyhow::Context; use deno_core::error::AnyError; @@ -17,34 +14,18 @@ use deno_core::ModuleSourceCode; use deno_core::ModuleSpecifier; use deno_graph::source::ResolutionMode; use deno_graph::source::ResolveError; -use deno_graph::source::Resolver; use deno_graph::source::UnknownBuiltInNodeModuleError; -use deno_graph::source::DEFAULT_JSX_IMPORT_SOURCE_MODULE; use deno_graph::NpmLoadError; use deno_graph::NpmResolvePkgReqsResult; use deno_npm::resolution::NpmResolutionError; -use deno_package_json::PackageJsonDepValue; -use deno_resolver::sloppy_imports::SloppyImportsResolutionMode; use deno_resolver::sloppy_imports::SloppyImportsResolver; use deno_runtime::colors; use deno_runtime::deno_fs; use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::is_builtin_node_module; -use deno_runtime::deno_node::NodeResolver; -use deno_runtime::deno_node::PackageJsonResolver; -use deno_semver::npm::NpmPackageReqReference; +use deno_runtime::deno_node::DenoFsNodeResolverEnv; use deno_semver::package::PackageReq; -use node_resolver::errors::ClosestPkgJsonError; -use node_resolver::errors::NodeResolveError; -use node_resolver::errors::NodeResolveErrorKind; -use node_resolver::errors::PackageFolderResolveErrorKind; -use node_resolver::errors::PackageFolderResolveIoError; -use node_resolver::errors::PackageNotFoundError; -use node_resolver::errors::PackageResolveErrorKind; -use node_resolver::errors::PackageSubpathResolveError; -use node_resolver::InNpmPackageChecker; use node_resolver::NodeModuleKind; -use node_resolver::NodeResolution; use node_resolver::NodeResolutionMode; use std::borrow::Cow; use std::path::Path; @@ -52,7 +33,6 @@ use std::path::PathBuf; use std::sync::Arc; use thiserror::Error; -use crate::args::JsxImportSourceConfig; use crate::args::DENO_DISABLE_PEDANTIC_NODE_WARNINGS; use crate::node::CliNodeCodeTranslator; use crate::npm::CliNpmResolver; @@ -60,6 +40,20 @@ use crate::npm::InnerCliNpmResolverRef; use crate::util::sync::AtomicFlag; use crate::util::text_encoding::from_utf8_lossy_owned; +pub type CjsTracker = deno_resolver::cjs::CjsTracker; +pub type IsCjsResolver = + deno_resolver::cjs::IsCjsResolver; +pub type IsCjsResolverOptions = deno_resolver::cjs::IsCjsResolverOptions; +pub type CliSloppyImportsResolver = + SloppyImportsResolver; +pub type CliDenoResolver = deno_resolver::DenoResolver< + CliDenoResolverFs, + DenoFsNodeResolverEnv, + SloppyImportsCachedFs, +>; +pub type CliNpmReqResolver = + deno_resolver::npm::NpmReqResolver; + pub struct ModuleCodeStringSource { pub code: ModuleSourceCode, pub found_url: ModuleSpecifier, @@ -81,6 +75,10 @@ impl deno_resolver::fs::DenoResolverFs for CliDenoResolverFs { self.0.realpath_sync(path).map_err(|e| e.into_io_error()) } + fn exists_sync(&self, path: &Path) -> bool { + self.0.exists_sync(path) + } + fn is_dir_sync(&self, path: &Path) -> bool { self.0.is_dir_sync(path) } @@ -106,217 +104,6 @@ impl deno_resolver::fs::DenoResolverFs for CliDenoResolverFs { } } -#[derive(Debug)] -pub struct CliNodeResolver { - cjs_tracker: Arc, - fs: Arc, - in_npm_pkg_checker: Arc, - node_resolver: Arc, - npm_resolver: Arc, -} - -impl CliNodeResolver { - pub fn new( - cjs_tracker: Arc, - fs: Arc, - in_npm_pkg_checker: Arc, - node_resolver: Arc, - npm_resolver: Arc, - ) -> Self { - Self { - cjs_tracker, - fs, - in_npm_pkg_checker, - node_resolver, - npm_resolver, - } - } - - pub fn in_npm_package(&self, specifier: &ModuleSpecifier) -> bool { - self.in_npm_pkg_checker.in_npm_package(specifier) - } - - pub fn resolve_if_for_npm_pkg( - &self, - specifier: &str, - referrer: &ModuleSpecifier, - mode: NodeResolutionMode, - ) -> Result, AnyError> { - let resolution_result = self.resolve(specifier, referrer, mode); - match resolution_result { - Ok(res) => Ok(Some(res)), - Err(err) => { - let err = err.into_kind(); - match err { - NodeResolveErrorKind::RelativeJoin(_) - | NodeResolveErrorKind::PackageImportsResolve(_) - | NodeResolveErrorKind::UnsupportedEsmUrlScheme(_) - | NodeResolveErrorKind::DataUrlReferrer(_) - | NodeResolveErrorKind::TypesNotFound(_) - | NodeResolveErrorKind::FinalizeResolution(_) => Err(err.into()), - NodeResolveErrorKind::PackageResolve(err) => { - let err = err.into_kind(); - match err { - PackageResolveErrorKind::ClosestPkgJson(_) - | PackageResolveErrorKind::InvalidModuleSpecifier(_) - | PackageResolveErrorKind::ExportsResolve(_) - | PackageResolveErrorKind::SubpathResolve(_) => Err(err.into()), - PackageResolveErrorKind::PackageFolderResolve(err) => { - match err.as_kind() { - PackageFolderResolveErrorKind::Io( - PackageFolderResolveIoError { package_name, .. }, - ) - | PackageFolderResolveErrorKind::PackageNotFound( - PackageNotFoundError { package_name, .. }, - ) => { - if self.in_npm_package(referrer) { - return Err(err.into()); - } - if let Some(byonm_npm_resolver) = - self.npm_resolver.as_byonm() - { - if byonm_npm_resolver - .find_ancestor_package_json_with_dep( - package_name, - referrer, - ) - .is_some() - { - return Err(anyhow!( - concat!( - "Could not resolve \"{}\", but found it in a package.json. ", - "Deno expects the node_modules/ directory to be up to date. ", - "Did you forget to run `deno install`?" - ), - specifier - )); - } - } - Ok(None) - } - PackageFolderResolveErrorKind::ReferrerNotFound(_) => { - if self.in_npm_package(referrer) { - return Err(err.into()); - } - Ok(None) - } - } - } - } - } - } - } - } - } - - pub fn resolve( - &self, - specifier: &str, - referrer: &ModuleSpecifier, - mode: NodeResolutionMode, - ) -> Result { - let referrer_kind = if self - .cjs_tracker - .is_maybe_cjs(referrer, MediaType::from_specifier(referrer)) - .map_err(|err| NodeResolveErrorKind::PackageResolve(err.into()))? - { - NodeModuleKind::Cjs - } else { - NodeModuleKind::Esm - }; - - let res = - self - .node_resolver - .resolve(specifier, referrer, referrer_kind, mode)?; - Ok(res) - } - - pub fn resolve_req_reference( - &self, - req_ref: &NpmPackageReqReference, - referrer: &ModuleSpecifier, - mode: NodeResolutionMode, - ) -> Result { - self.resolve_req_with_sub_path( - req_ref.req(), - req_ref.sub_path(), - referrer, - mode, - ) - } - - pub fn resolve_req_with_sub_path( - &self, - req: &PackageReq, - sub_path: Option<&str>, - referrer: &ModuleSpecifier, - mode: NodeResolutionMode, - ) -> Result { - let package_folder = self - .npm_resolver - .resolve_pkg_folder_from_deno_module_req(req, referrer)?; - let resolution_result = self.resolve_package_sub_path_from_deno_module( - &package_folder, - sub_path, - Some(referrer), - mode, - ); - match resolution_result { - Ok(url) => Ok(url), - Err(err) => { - if self.npm_resolver.as_byonm().is_some() { - let package_json_path = package_folder.join("package.json"); - if !self.fs.exists_sync(&package_json_path) { - return Err(anyhow!( - "Could not find '{}'. Deno expects the node_modules/ directory to be up to date. Did you forget to run `deno install`?", - package_json_path.display(), - )); - } - } - Err(err.into()) - } - } - } - - pub fn resolve_package_sub_path_from_deno_module( - &self, - package_folder: &Path, - sub_path: Option<&str>, - maybe_referrer: Option<&ModuleSpecifier>, - mode: NodeResolutionMode, - ) -> Result { - self.node_resolver.resolve_package_subpath_from_deno_module( - package_folder, - sub_path, - maybe_referrer, - mode, - ) - } - - pub fn handle_if_in_node_modules( - &self, - specifier: &ModuleSpecifier, - ) -> Result, AnyError> { - // skip canonicalizing if we definitely know it's unnecessary - if specifier.scheme() == "file" - && specifier.path().contains("/node_modules/") - { - // Specifiers in the node_modules directory are canonicalized - // so canoncalize then check if it's in the node_modules directory. - // If so, check if we need to store this specifier as being a CJS - // resolution. - let specifier = crate::node::resolve_specifier_into_node_modules( - specifier, - self.fs.as_ref(), - ); - return Ok(Some(specifier)); - } - - Ok(None) - } -} - #[derive(Debug, Error)] #[error("{media_type} files are not supported in npm packages: {specifier}")] pub struct NotSupportedKindInNpmError { @@ -419,229 +206,36 @@ impl NpmModuleLoader { } } -pub struct CjsTrackerOptions { - pub unstable_detect_cjs: bool, -} - -/// Keeps track of what module specifiers were resolved as CJS. -/// -/// Modules that are `.js` or `.ts` are only known to be CJS or -/// ESM after they're loaded based on their contents. So these files -/// will be "maybe CJS" until they're loaded. -#[derive(Debug)] -pub struct CjsTracker { - in_npm_pkg_checker: Arc, - pkg_json_resolver: Arc, - unstable_detect_cjs: bool, - known: DashMap, -} - -impl CjsTracker { - pub fn new( - in_npm_pkg_checker: Arc, - pkg_json_resolver: Arc, - options: CjsTrackerOptions, - ) -> Self { - Self { - in_npm_pkg_checker, - pkg_json_resolver, - unstable_detect_cjs: options.unstable_detect_cjs, - known: Default::default(), - } - } - - /// Checks whether the file might be treated as CJS, but it's not for sure - /// yet because the source hasn't been loaded to see whether it contains - /// imports or exports. - pub fn is_maybe_cjs( - &self, - specifier: &ModuleSpecifier, - media_type: MediaType, - ) -> Result { - self.treat_as_cjs_with_is_script(specifier, media_type, None) - } - - /// Gets whether the file is CJS. If true, this is for sure - /// cjs because `is_script` is provided. - /// - /// `is_script` should be `true` when the contents of the file at the - /// provided specifier are known to be a script and not an ES module. - pub fn is_cjs_with_known_is_script( - &self, - specifier: &ModuleSpecifier, - media_type: MediaType, - is_script: bool, - ) -> Result { - self.treat_as_cjs_with_is_script(specifier, media_type, Some(is_script)) - } - - fn treat_as_cjs_with_is_script( - &self, - specifier: &ModuleSpecifier, - media_type: MediaType, - is_script: Option, - ) -> Result { - let kind = match self - .get_known_kind_with_is_script(specifier, media_type, is_script) - { - Some(kind) => kind, - None => self.check_based_on_pkg_json(specifier)?, - }; - Ok(kind.is_cjs()) - } - - pub fn get_known_kind( - &self, - specifier: &ModuleSpecifier, - media_type: MediaType, - ) -> Option { - self.get_known_kind_with_is_script(specifier, media_type, None) - } - - fn get_known_kind_with_is_script( - &self, - specifier: &ModuleSpecifier, - media_type: MediaType, - is_script: Option, - ) -> Option { - if specifier.scheme() != "file" { - return Some(ModuleKind::Esm); - } - - match media_type { - MediaType::Mts | MediaType::Mjs | MediaType::Dmts => Some(ModuleKind::Esm), - MediaType::Cjs | MediaType::Cts | MediaType::Dcts => Some(ModuleKind::Cjs), - MediaType::Dts => { - // dts files are always determined based on the package.json because - // they contain imports/exports even when considered CJS - if let Some(value) = self.known.get(specifier).map(|v| *v) { - Some(value) - } else { - let value = self.check_based_on_pkg_json(specifier).ok(); - if let Some(value) = value { - self.known.insert(specifier.clone(), value); - } - Some(value.unwrap_or(ModuleKind::Esm)) - } - } - MediaType::Wasm | - MediaType::Json => Some(ModuleKind::Esm), - MediaType::JavaScript - | MediaType::Jsx - | MediaType::TypeScript - | MediaType::Tsx - // treat these as unknown - | MediaType::Css - | MediaType::SourceMap - | MediaType::Unknown => { - if let Some(value) = self.known.get(specifier).map(|v| *v) { - if value.is_cjs() && is_script == Some(false) { - // we now know this is actually esm - self.known.insert(specifier.clone(), ModuleKind::Esm); - Some(ModuleKind::Esm) - } else { - Some(value) - } - } else if is_script == Some(false) { - // we know this is esm - self.known.insert(specifier.clone(), ModuleKind::Esm); - Some(ModuleKind::Esm) - } else { - None - } - } - } - } - - fn check_based_on_pkg_json( - &self, - specifier: &ModuleSpecifier, - ) -> Result { - if self.in_npm_pkg_checker.in_npm_package(specifier) { - if let Some(pkg_json) = - self.pkg_json_resolver.get_closest_package_json(specifier)? - { - let is_file_location_cjs = pkg_json.typ != "module"; - Ok(ModuleKind::from_is_cjs(is_file_location_cjs)) - } else { - Ok(ModuleKind::Cjs) - } - } else if self.unstable_detect_cjs { - if let Some(pkg_json) = - self.pkg_json_resolver.get_closest_package_json(specifier)? - { - let is_cjs_type = pkg_json.typ == "commonjs"; - Ok(ModuleKind::from_is_cjs(is_cjs_type)) - } else { - Ok(ModuleKind::Esm) - } - } else { - Ok(ModuleKind::Esm) - } - } +pub struct CliResolverOptions { + pub deno_resolver: Arc, + pub npm_resolver: Option>, + pub bare_node_builtins_enabled: bool, } -pub type CliSloppyImportsResolver = - SloppyImportsResolver; - /// A resolver that takes care of resolution, taking into account loaded /// import map, JSX settings. #[derive(Debug)] -pub struct CliGraphResolver { - node_resolver: Option>, +pub struct CliResolver { + deno_resolver: Arc, npm_resolver: Option>, - sloppy_imports_resolver: Option>, - workspace_resolver: Arc, - maybe_default_jsx_import_source: Option, - maybe_default_jsx_import_source_types: Option, - maybe_jsx_import_source_module: Option, - maybe_vendor_specifier: Option, found_package_json_dep_flag: AtomicFlag, bare_node_builtins_enabled: bool, warned_pkgs: DashSet, } -pub struct CliGraphResolverOptions<'a> { - pub node_resolver: Option>, - pub npm_resolver: Option>, - pub sloppy_imports_resolver: Option>, - pub workspace_resolver: Arc, - pub bare_node_builtins_enabled: bool, - pub maybe_jsx_import_source_config: Option, - pub maybe_vendor_dir: Option<&'a PathBuf>, -} - -impl CliGraphResolver { - pub fn new(options: CliGraphResolverOptions) -> Self { +impl CliResolver { + pub fn new(options: CliResolverOptions) -> Self { Self { - node_resolver: options.node_resolver, + deno_resolver: options.deno_resolver, npm_resolver: options.npm_resolver, - sloppy_imports_resolver: options.sloppy_imports_resolver, - workspace_resolver: options.workspace_resolver, - maybe_default_jsx_import_source: options - .maybe_jsx_import_source_config - .as_ref() - .and_then(|c| c.default_specifier.clone()), - maybe_default_jsx_import_source_types: options - .maybe_jsx_import_source_config - .as_ref() - .and_then(|c| c.default_types_specifier.clone()), - maybe_jsx_import_source_module: options - .maybe_jsx_import_source_config - .map(|c| c.module), - maybe_vendor_specifier: options - .maybe_vendor_dir - .and_then(|v| ModuleSpecifier::from_directory_path(v).ok()), found_package_json_dep_flag: Default::default(), bare_node_builtins_enabled: options.bare_node_builtins_enabled, warned_pkgs: Default::default(), } } - pub fn as_graph_resolver(&self) -> &dyn Resolver { - self - } - + // todo(dsherret): move this off CliResolver as CliResolver is acting + // like a factory by doing this (it's beyond its responsibility) pub fn create_graph_npm_resolver(&self) -> WorkerCliNpmGraphResolver { WorkerCliNpmGraphResolver { npm_resolver: self.npm_resolver.as_ref(), @@ -649,28 +243,12 @@ impl CliGraphResolver { bare_node_builtins_enabled: self.bare_node_builtins_enabled, } } -} -impl Resolver for CliGraphResolver { - fn default_jsx_import_source(&self) -> Option { - self.maybe_default_jsx_import_source.clone() - } - - fn default_jsx_import_source_types(&self) -> Option { - self.maybe_default_jsx_import_source_types.clone() - } - - fn jsx_import_source_module(&self) -> &str { - self - .maybe_jsx_import_source_module - .as_deref() - .unwrap_or(DEFAULT_JSX_IMPORT_SOURCE_MODULE) - } - - fn resolve( + pub fn resolve( &self, raw_specifier: &str, referrer_range: &deno_graph::Range, + referrer_kind: NodeModuleKind, mode: ResolutionMode, ) -> Result { fn to_node_mode(mode: ResolutionMode) -> NodeResolutionMode { @@ -680,210 +258,50 @@ impl Resolver for CliGraphResolver { } } - let referrer = &referrer_range.specifier; + let resolution = self + .deno_resolver + .resolve( + raw_specifier, + &referrer_range.specifier, + referrer_kind, + to_node_mode(mode), + ) + .map_err(|err| match err.into_kind() { + deno_resolver::DenoResolveErrorKind::MappedResolution( + mapped_resolution_error, + ) => match mapped_resolution_error { + MappedResolutionError::Specifier(e) => ResolveError::Specifier(e), + // deno_graph checks specifically for an ImportMapError + MappedResolutionError::ImportMap(e) => ResolveError::Other(e.into()), + err => ResolveError::Other(err.into()), + }, + err => ResolveError::Other(err.into()), + })?; - // Use node resolution if we're in an npm package - if let Some(node_resolver) = self.node_resolver.as_ref() { - if referrer.scheme() == "file" && node_resolver.in_npm_package(referrer) { - return node_resolver - .resolve(raw_specifier, referrer, to_node_mode(mode)) - .map(|res| res.into_url()) - .map_err(|e| ResolveError::Other(e.into())); - } + if resolution.found_package_json_dep { + // mark that we need to do an "npm install" later + self.found_package_json_dep_flag.raise(); } - // Attempt to resolve with the workspace resolver - let result: Result<_, ResolveError> = self - .workspace_resolver - .resolve(raw_specifier, referrer) - .map_err(|err| match err { - MappedResolutionError::Specifier(err) => ResolveError::Specifier(err), - MappedResolutionError::ImportMap(err) => { - ResolveError::Other(err.into()) - } - MappedResolutionError::Workspace(err) => { - ResolveError::Other(err.into()) - } - }); - let result = match result { - Ok(resolution) => match resolution { - MappedResolution::Normal { - specifier, - maybe_diagnostic, - } - | MappedResolution::ImportMap { - specifier, - maybe_diagnostic, - } => { - if let Some(diagnostic) = maybe_diagnostic { - match &*diagnostic { - MappedResolutionDiagnostic::ConstraintNotMatchedLocalVersion { reference, .. } => { - if self.warned_pkgs.insert(reference.req().clone()) { - log::warn!("{} {}\n at {}", colors::yellow("Warning"), diagnostic, referrer_range); - } - } - } - } - // do sloppy imports resolution if enabled - if let Some(sloppy_imports_resolver) = &self.sloppy_imports_resolver { - Ok( - sloppy_imports_resolver - .resolve( - &specifier, - match mode { - ResolutionMode::Execution => { - SloppyImportsResolutionMode::Execution - } - ResolutionMode::Types => SloppyImportsResolutionMode::Types, - }, - ) - .map(|s| s.into_specifier()) - .unwrap_or(specifier), - ) - } else { - Ok(specifier) - } - } - MappedResolution::WorkspaceJsrPackage { specifier, .. } => { - Ok(specifier) - } - MappedResolution::WorkspaceNpmPackage { - target_pkg_json: pkg_json, - sub_path, - .. - } => self - .node_resolver - .as_ref() - .unwrap() - .resolve_package_sub_path_from_deno_module( - pkg_json.dir_path(), - sub_path.as_deref(), - Some(referrer), - to_node_mode(mode), - ) - .map_err(|e| ResolveError::Other(e.into())), - MappedResolution::PackageJson { - dep_result, - alias, - sub_path, + if let Some(diagnostic) = resolution.maybe_diagnostic { + match &*diagnostic { + MappedResolutionDiagnostic::ConstraintNotMatchedLocalVersion { + reference, .. } => { - // found a specifier in the package.json, so mark that - // we need to do an "npm install" later - self.found_package_json_dep_flag.raise(); - - dep_result - .as_ref() - .map_err(|e| ResolveError::Other(e.clone().into())) - .and_then(|dep| match dep { - PackageJsonDepValue::Req(req) => { - ModuleSpecifier::parse(&format!( - "npm:{}{}", - req, - sub_path.map(|s| format!("/{}", s)).unwrap_or_default() - )) - .map_err(|e| ResolveError::Other(e.into())) - } - PackageJsonDepValue::Workspace(version_req) => self - .workspace_resolver - .resolve_workspace_pkg_json_folder_for_pkg_json_dep( - alias, - version_req, - ) - .map_err(|e| ResolveError::Other(e.into())) - .and_then(|pkg_folder| { - self - .node_resolver - .as_ref() - .unwrap() - .resolve_package_sub_path_from_deno_module( - pkg_folder, - sub_path.as_deref(), - Some(referrer), - to_node_mode(mode), - ) - .map_err(|e| ResolveError::Other(e.into())) - }), - }) - } - }, - Err(err) => Err(err), - }; - - // When the user is vendoring, don't allow them to import directly from the vendor/ directory - // as it might cause them confusion or duplicate dependencies. Additionally, this folder has - // special treatment in the language server so it will definitely cause issues/confusion there - // if they do this. - if let Some(vendor_specifier) = &self.maybe_vendor_specifier { - if let Ok(specifier) = &result { - if specifier.as_str().starts_with(vendor_specifier.as_str()) { - return Err(ResolveError::Other(anyhow!("Importing from the vendor directory is not permitted. Use a remote specifier instead or disable vendoring."))); - } - } - } - - let Some(node_resolver) = &self.node_resolver else { - return result; - }; - - let is_byonm = self - .npm_resolver - .as_ref() - .is_some_and(|r| r.as_byonm().is_some()); - match result { - Ok(specifier) => { - if let Ok(npm_req_ref) = - NpmPackageReqReference::from_specifier(&specifier) - { - // check if the npm specifier resolves to a workspace member - if let Some(pkg_folder) = self - .workspace_resolver - .resolve_workspace_pkg_json_folder_for_npm_specifier( - npm_req_ref.req(), - ) - { - return node_resolver - .resolve_package_sub_path_from_deno_module( - pkg_folder, - npm_req_ref.sub_path(), - Some(referrer), - to_node_mode(mode), - ) - .map_err(|e| ResolveError::Other(e.into())); - } - - // do npm resolution for byonm - if is_byonm { - return node_resolver - .resolve_req_reference(&npm_req_ref, referrer, to_node_mode(mode)) - .map_err(|err| err.into()); - } - } - - Ok(match node_resolver.handle_if_in_node_modules(&specifier)? { - Some(specifier) => specifier, - None => specifier, - }) - } - Err(err) => { - // If byonm, check if the bare specifier resolves to an npm package - if is_byonm && referrer.scheme() == "file" { - let maybe_resolution = node_resolver - .resolve_if_for_npm_pkg(raw_specifier, referrer, to_node_mode(mode)) - .map_err(ResolveError::Other)?; - if let Some(res) = maybe_resolution { - match res { - NodeResolution::Module(url) => return Ok(url), - NodeResolution::BuiltIn(_) => { - // don't resolve bare specifiers for built-in modules via node resolution - } - } + if self.warned_pkgs.insert(reference.req().clone()) { + log::warn!( + "{} {}\n at {}", + colors::yellow("Warning"), + diagnostic, + referrer_range + ); } } - - Err(err) } } + + Ok(resolution.url) } } diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json index 27c8499ea21108..ccd773efbfdfd9 100644 --- a/cli/schemas/config-file.v1.json +++ b/cli/schemas/config-file.v1.json @@ -431,8 +431,34 @@ "type": "object", "patternProperties": { "^[A-Za-z][A-Za-z0-9_\\-:]*$": { - "type": "string", - "description": "Command to execute for this task name." + "oneOf": [ + { + "type": "string", + "description": "Command to execute for this task name." + }, + { + "type": "object", + "description": "A definition of a task to execute", + "properties": { + "description": { + "type": "string", + "description": "Description of a task that will be shown when running `deno task` without a task name" + }, + "command": { + "type": "string", + "required": true, + "description": "The task to execute" + }, + "dependencies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Tasks that should be executed before this task" + } + } + } + ] } }, "additionalProperties": false @@ -528,13 +554,14 @@ "bare-node-builtins", "byonm", "cron", - "detect-cjs", "ffi", "fs", "fmt-component", + "fmt-sql", "http", "kv", "net", + "node-globals", "sloppy-imports", "temporal", "unsafe-proto", diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index 9e265122687f03..e35119e0aa7dfa 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -47,6 +47,7 @@ use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_fs::RealFs; use deno_runtime::deno_io::fs::FsError; use deno_runtime::deno_node::PackageJson; +use deno_runtime::ops::otel::OtelConfig; use deno_semver::npm::NpmVersionReqParseError; use deno_semver::package::PackageReq; use deno_semver::Version; @@ -63,6 +64,7 @@ use crate::args::NpmInstallDepsProvider; use crate::args::PermissionFlags; use crate::args::UnstableConfig; use crate::cache::DenoDir; +use crate::cache::FastInsecureHasher; use crate::emit::Emitter; use crate::file_fetcher::FileFetcher; use crate::http_util::HttpClientProvider; @@ -173,6 +175,7 @@ pub struct SerializedWorkspaceResolver { pub struct Metadata { pub argv: Vec, pub seed: Option, + pub code_cache_key: Option, pub permissions: PermissionFlags, pub location: Option, pub v8_flags: Vec, @@ -185,6 +188,7 @@ pub struct Metadata { pub entrypoint_key: String, pub node_modules: Option, pub unstable_config: UnstableConfig, + pub otel_config: Option, // None means disabled. } fn write_binary_bytes( @@ -197,7 +201,8 @@ fn write_binary_bytes( compile_flags: &CompileFlags, ) -> Result<(), AnyError> { let data_section_bytes = - serialize_binary_data_section(metadata, npm_snapshot, remote_modules, vfs)?; + serialize_binary_data_section(metadata, npm_snapshot, remote_modules, vfs) + .context("Serializing binary data section.")?; let target = compile_flags.resolve_target(); if target.contains("linux") { @@ -360,6 +365,7 @@ pub fn extract_standalone( pub struct DenoCompileBinaryWriter<'a> { cjs_tracker: &'a CjsTracker, + cli_options: &'a CliOptions, deno_dir: &'a DenoDir, emitter: &'a Emitter, file_fetcher: &'a FileFetcher, @@ -373,6 +379,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { #[allow(clippy::too_many_arguments)] pub fn new( cjs_tracker: &'a CjsTracker, + cli_options: &'a CliOptions, deno_dir: &'a DenoDir, emitter: &'a Emitter, file_fetcher: &'a FileFetcher, @@ -383,6 +390,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { ) -> Self { Self { cjs_tracker, + cli_options, deno_dir, emitter, file_fetcher, @@ -399,8 +407,8 @@ impl<'a> DenoCompileBinaryWriter<'a> { graph: &ModuleGraph, root_dir_url: StandaloneRelativeFileBaseUrl<'_>, entrypoint: &ModuleSpecifier, + include_files: &[ModuleSpecifier], compile_flags: &CompileFlags, - cli_options: &CliOptions, ) -> Result<(), AnyError> { // Select base binary based on target let mut original_binary = self.get_base_binary(compile_flags).await?; @@ -413,7 +421,8 @@ impl<'a> DenoCompileBinaryWriter<'a> { target, ) } - set_windows_binary_to_gui(&mut original_binary)?; + set_windows_binary_to_gui(&mut original_binary) + .context("Setting windows binary to GUI.")?; } if compile_flags.icon.is_some() { let target = compile_flags.resolve_target(); @@ -431,7 +440,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { graph, root_dir_url, entrypoint, - cli_options, + include_files, compile_flags, ) .await @@ -474,10 +483,14 @@ impl<'a> DenoCompileBinaryWriter<'a> { if !binary_path.exists() { self .download_base_binary(&download_directory, &binary_path_suffix) - .await?; + .await + .context("Setting up base binary.")?; } - let archive_data = std::fs::read(binary_path)?; + let read_file = |path: &Path| -> Result, AnyError> { + std::fs::read(path).with_context(|| format!("Reading {}", path.display())) + }; + let archive_data = read_file(&binary_path)?; let temp_dir = tempfile::TempDir::new()?; let base_binary_path = archive::unpack_into_dir(archive::UnpackArgs { exe_name: "denort", @@ -486,7 +499,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { is_windows: target.contains("windows"), dest_path: temp_dir.path(), })?; - let base_binary = std::fs::read(base_binary_path)?; + let base_binary = read_file(&base_binary_path)?; drop(temp_dir); // delete the temp dir Ok(base_binary) } @@ -514,15 +527,19 @@ impl<'a> DenoCompileBinaryWriter<'a> { let bytes = match maybe_bytes { Some(bytes) => bytes, None => { - log::info!("Download could not be found, aborting"); - std::process::exit(1) + bail!("Download could not be found, aborting"); } }; - std::fs::create_dir_all(output_directory)?; + let create_dir_all = |dir: &Path| { + std::fs::create_dir_all(dir) + .with_context(|| format!("Creating {}", dir.display())) + }; + create_dir_all(output_directory)?; let output_path = output_directory.join(binary_path_suffix); - std::fs::create_dir_all(output_path.parent().unwrap())?; - tokio::fs::write(output_path, bytes).await?; + create_dir_all(output_path.parent().unwrap())?; + std::fs::write(&output_path, bytes) + .with_context(|| format!("Writing {}", output_path.display()))?; Ok(()) } @@ -536,76 +553,101 @@ impl<'a> DenoCompileBinaryWriter<'a> { graph: &ModuleGraph, root_dir_url: StandaloneRelativeFileBaseUrl<'_>, entrypoint: &ModuleSpecifier, - cli_options: &CliOptions, + include_files: &[ModuleSpecifier], compile_flags: &CompileFlags, ) -> Result<(), AnyError> { - let ca_data = match cli_options.ca_data() { + let ca_data = match self.cli_options.ca_data() { Some(CaData::File(ca_file)) => Some( - std::fs::read(ca_file) - .with_context(|| format!("Reading: {ca_file}"))?, + std::fs::read(ca_file).with_context(|| format!("Reading {ca_file}"))?, ), Some(CaData::Bytes(bytes)) => Some(bytes.clone()), None => None, }; let root_path = root_dir_url.inner().to_file_path().unwrap(); - let (maybe_npm_vfs, node_modules, npm_snapshot) = match self - .npm_resolver - .as_inner() - { - InnerCliNpmResolverRef::Managed(managed) => { - let snapshot = - managed.serialized_valid_snapshot_for_system(&self.npm_system_info); - if !snapshot.as_serialized().packages.is_empty() { - let npm_vfs_builder = self.build_npm_vfs(&root_path, cli_options)?; + let (maybe_npm_vfs, node_modules, npm_snapshot) = + match self.npm_resolver.as_inner() { + InnerCliNpmResolverRef::Managed(managed) => { + let snapshot = + managed.serialized_valid_snapshot_for_system(&self.npm_system_info); + if !snapshot.as_serialized().packages.is_empty() { + let npm_vfs_builder = self + .build_npm_vfs(&root_path) + .context("Building npm vfs.")?; + ( + Some(npm_vfs_builder), + Some(NodeModules::Managed { + node_modules_dir: self + .npm_resolver + .root_node_modules_path() + .map(|path| { + root_dir_url + .specifier_key( + &ModuleSpecifier::from_directory_path(path).unwrap(), + ) + .into_owned() + }), + }), + Some(snapshot), + ) + } else { + (None, None, None) + } + } + InnerCliNpmResolverRef::Byonm(resolver) => { + let npm_vfs_builder = self.build_npm_vfs(&root_path)?; ( Some(npm_vfs_builder), - Some(NodeModules::Managed { - node_modules_dir: self.npm_resolver.root_node_modules_path().map( - |path| { + Some(NodeModules::Byonm { + root_node_modules_dir: resolver.root_node_modules_path().map( + |node_modules_dir| { root_dir_url .specifier_key( - &ModuleSpecifier::from_directory_path(path).unwrap(), + &ModuleSpecifier::from_directory_path(node_modules_dir) + .unwrap(), ) .into_owned() }, ), }), - Some(snapshot), + None, ) - } else { - (None, None, None) } - } - InnerCliNpmResolverRef::Byonm(resolver) => { - let npm_vfs_builder = self.build_npm_vfs(&root_path, cli_options)?; - ( - Some(npm_vfs_builder), - Some(NodeModules::Byonm { - root_node_modules_dir: resolver.root_node_modules_path().map( - |node_modules_dir| { - root_dir_url - .specifier_key( - &ModuleSpecifier::from_directory_path(node_modules_dir) - .unwrap(), - ) - .into_owned() - }, - ), - }), - None, - ) - } - }; + }; let mut vfs = if let Some(npm_vfs) = maybe_npm_vfs { npm_vfs } else { VfsBuilder::new(root_path.clone())? }; + for include_file in include_files { + let path = deno_path_util::url_to_file_path(include_file)?; + if path.is_dir() { + // TODO(#26941): we should analyze if any of these are + // modules in order to include their dependencies + vfs + .add_dir_recursive(&path) + .with_context(|| format!("Including {}", path.display()))?; + } else { + vfs + .add_file_at_path(&path) + .with_context(|| format!("Including {}", path.display()))?; + } + } let mut remote_modules_store = RemoteModulesStoreBuilder::default(); + let mut code_cache_key_hasher = if self.cli_options.code_cache_enabled() { + Some(FastInsecureHasher::new_deno_versioned()) + } else { + None + }; for module in graph.modules() { if module.specifier().scheme() == "data" { continue; // don't store data urls as an entry as they're in the code } + if let Some(hasher) = &mut code_cache_key_hasher { + if let Some(source) = module.source() { + hasher.write(module.specifier().as_str().as_bytes()); + hasher.write(source.as_bytes()); + } + } let (maybe_source, media_type) = match module { deno_graph::Module::Js(m) => { let source = if m.media_type.is_emittable() { @@ -633,6 +675,9 @@ impl<'a> DenoCompileBinaryWriter<'a> { deno_graph::Module::Json(m) => { (Some(m.source.as_bytes().to_vec()), m.media_type) } + deno_graph::Module::Wasm(m) => { + (Some(m.source.to_vec()), MediaType::Wasm) + } deno_graph::Module::Npm(_) | deno_graph::Module::Node(_) | deno_graph::Module::External(_) => (None, MediaType::Unknown), @@ -656,25 +701,33 @@ impl<'a> DenoCompileBinaryWriter<'a> { } remote_modules_store.add_redirects(&graph.redirects); - let env_vars_from_env_file = match cli_options.env_file_name() { - Some(env_filename) => { - log::info!("{} Environment variables from the file \"{}\" were embedded in the generated executable file", crate::colors::yellow("Warning"), env_filename); - get_file_env_vars(env_filename.to_string())? + let env_vars_from_env_file = match self.cli_options.env_file_name() { + Some(env_filenames) => { + let mut aggregated_env_vars = IndexMap::new(); + for env_filename in env_filenames.iter().rev() { + log::info!("{} Environment variables from the file \"{}\" were embedded in the generated executable file", crate::colors::yellow("Warning"), env_filename); + + let env_vars = get_file_env_vars(env_filename.to_string())?; + aggregated_env_vars.extend(env_vars); + } + aggregated_env_vars } None => Default::default(), }; let metadata = Metadata { argv: compile_flags.args.clone(), - seed: cli_options.seed(), - location: cli_options.location_flag().clone(), - permissions: cli_options.permission_flags().clone(), - v8_flags: cli_options.v8_flags().clone(), - unsafely_ignore_certificate_errors: cli_options + seed: self.cli_options.seed(), + code_cache_key: code_cache_key_hasher.map(|h| h.finish()), + location: self.cli_options.location_flag().clone(), + permissions: self.cli_options.permission_flags().clone(), + v8_flags: self.cli_options.v8_flags().clone(), + unsafely_ignore_certificate_errors: self + .cli_options .unsafely_ignore_certificate_errors() .clone(), - log_level: cli_options.log_level(), - ca_stores: cli_options.ca_stores().clone(), + log_level: self.cli_options.log_level(), + ca_stores: self.cli_options.ca_stores().clone(), ca_data, env_vars_from_env_file, entrypoint_key: root_dir_url.specifier_key(entrypoint).into_owned(), @@ -717,11 +770,11 @@ impl<'a> DenoCompileBinaryWriter<'a> { node_modules, unstable_config: UnstableConfig { legacy_flag_enabled: false, - bare_node_builtins: cli_options.unstable_bare_node_builtins(), - detect_cjs: cli_options.unstable_detect_cjs(), - sloppy_imports: cli_options.unstable_sloppy_imports(), - features: cli_options.unstable_features(), + bare_node_builtins: self.cli_options.unstable_bare_node_builtins(), + sloppy_imports: self.cli_options.unstable_sloppy_imports(), + features: self.cli_options.unstable_features(), }, + otel_config: self.cli_options.otel_config(), }; write_binary_bytes( @@ -733,13 +786,10 @@ impl<'a> DenoCompileBinaryWriter<'a> { vfs, compile_flags, ) + .context("Writing binary bytes") } - fn build_npm_vfs( - &self, - root_path: &Path, - cli_options: &CliOptions, - ) -> Result { + fn build_npm_vfs(&self, root_path: &Path) -> Result { fn maybe_warn_different_system(system_info: &NpmSystemInfo) { if system_info != &NpmSystemInfo::default() { log::warn!("{} The node_modules directory may be incompatible with the target system.", crate::colors::yellow("Warning")); @@ -816,13 +866,18 @@ impl<'a> DenoCompileBinaryWriter<'a> { InnerCliNpmResolverRef::Byonm(_) => { maybe_warn_different_system(&self.npm_system_info); let mut builder = VfsBuilder::new(root_path.to_path_buf())?; - for pkg_json in cli_options.workspace().package_jsons() { + for pkg_json in self.cli_options.workspace().package_jsons() { builder.add_file_at_path(&pkg_json.path)?; } // traverse and add all the node_modules directories in the workspace let mut pending_dirs = VecDeque::new(); pending_dirs.push_back( - cli_options.workspace().root_dir().to_file_path().unwrap(), + self + .cli_options + .workspace() + .root_dir() + .to_file_path() + .unwrap(), ); while let Some(pending_dir) = pending_dirs.pop_front() { let mut entries = fs::read_dir(&pending_dir) diff --git a/cli/standalone/code_cache.rs b/cli/standalone/code_cache.rs new file mode 100644 index 00000000000000..9580b9b44e16c1 --- /dev/null +++ b/cli/standalone/code_cache.rs @@ -0,0 +1,523 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +use std::collections::BTreeMap; +use std::collections::HashMap; +use std::io::BufReader; +use std::io::BufWriter; +use std::io::Read; +use std::io::Write; +use std::path::Path; +use std::path::PathBuf; +use std::sync::Arc; + +use deno_ast::ModuleSpecifier; +use deno_core::anyhow::bail; +use deno_core::error::AnyError; +use deno_core::parking_lot::Mutex; +use deno_core::unsync::sync::AtomicFlag; +use deno_runtime::code_cache::CodeCache; +use deno_runtime::code_cache::CodeCacheType; + +use crate::cache::FastInsecureHasher; +use crate::util::path::get_atomic_file_path; +use crate::worker::CliCodeCache; + +enum CodeCacheStrategy { + FirstRun(FirstRunCodeCacheStrategy), + SubsequentRun(SubsequentRunCodeCacheStrategy), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct DenoCompileCodeCacheEntry { + pub source_hash: u64, + pub data: Vec, +} + +pub struct DenoCompileCodeCache { + strategy: CodeCacheStrategy, +} + +impl DenoCompileCodeCache { + pub fn new(file_path: PathBuf, cache_key: u64) -> Self { + // attempt to deserialize the cache data + match deserialize(&file_path, cache_key) { + Ok(data) => { + log::debug!( + "Loaded {} code cache entries from {}", + data.len(), + file_path.display() + ); + Self { + strategy: CodeCacheStrategy::SubsequentRun( + SubsequentRunCodeCacheStrategy { + is_finished: AtomicFlag::lowered(), + data: Mutex::new(data), + }, + ), + } + } + Err(err) => { + log::debug!( + "Failed to deserialize code cache from {}: {:#}", + file_path.display(), + err + ); + Self { + strategy: CodeCacheStrategy::FirstRun(FirstRunCodeCacheStrategy { + cache_key, + file_path, + is_finished: AtomicFlag::lowered(), + data: Mutex::new(FirstRunCodeCacheData { + cache: HashMap::new(), + add_count: 0, + }), + }), + } + } + } + } +} + +impl CodeCache for DenoCompileCodeCache { + fn get_sync( + &self, + specifier: &ModuleSpecifier, + code_cache_type: CodeCacheType, + source_hash: u64, + ) -> Option> { + match &self.strategy { + CodeCacheStrategy::FirstRun(strategy) => { + if !strategy.is_finished.is_raised() { + // we keep track of how many times the cache is requested + // then serialize the cache when we get that number of + // "set" calls + strategy.data.lock().add_count += 1; + } + None + } + CodeCacheStrategy::SubsequentRun(strategy) => { + if strategy.is_finished.is_raised() { + return None; + } + strategy.take_from_cache(specifier, code_cache_type, source_hash) + } + } + } + + fn set_sync( + &self, + specifier: ModuleSpecifier, + code_cache_type: CodeCacheType, + source_hash: u64, + bytes: &[u8], + ) { + match &self.strategy { + CodeCacheStrategy::FirstRun(strategy) => { + if strategy.is_finished.is_raised() { + return; + } + + let data_to_serialize = { + let mut data = strategy.data.lock(); + data.cache.insert( + (specifier.to_string(), code_cache_type), + DenoCompileCodeCacheEntry { + source_hash, + data: bytes.to_vec(), + }, + ); + if data.add_count != 0 { + data.add_count -= 1; + } + if data.add_count == 0 { + // don't allow using the cache anymore + strategy.is_finished.raise(); + if data.cache.is_empty() { + None + } else { + Some(std::mem::take(&mut data.cache)) + } + } else { + None + } + }; + if let Some(cache_data) = &data_to_serialize { + strategy.write_cache_data(cache_data); + } + } + CodeCacheStrategy::SubsequentRun(_) => { + // do nothing + } + } + } +} + +impl CliCodeCache for DenoCompileCodeCache { + fn enabled(&self) -> bool { + match &self.strategy { + CodeCacheStrategy::FirstRun(strategy) => { + !strategy.is_finished.is_raised() + } + CodeCacheStrategy::SubsequentRun(strategy) => { + !strategy.is_finished.is_raised() + } + } + } + + fn as_code_cache(self: Arc) -> Arc { + self + } +} + +type CodeCacheKey = (String, CodeCacheType); + +struct FirstRunCodeCacheData { + cache: HashMap, + add_count: usize, +} + +struct FirstRunCodeCacheStrategy { + cache_key: u64, + file_path: PathBuf, + is_finished: AtomicFlag, + data: Mutex, +} + +impl FirstRunCodeCacheStrategy { + fn write_cache_data( + &self, + cache_data: &HashMap, + ) { + let count = cache_data.len(); + let temp_file = get_atomic_file_path(&self.file_path); + match serialize(&temp_file, self.cache_key, cache_data) { + Ok(()) => { + if let Err(err) = std::fs::rename(&temp_file, &self.file_path) { + log::debug!("Failed to rename code cache: {}", err); + let _ = std::fs::remove_file(&temp_file); + } else { + log::debug!("Serialized {} code cache entries", count); + } + } + Err(err) => { + let _ = std::fs::remove_file(&temp_file); + log::debug!("Failed to serialize code cache: {}", err); + } + } + } +} + +struct SubsequentRunCodeCacheStrategy { + is_finished: AtomicFlag, + data: Mutex>, +} + +impl SubsequentRunCodeCacheStrategy { + fn take_from_cache( + &self, + specifier: &ModuleSpecifier, + code_cache_type: CodeCacheType, + source_hash: u64, + ) -> Option> { + let mut data = self.data.lock(); + // todo(dsherret): how to avoid the clone here? + let entry = data.remove(&(specifier.to_string(), code_cache_type))?; + if entry.source_hash != source_hash { + return None; + } + if data.is_empty() { + self.is_finished.raise(); + } + Some(entry.data) + } +} + +/// File format: +/// -

+/// - +/// - +/// - <[entry length]> - u64 * number of entries +/// - <[entry]> +/// - <[u8]: entry data> +/// - +/// - : code cache type +/// - +/// - +/// - +fn serialize( + file_path: &Path, + cache_key: u64, + cache: &HashMap, +) -> Result<(), AnyError> { + let cache_file = std::fs::OpenOptions::new() + .create(true) + .truncate(true) + .write(true) + .open(file_path)?; + let mut writer = BufWriter::new(cache_file); + serialize_with_writer(&mut writer, cache_key, cache) +} + +fn serialize_with_writer( + writer: &mut BufWriter, + cache_key: u64, + cache: &HashMap, +) -> Result<(), AnyError> { + // header + writer.write_all(&cache_key.to_le_bytes())?; + writer.write_all(&(cache.len() as u32).to_le_bytes())?; + // lengths of each entry + for ((specifier, _), entry) in cache { + let len: u64 = + entry.data.len() as u64 + specifier.len() as u64 + 1 + 4 + 8 + 8; + writer.write_all(&len.to_le_bytes())?; + } + // entries + for ((specifier, code_cache_type), entry) in cache { + writer.write_all(&entry.data)?; + writer.write_all(&[match code_cache_type { + CodeCacheType::EsModule => 0, + CodeCacheType::Script => 1, + }])?; + writer.write_all(specifier.as_bytes())?; + writer.write_all(&(specifier.len() as u32).to_le_bytes())?; + writer.write_all(&entry.source_hash.to_le_bytes())?; + let hash: u64 = FastInsecureHasher::new_without_deno_version() + .write(&entry.data) + .finish(); + writer.write_all(&hash.to_le_bytes())?; + } + + writer.flush()?; + + Ok(()) +} + +fn deserialize( + file_path: &Path, + expected_cache_key: u64, +) -> Result, AnyError> { + let cache_file = std::fs::File::open(file_path)?; + let mut reader = BufReader::new(cache_file); + deserialize_with_reader(&mut reader, expected_cache_key) +} + +fn deserialize_with_reader( + reader: &mut BufReader, + expected_cache_key: u64, +) -> Result, AnyError> { + // it's very important to use this below so that a corrupt cache file + // doesn't cause a memory allocation error + fn new_vec_sized( + capacity: usize, + default_value: T, + ) -> Result, AnyError> { + let mut vec = Vec::new(); + vec.try_reserve(capacity)?; + vec.resize(capacity, default_value); + Ok(vec) + } + + fn try_subtract(a: usize, b: usize) -> Result { + if a < b { + bail!("Integer underflow"); + } + Ok(a - b) + } + + let mut header_bytes = vec![0; 8 + 4]; + reader.read_exact(&mut header_bytes)?; + let actual_cache_key = u64::from_le_bytes(header_bytes[..8].try_into()?); + if actual_cache_key != expected_cache_key { + // cache bust + bail!("Cache key mismatch"); + } + let len = u32::from_le_bytes(header_bytes[8..].try_into()?) as usize; + // read the lengths for each entry found in the file + let entry_len_bytes_capacity = len * 8; + let mut entry_len_bytes = new_vec_sized(entry_len_bytes_capacity, 0)?; + reader.read_exact(&mut entry_len_bytes)?; + let mut lengths = Vec::new(); + lengths.try_reserve(len)?; + for i in 0..len { + let pos = i * 8; + lengths.push( + u64::from_le_bytes(entry_len_bytes[pos..pos + 8].try_into()?) as usize, + ); + } + + let mut map = HashMap::new(); + map.try_reserve(len)?; + for len in lengths { + let mut buffer = new_vec_sized(len, 0)?; + reader.read_exact(&mut buffer)?; + let entry_data_hash_start_pos = try_subtract(buffer.len(), 8)?; + let expected_entry_data_hash = + u64::from_le_bytes(buffer[entry_data_hash_start_pos..].try_into()?); + let source_hash_start_pos = try_subtract(entry_data_hash_start_pos, 8)?; + let source_hash = u64::from_le_bytes( + buffer[source_hash_start_pos..entry_data_hash_start_pos].try_into()?, + ); + let specifier_end_pos = try_subtract(source_hash_start_pos, 4)?; + let specifier_len = u32::from_le_bytes( + buffer[specifier_end_pos..source_hash_start_pos].try_into()?, + ) as usize; + let specifier_start_pos = try_subtract(specifier_end_pos, specifier_len)?; + let specifier = String::from_utf8( + buffer[specifier_start_pos..specifier_end_pos].to_vec(), + )?; + let code_cache_type_pos = try_subtract(specifier_start_pos, 1)?; + let code_cache_type = match buffer[code_cache_type_pos] { + 0 => CodeCacheType::EsModule, + 1 => CodeCacheType::Script, + _ => bail!("Invalid code cache type"), + }; + buffer.truncate(code_cache_type_pos); + let actual_entry_data_hash: u64 = + FastInsecureHasher::new_without_deno_version() + .write(&buffer) + .finish(); + if expected_entry_data_hash != actual_entry_data_hash { + bail!("Hash mismatch.") + } + map.insert( + (specifier, code_cache_type), + DenoCompileCodeCacheEntry { + source_hash, + data: buffer, + }, + ); + } + + Ok(map) +} + +#[cfg(test)] +mod test { + use test_util::TempDir; + + use super::*; + use std::fs::File; + + #[test] + fn serialize_deserialize() { + let cache_key = 123456; + let cache = { + let mut cache = HashMap::new(); + cache.insert( + ("specifier1".to_string(), CodeCacheType::EsModule), + DenoCompileCodeCacheEntry { + source_hash: 1, + data: vec![1, 2, 3], + }, + ); + cache.insert( + ("specifier2".to_string(), CodeCacheType::EsModule), + DenoCompileCodeCacheEntry { + source_hash: 2, + data: vec![4, 5, 6], + }, + ); + cache.insert( + ("specifier2".to_string(), CodeCacheType::Script), + DenoCompileCodeCacheEntry { + source_hash: 2, + data: vec![6, 5, 1], + }, + ); + cache + }; + let mut buffer = Vec::new(); + serialize_with_writer(&mut BufWriter::new(&mut buffer), cache_key, &cache) + .unwrap(); + let deserialized = + deserialize_with_reader(&mut BufReader::new(&buffer[..]), cache_key) + .unwrap(); + assert_eq!(cache, deserialized); + } + + #[test] + fn serialize_deserialize_empty() { + let cache_key = 1234; + let cache = HashMap::new(); + let mut buffer = Vec::new(); + serialize_with_writer(&mut BufWriter::new(&mut buffer), cache_key, &cache) + .unwrap(); + let deserialized = + deserialize_with_reader(&mut BufReader::new(&buffer[..]), cache_key) + .unwrap(); + assert_eq!(cache, deserialized); + } + + #[test] + fn serialize_deserialize_corrupt() { + let buffer = "corrupttestingtestingtesting".as_bytes().to_vec(); + let err = deserialize_with_reader(&mut BufReader::new(&buffer[..]), 1234) + .unwrap_err(); + assert_eq!(err.to_string(), "Cache key mismatch"); + } + + #[test] + fn code_cache() { + let temp_dir = TempDir::new(); + let file_path = temp_dir.path().join("cache.bin").to_path_buf(); + let url1 = ModuleSpecifier::parse("https://deno.land/example1.js").unwrap(); + let url2 = ModuleSpecifier::parse("https://deno.land/example2.js").unwrap(); + // first run + { + let code_cache = DenoCompileCodeCache::new(file_path.clone(), 1234); + assert!(code_cache + .get_sync(&url1, CodeCacheType::EsModule, 0) + .is_none()); + assert!(code_cache + .get_sync(&url2, CodeCacheType::EsModule, 1) + .is_none()); + assert!(code_cache.enabled()); + code_cache.set_sync(url1.clone(), CodeCacheType::EsModule, 0, &[1, 2, 3]); + assert!(code_cache.enabled()); + assert!(!file_path.exists()); + code_cache.set_sync(url2.clone(), CodeCacheType::EsModule, 1, &[2, 1, 3]); + assert!(file_path.exists()); // now the new code cache exists + assert!(!code_cache.enabled()); // no longer enabled + } + // second run + { + let code_cache = DenoCompileCodeCache::new(file_path.clone(), 1234); + assert!(code_cache.enabled()); + let result1 = code_cache + .get_sync(&url1, CodeCacheType::EsModule, 0) + .unwrap(); + assert!(code_cache.enabled()); + let result2 = code_cache + .get_sync(&url2, CodeCacheType::EsModule, 1) + .unwrap(); + assert!(!code_cache.enabled()); // no longer enabled + assert_eq!(result1, vec![1, 2, 3]); + assert_eq!(result2, vec![2, 1, 3]); + } + + // new cache key first run + { + let code_cache = DenoCompileCodeCache::new(file_path.clone(), 54321); + assert!(code_cache + .get_sync(&url1, CodeCacheType::EsModule, 0) + .is_none()); + assert!(code_cache + .get_sync(&url2, CodeCacheType::EsModule, 1) + .is_none()); + code_cache.set_sync(url1.clone(), CodeCacheType::EsModule, 0, &[2, 2, 3]); + code_cache.set_sync(url2.clone(), CodeCacheType::EsModule, 1, &[3, 2, 3]); + } + // new cache key second run + { + let code_cache = DenoCompileCodeCache::new(file_path.clone(), 54321); + let result1 = code_cache + .get_sync(&url1, CodeCacheType::EsModule, 0) + .unwrap(); + assert_eq!(result1, vec![2, 2, 3]); + assert!(code_cache + .get_sync(&url2, CodeCacheType::EsModule, 5) // different hash will cause none + .is_none()); + } + } +} diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index e98d1594a97d41..e32a7c839c3e30 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -7,6 +7,7 @@ use binary::StandaloneData; use binary::StandaloneModules; +use code_cache::DenoCompileCodeCache; use deno_ast::MediaType; use deno_cache_dir::npm::NpmCacheDir; use deno_config::workspace::MappedResolution; @@ -17,6 +18,7 @@ use deno_core::anyhow::Context; use deno_core::error::generic_error; use deno_core::error::type_error; use deno_core::error::AnyError; +use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; use deno_core::v8_set_flags; use deno_core::FastString; @@ -27,8 +29,10 @@ use deno_core::ModuleSpecifier; use deno_core::ModuleType; use deno_core::RequestedModuleType; use deno_core::ResolutionKind; +use deno_core::SourceCodeCacheInfo; use deno_npm::npm_rc::ResolvedNpmRc; use deno_package_json::PackageJsonDepValue; +use deno_resolver::npm::NpmReqResolverOptions; use deno_runtime::deno_fs; use deno_runtime::deno_node::create_host_defined_options; use deno_runtime::deno_node::NodeRequireLoader; @@ -45,6 +49,8 @@ use deno_runtime::WorkerLogLevel; use deno_semver::npm::NpmPackageReqReference; use import_map::parse_from_json; use node_resolver::analyze::NodeCodeTranslator; +use node_resolver::errors::ClosestPkgJsonError; +use node_resolver::NodeModuleKind; use node_resolver::NodeResolutionMode; use serialization::DenoCompileModuleSource; use std::borrow::Cow; @@ -61,6 +67,7 @@ use crate::args::StorageKeyResolver; use crate::cache::Caches; use crate::cache::DenoCacheEnvFsAdapter; use crate::cache::DenoDirProvider; +use crate::cache::FastInsecureHasher; use crate::cache::NodeAnalysisCache; use crate::cache::RealDenoCacheEnv; use crate::http_util::HttpClientProvider; @@ -76,19 +83,21 @@ use crate::npm::CliNpmResolverCreateOptions; use crate::npm::CliNpmResolverManagedSnapshotOption; use crate::npm::CreateInNpmPkgCheckerOptions; use crate::resolver::CjsTracker; -use crate::resolver::CjsTrackerOptions; use crate::resolver::CliDenoResolverFs; -use crate::resolver::CliNodeResolver; +use crate::resolver::CliNpmReqResolver; +use crate::resolver::IsCjsResolverOptions; use crate::resolver::NpmModuleLoader; use crate::util::progress_bar::ProgressBar; use crate::util::progress_bar::ProgressBarStyle; use crate::util::v8::construct_v8_flags; +use crate::worker::CliCodeCache; use crate::worker::CliMainWorkerFactory; use crate::worker::CliMainWorkerOptions; use crate::worker::CreateModuleLoaderResult; use crate::worker::ModuleLoaderFactory; pub mod binary; +mod code_cache; mod file_system; mod serialization; mod virtual_fs; @@ -105,10 +114,40 @@ struct SharedModuleLoaderState { fs: Arc, modules: StandaloneModules, node_code_translator: Arc, - node_resolver: Arc, + node_resolver: Arc, npm_module_loader: Arc, + npm_req_resolver: Arc, npm_resolver: Arc, workspace_resolver: WorkspaceResolver, + code_cache: Option>, +} + +impl SharedModuleLoaderState { + fn get_code_cache( + &self, + specifier: &ModuleSpecifier, + source: &[u8], + ) -> Option { + let Some(code_cache) = &self.code_cache else { + return None; + }; + if !code_cache.enabled() { + return None; + } + // deno version is already included in the root cache key + let hash = FastInsecureHasher::new_without_deno_version() + .write_hashable(source) + .finish(); + let data = code_cache.get_sync( + specifier, + deno_runtime::code_cache::CodeCacheType::EsModule, + hash, + ); + Some(SourceCodeCacheInfo { + hash, + data: data.map(Cow::Owned), + }) + } } #[derive(Clone)] @@ -146,13 +185,27 @@ impl ModuleLoader for EmbeddedModuleLoader { type_error(format!("Referrer uses invalid specifier: {}", err)) })? }; + let referrer_kind = if self + .shared + .cjs_tracker + .is_maybe_cjs(&referrer, MediaType::from_specifier(&referrer))? + { + NodeModuleKind::Cjs + } else { + NodeModuleKind::Esm + }; if self.shared.node_resolver.in_npm_package(&referrer) { return Ok( self .shared .node_resolver - .resolve(raw_specifier, &referrer, NodeResolutionMode::Execution)? + .resolve( + raw_specifier, + &referrer, + referrer_kind, + NodeResolutionMode::Execution, + )? .into_url(), ); } @@ -174,10 +227,11 @@ impl ModuleLoader for EmbeddedModuleLoader { self .shared .node_resolver - .resolve_package_sub_path_from_deno_module( + .resolve_package_subpath_from_deno_module( pkg_json.dir_path(), sub_path.as_deref(), Some(&referrer), + referrer_kind, NodeResolutionMode::Execution, )?, ), @@ -187,14 +241,17 @@ impl ModuleLoader for EmbeddedModuleLoader { alias, .. }) => match dep_result.as_ref().map_err(|e| AnyError::from(e.clone()))? { - PackageJsonDepValue::Req(req) => { - self.shared.node_resolver.resolve_req_with_sub_path( + PackageJsonDepValue::Req(req) => self + .shared + .npm_req_resolver + .resolve_req_with_sub_path( req, sub_path.as_deref(), &referrer, + referrer_kind, NodeResolutionMode::Execution, ) - } + .map_err(AnyError::from), PackageJsonDepValue::Workspace(version_req) => { let pkg_folder = self .shared @@ -207,10 +264,11 @@ impl ModuleLoader for EmbeddedModuleLoader { self .shared .node_resolver - .resolve_package_sub_path_from_deno_module( + .resolve_package_subpath_from_deno_module( pkg_folder, sub_path.as_deref(), Some(&referrer), + referrer_kind, NodeResolutionMode::Execution, )?, ) @@ -221,11 +279,12 @@ impl ModuleLoader for EmbeddedModuleLoader { if let Ok(reference) = NpmPackageReqReference::from_specifier(&specifier) { - return self.shared.node_resolver.resolve_req_reference( + return Ok(self.shared.npm_req_resolver.resolve_req_reference( &reference, &referrer, + referrer_kind, NodeResolutionMode::Execution, - ); + )?); } if specifier.scheme() == "jsr" { @@ -240,16 +299,17 @@ impl ModuleLoader for EmbeddedModuleLoader { self .shared .node_resolver - .handle_if_in_node_modules(&specifier)? + .handle_if_in_node_modules(&specifier) .unwrap_or(specifier), ) } Err(err) if err.is_unmapped_bare_specifier() && referrer.scheme() == "file" => { - let maybe_res = self.shared.node_resolver.resolve_if_for_npm_pkg( + let maybe_res = self.shared.npm_req_resolver.resolve_if_for_npm_pkg( raw_specifier, &referrer, + referrer_kind, NodeResolutionMode::Execution, )?; if let Some(res) = maybe_res { @@ -304,14 +364,19 @@ impl ModuleLoader for EmbeddedModuleLoader { } if self.shared.node_resolver.in_npm_package(original_specifier) { - let npm_module_loader = self.shared.npm_module_loader.clone(); + let shared = self.shared.clone(); let original_specifier = original_specifier.clone(); let maybe_referrer = maybe_referrer.cloned(); return deno_core::ModuleLoadResponse::Async( async move { - let code_source = npm_module_loader + let code_source = shared + .npm_module_loader .load(&original_specifier, maybe_referrer.as_ref()) .await?; + let code_cache_entry = shared.get_code_cache( + &code_source.found_url, + code_source.code.as_bytes(), + ); Ok(deno_core::ModuleSource::new_with_redirect( match code_source.media_type { MediaType::Json => ModuleType::Json, @@ -320,7 +385,7 @@ impl ModuleLoader for EmbeddedModuleLoader { code_source.code, &original_specifier, &code_source.found_url, - None, + code_cache_entry, )) } .boxed_local(), @@ -373,25 +438,30 @@ impl ModuleLoader for EmbeddedModuleLoader { ModuleSourceCode::String(FastString::from_static(source)) } }; + let code_cache_entry = shared + .get_code_cache(&module_specifier, module_source.as_bytes()); Ok(deno_core::ModuleSource::new_with_redirect( module_type, module_source, &original_specifier, &module_specifier, - None, + code_cache_entry, )) } .boxed_local(), ) } else { let module_source = module_source.into_for_v8(); + let code_cache_entry = self + .shared + .get_code_cache(module_specifier, module_source.as_bytes()); deno_core::ModuleLoadResponse::Sync(Ok( deno_core::ModuleSource::new_with_redirect( module_type, module_source, original_specifier, module_specifier, - None, + code_cache_entry, ), )) } @@ -404,6 +474,23 @@ impl ModuleLoader for EmbeddedModuleLoader { ))), } } + + fn code_cache_ready( + &self, + specifier: ModuleSpecifier, + source_hash: u64, + code_cache_data: &[u8], + ) -> LocalBoxFuture<'static, ()> { + if let Some(code_cache) = &self.shared.code_cache { + code_cache.set_sync( + specifier, + deno_runtime::code_cache::CodeCacheType::EsModule, + source_hash, + code_cache_data, + ); + } + std::future::ready(()).boxed_local() + } } impl NodeRequireLoader for EmbeddedModuleLoader { @@ -429,6 +516,14 @@ impl NodeRequireLoader for EmbeddedModuleLoader { ) -> Result { Ok(self.shared.fs.read_text_file_lossy_sync(path, None)?) } + + fn is_maybe_cjs( + &self, + specifier: &ModuleSpecifier, + ) -> Result { + let media_type = MediaType::from_specifier(specifier); + self.shared.cjs_tracker.is_maybe_cjs(specifier, media_type) + } } struct StandaloneModuleLoaderFactory { @@ -622,38 +717,39 @@ pub async fn run(data: StandaloneData) -> Result { let node_resolver = Arc::new(NodeResolver::new( deno_runtime::deno_node::DenoFsNodeResolverEnv::new(fs.clone()), in_npm_pkg_checker.clone(), - npm_resolver.clone().into_npm_resolver(), + npm_resolver.clone().into_npm_pkg_folder_resolver(), pkg_json_resolver.clone(), )); let cjs_tracker = Arc::new(CjsTracker::new( in_npm_pkg_checker.clone(), pkg_json_resolver.clone(), - CjsTrackerOptions { - unstable_detect_cjs: metadata.unstable_config.detect_cjs, + IsCjsResolverOptions { + detect_cjs: !metadata.workspace_resolver.package_jsons.is_empty(), + is_node_main: false, }, )); let cache_db = Caches::new(deno_dir_provider.clone()); let node_analysis_cache = NodeAnalysisCache::new(cache_db.node_analysis_db()); - let cli_node_resolver = Arc::new(CliNodeResolver::new( - cjs_tracker.clone(), - fs.clone(), - in_npm_pkg_checker.clone(), - node_resolver.clone(), - npm_resolver.clone(), - )); + let npm_req_resolver = + Arc::new(CliNpmReqResolver::new(NpmReqResolverOptions { + byonm_resolver: (npm_resolver.clone()).into_maybe_byonm(), + fs: CliDenoResolverFs(fs.clone()), + in_npm_pkg_checker: in_npm_pkg_checker.clone(), + node_resolver: node_resolver.clone(), + npm_req_resolver: npm_resolver.clone().into_npm_req_resolver(), + })); let cjs_esm_code_analyzer = CliCjsCodeAnalyzer::new( node_analysis_cache, cjs_tracker.clone(), fs.clone(), None, - false, ); let node_code_translator = Arc::new(NodeCodeTranslator::new( cjs_esm_code_analyzer, deno_runtime::deno_node::DenoFsNodeResolverEnv::new(fs.clone()), in_npm_pkg_checker, node_resolver.clone(), - npm_resolver.clone().into_npm_resolver(), + npm_resolver.clone().into_npm_pkg_folder_resolver(), pkg_json_resolver.clone(), )); let workspace_resolver = { @@ -705,20 +801,35 @@ pub async fn run(data: StandaloneData) -> Result { metadata.workspace_resolver.pkg_json_resolution, ) }; + let code_cache = match metadata.code_cache_key { + Some(code_cache_key) => Some(Arc::new(DenoCompileCodeCache::new( + root_path.with_file_name(format!( + "{}.cache", + root_path.file_name().unwrap().to_string_lossy() + )), + code_cache_key, + )) as Arc), + None => { + log::debug!("Code cache disabled."); + None + } + }; let module_loader_factory = StandaloneModuleLoaderFactory { shared: Arc::new(SharedModuleLoaderState { cjs_tracker: cjs_tracker.clone(), fs: fs.clone(), modules, node_code_translator: node_code_translator.clone(), - node_resolver: cli_node_resolver.clone(), + node_resolver: node_resolver.clone(), npm_module_loader: Arc::new(NpmModuleLoader::new( cjs_tracker.clone(), fs.clone(), node_code_translator, )), + code_cache: code_cache.clone(), npm_resolver: npm_resolver.clone(), workspace_resolver, + npm_req_resolver, }), }; @@ -757,8 +868,7 @@ pub async fn run(data: StandaloneData) -> Result { }); let worker_factory = CliMainWorkerFactory::new( Arc::new(BlobStore::default()), - // Code cache is not supported for standalone binary yet. - None, + code_cache, feature_checker, fs, None, @@ -800,6 +910,7 @@ pub async fn run(data: StandaloneData) -> Result { serve_port: None, serve_host: None, }, + metadata.otel_config, ); // Initialize v8 once from the main thread. diff --git a/cli/standalone/virtual_fs.rs b/cli/standalone/virtual_fs.rs index 0ae00accbf5ffd..be7e937ee1e5b4 100644 --- a/cli/standalone/virtual_fs.rs +++ b/cli/standalone/virtual_fs.rs @@ -51,7 +51,8 @@ pub struct VfsBuilder { impl VfsBuilder { pub fn new(root_path: PathBuf) -> Result { - let root_path = canonicalize_path(&root_path)?; + let root_path = canonicalize_path(&root_path) + .with_context(|| format!("Canonicalizing {}", root_path.display()))?; log::debug!("Building vfs with root '{}'", root_path.display()); Ok(Self { root_dir: VirtualDirectory { @@ -350,6 +351,7 @@ impl<'a> VfsEntryRef<'a> { atime: None, birthtime: None, mtime: None, + ctime: None, blksize: 0, size: 0, dev: 0, @@ -372,6 +374,7 @@ impl<'a> VfsEntryRef<'a> { atime: None, birthtime: None, mtime: None, + ctime: None, blksize: 0, size: file.len, dev: 0, @@ -394,6 +397,7 @@ impl<'a> VfsEntryRef<'a> { atime: None, birthtime: None, mtime: None, + ctime: None, blksize: 0, size: 0, dev: 0, @@ -630,7 +634,7 @@ impl FileBackedVfsFile { } fn read_to_buf(&self, buf: &mut [u8]) -> FsResult { - let pos = { + let read_pos = { let mut pos = self.pos.lock(); let read_pos = *pos; // advance the position due to the read @@ -639,12 +643,12 @@ impl FileBackedVfsFile { }; self .vfs - .read_file(&self.file, pos, buf) + .read_file(&self.file, read_pos, buf) .map_err(|err| err.into()) } fn read_to_end(&self) -> FsResult> { - let pos = { + let read_pos = { let mut pos = self.pos.lock(); let read_pos = *pos; // todo(dsherret): should this always set it to the end of the file? @@ -654,12 +658,12 @@ impl FileBackedVfsFile { } read_pos }; - if pos > self.file.len { + if read_pos > self.file.len { return Ok(Vec::new()); } - let size = (self.file.len - pos) as usize; + let size = (self.file.len - read_pos) as usize; let mut buf = vec![0; size]; - self.vfs.read_file(&self.file, pos, &mut buf)?; + self.vfs.read_file(&self.file, read_pos, &mut buf)?; Ok(buf) } } @@ -889,8 +893,9 @@ impl FileBackedVfs { buf: &mut [u8], ) -> std::io::Result { let read_range = self.get_read_range(file, pos, buf.len() as u64)?; - buf.copy_from_slice(&self.vfs_data[read_range]); - Ok(buf.len()) + let read_len = read_range.len(); + buf[..read_len].copy_from_slice(&self.vfs_data[read_range]); + Ok(read_len) } fn get_read_range( @@ -899,15 +904,15 @@ impl FileBackedVfs { pos: u64, len: u64, ) -> std::io::Result> { - let data = &self.vfs_data; - let start = self.fs_root.start_file_offset + file.offset + pos; - let end = start + len; - if end > data.len() as u64 { + if pos > file.len { return Err(std::io::Error::new( std::io::ErrorKind::UnexpectedEof, "unexpected EOF", )); } + let file_offset = self.fs_root.start_file_offset + file.offset; + let start = file_offset + pos; + let end = file_offset + std::cmp::min(pos + len, file.len); Ok(start as usize..end as usize) } diff --git a/cli/task_runner.rs b/cli/task_runner.rs index 43840e868de83e..ec043f280e73cd 100644 --- a/cli/task_runner.rs +++ b/cli/task_runner.rs @@ -483,20 +483,32 @@ fn resolve_execution_path_from_npx_shim( static SCRIPT_PATH_RE: Lazy = lazy_regex::lazy_regex!(r#""\$basedir\/([^"]+)" "\$@""#); - if text.starts_with("#!/usr/bin/env node") { - // launch this file itself because it's a JS file - Some(file_path) - } else { - // Search for... - // > "$basedir/../next/dist/bin/next" "$@" - // ...which is what it will look like on Windows - SCRIPT_PATH_RE - .captures(text) - .and_then(|c| c.get(1)) - .map(|relative_path| { - file_path.parent().unwrap().join(relative_path.as_str()) - }) + let maybe_first_line = { + let index = text.find("\n")?; + Some(&text[0..index]) + }; + + if let Some(first_line) = maybe_first_line { + // NOTE(bartlomieju): this is not perfect, but handle two most common scenarios + // where Node is run without any args. If there are args then we use `NodeCommand` + // struct. + if first_line == "#!/usr/bin/env node" + || first_line == "#!/usr/bin/env -S node" + { + // launch this file itself because it's a JS file + return Some(file_path); + } } + + // Search for... + // > "$basedir/../next/dist/bin/next" "$@" + // ...which is what it will look like on Windows + SCRIPT_PATH_RE + .captures(text) + .and_then(|c| c.get(1)) + .map(|relative_path| { + file_path.parent().unwrap().join(relative_path.as_str()) + }) } fn resolve_managed_npm_commands( @@ -564,6 +576,16 @@ mod test { let unix_shim = r#"#!/usr/bin/env node "use strict"; console.log('Hi!'); +"#; + let path = PathBuf::from("/node_modules/.bin/example"); + assert_eq!( + resolve_execution_path_from_npx_shim(path.clone(), unix_shim).unwrap(), + path + ); + // example shim on unix + let unix_shim = r#"#!/usr/bin/env -S node +"use strict"; +console.log('Hi!'); "#; let path = PathBuf::from("/node_modules/.bin/example"); assert_eq!( diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs index 6ff1a7300c1451..c00727e66be43c 100644 --- a/cli/tools/bench/mod.rs +++ b/cli/tools/bench/mod.rs @@ -486,6 +486,7 @@ pub async fn run_benchmarks_with_watch( ), move |flags, watcher_communicator, changed_paths| { let bench_flags = bench_flags.clone(); + watcher_communicator.show_path_changed(changed_paths.clone()); Ok(async move { let factory = CliFactory::from_flags_for_watcher( flags, diff --git a/cli/tools/check.rs b/cli/tools/check.rs index d880278884457c..ad5c7c3ab17726 100644 --- a/cli/tools/check.rs +++ b/cli/tools/check.rs @@ -380,6 +380,11 @@ fn get_check_hash( hasher.write_str(module.specifier.as_str()); hasher.write_str(&module.source); } + Module::Wasm(module) => { + has_file_to_type_check = true; + hasher.write_str(module.specifier.as_str()); + hasher.write_str(&module.source_dts); + } Module::External(module) => { hasher.write_str(module.specifier.as_str()); } @@ -437,6 +442,7 @@ fn get_tsc_roots( | MediaType::SourceMap | MediaType::Unknown => None, }, + Module::Wasm(module) => Some((module.specifier.clone(), MediaType::Dmts)), Module::External(_) | Module::Node(_) | Module::Npm(_) diff --git a/cli/tools/compile.rs b/cli/tools/compile.rs index b3e9993379e0e7..4fa996368308ef 100644 --- a/cli/tools/compile.rs +++ b/cli/tools/compile.rs @@ -7,6 +7,7 @@ use crate::factory::CliFactory; use crate::http_util::HttpClientProvider; use crate::standalone::binary::StandaloneRelativeFileBaseUrl; use crate::standalone::is_standalone_binary; +use deno_ast::MediaType; use deno_ast::ModuleSpecifier; use deno_core::anyhow::bail; use deno_core::anyhow::Context; @@ -31,15 +32,12 @@ pub async fn compile( let module_graph_creator = factory.module_graph_creator().await?; let binary_writer = factory.create_compile_binary_writer().await?; let http_client = factory.http_client_provider(); - let module_specifier = cli_options.resolve_main_module()?; - let module_roots = { - let mut vec = Vec::with_capacity(compile_flags.include.len() + 1); - vec.push(module_specifier.clone()); - for side_module in &compile_flags.include { - vec.push(resolve_url_or_path(side_module, cli_options.initial_cwd())?); - } - vec - }; + let entrypoint = cli_options.resolve_main_module()?; + let (module_roots, include_files) = get_module_roots_and_include_files( + entrypoint, + &compile_flags, + cli_options.initial_cwd(), + )?; // this is not supported, so show a warning about it, but don't error in order // to allow someone to still run `deno compile` when this is in a deno.json @@ -82,18 +80,22 @@ pub async fn compile( check_warn_tsconfig(&ts_config_for_emit); let root_dir_url = resolve_root_dir_from_specifiers( cli_options.workspace().root_dir(), - graph.specifiers().map(|(s, _)| s).chain( - cli_options - .node_modules_dir_path() - .and_then(|p| ModuleSpecifier::from_directory_path(p).ok()) - .iter(), - ), + graph + .specifiers() + .map(|(s, _)| s) + .chain( + cli_options + .node_modules_dir_path() + .and_then(|p| ModuleSpecifier::from_directory_path(p).ok()) + .iter(), + ) + .chain(include_files.iter()), ); log::debug!("Binary root dir: {}", root_dir_url); log::info!( "{} {} to {}", colors::green("Compile"), - module_specifier.to_string(), + entrypoint, output_path.display(), ); validate_output_path(&output_path)?; @@ -118,9 +120,9 @@ pub async fn compile( file, &graph, StandaloneRelativeFileBaseUrl::from(&root_dir_url), - module_specifier, + entrypoint, + &include_files, &compile_flags, - cli_options, ) .await .with_context(|| { @@ -212,6 +214,48 @@ fn validate_output_path(output_path: &Path) -> Result<(), AnyError> { Ok(()) } +fn get_module_roots_and_include_files( + entrypoint: &ModuleSpecifier, + compile_flags: &CompileFlags, + initial_cwd: &Path, +) -> Result<(Vec, Vec), AnyError> { + fn is_module_graph_module(url: &ModuleSpecifier) -> bool { + if url.scheme() != "file" { + return true; + } + let media_type = MediaType::from_specifier(url); + match media_type { + MediaType::JavaScript + | MediaType::Jsx + | MediaType::Mjs + | MediaType::Cjs + | MediaType::TypeScript + | MediaType::Mts + | MediaType::Cts + | MediaType::Dts + | MediaType::Dmts + | MediaType::Dcts + | MediaType::Tsx + | MediaType::Json + | MediaType::Wasm => true, + MediaType::Css | MediaType::SourceMap | MediaType::Unknown => false, + } + } + + let mut module_roots = Vec::with_capacity(compile_flags.include.len() + 1); + let mut include_files = Vec::with_capacity(compile_flags.include.len()); + module_roots.push(entrypoint.clone()); + for side_module in &compile_flags.include { + let url = resolve_url_or_path(side_module, initial_cwd)?; + if is_module_graph_module(&url) { + module_roots.push(url); + } else { + include_files.push(url); + } + } + Ok((module_roots, include_files)) +} + async fn resolve_compile_executable_output_path( http_client_provider: &HttpClientProvider, compile_flags: &CompileFlags, diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index f59333247510fc..2a554c13359ad2 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -480,7 +480,7 @@ fn filter_coverages( .filter(|e| { let is_internal = e.url.starts_with("ext:") || e.url.ends_with("__anonymous__") - || e.url.ends_with("$deno$test.js") + || e.url.ends_with("$deno$test.mjs") || e.url.ends_with(".snap") || is_supported_test_path(Path::new(e.url.as_str())) || doc_test_re.is_match(e.url.as_str()) diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index e33da4efb294ac..4487d70fd784b9 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -21,6 +21,8 @@ use deno_core::error::AnyError; use deno_core::serde_json; use deno_doc as doc; use deno_doc::html::UrlResolveKind; +use deno_doc::html::UsageComposer; +use deno_doc::html::UsageComposerEntry; use deno_graph::source::NullFileSystem; use deno_graph::EsParser; use deno_graph::GraphKind; @@ -35,6 +37,9 @@ use std::sync::Arc; const JSON_SCHEMA_VERSION: u8 = 1; +const PRISM_CSS: &str = include_str!("./doc/prism.css"); +const PRISM_JS: &str = include_str!("./doc/prism.js"); + async fn generate_doc_nodes_for_builtin_types( doc_flags: DocFlags, parser: &dyn EsParser, @@ -312,10 +317,6 @@ impl deno_doc::html::HrefResolver for DocResolver { None } - fn resolve_usage(&self, current_resolve: UrlResolveKind) -> Option { - current_resolve.get_file().map(|file| file.path.to_string()) - } - fn resolve_source(&self, location: &deno_doc::Location) -> Option { Some(location.filename.to_string()) } @@ -350,105 +351,30 @@ impl deno_doc::html::HrefResolver for DocResolver { } } -struct DenoDocResolver(bool); +struct DocComposer; -impl deno_doc::html::HrefResolver for DenoDocResolver { - fn resolve_path( - &self, - current: UrlResolveKind, - target: UrlResolveKind, - ) -> String { - let path = deno_doc::html::href_path_resolve(current, target); - if self.0 { - if let Some(path) = path - .strip_suffix("index.html") - .or_else(|| path.strip_suffix(".html")) - { - return path.to_owned(); - } - } - - path +impl UsageComposer for DocComposer { + fn is_single_mode(&self) -> bool { + true } - fn resolve_global_symbol(&self, _symbol: &[String]) -> Option { - None - } - - fn resolve_import_href( + fn compose( &self, - _symbol: &[String], - _src: &str, - ) -> Option { - None - } - - fn resolve_usage(&self, _current_resolve: UrlResolveKind) -> Option { - None - } - - fn resolve_source(&self, _location: &deno_doc::Location) -> Option { - None - } - - fn resolve_external_jsdoc_module( - &self, - _module: &str, - _symbol: Option<&str>, - ) -> Option<(String, String)> { - None - } -} - -struct NodeDocResolver(bool); - -impl deno_doc::html::HrefResolver for NodeDocResolver { - fn resolve_path( - &self, - current: UrlResolveKind, - target: UrlResolveKind, - ) -> String { - let path = deno_doc::html::href_path_resolve(current, target); - if self.0 { - if let Some(path) = path - .strip_suffix("index.html") - .or_else(|| path.strip_suffix(".html")) - { - return path.to_owned(); - } - } - - path - } - - fn resolve_global_symbol(&self, _symbol: &[String]) -> Option { - None - } - - fn resolve_import_href( - &self, - _symbol: &[String], - _src: &str, - ) -> Option { - None - } - - fn resolve_usage(&self, current_resolve: UrlResolveKind) -> Option { + current_resolve: UrlResolveKind, + usage_to_md: deno_doc::html::UsageToMd, + ) -> IndexMap { current_resolve .get_file() - .map(|file| format!("node:{}", file.path)) - } - - fn resolve_source(&self, _location: &deno_doc::Location) -> Option { - None - } - - fn resolve_external_jsdoc_module( - &self, - _module: &str, - _symbol: Option<&str>, - ) -> Option<(String, String)> { - None + .map(|current_file| { + IndexMap::from([( + UsageComposerEntry { + name: "".to_string(), + icon: None, + }, + usage_to_md(current_file.path.as_str(), None), + )]) + }) + .unwrap_or_default() } } @@ -461,30 +387,10 @@ fn generate_docs_directory( let cwd = std::env::current_dir().context("Failed to get CWD")?; let output_dir_resolved = cwd.join(&html_options.output); - let internal_env = std::env::var("DENO_INTERNAL_HTML_DOCS").ok(); - - let href_resolver: Rc = if internal_env - .as_ref() - .is_some_and(|internal_html_docs| internal_html_docs == "node") - { - Rc::new(NodeDocResolver(html_options.strip_trailing_html)) - } else if internal_env - .as_ref() - .is_some_and(|internal_html_docs| internal_html_docs == "deno") - || deno_ns.is_empty() - { - Rc::new(DenoDocResolver(html_options.strip_trailing_html)) - } else { - Rc::new(DocResolver { - deno_ns, - strip_trailing_html: html_options.strip_trailing_html, - }) - }; - let category_docs = if let Some(category_docs_path) = &html_options.category_docs_path { let content = std::fs::read(category_docs_path)?; - Some(deno_core::serde_json::from_slice(&content)?) + Some(serde_json::from_slice(&content)?) } else { None }; @@ -493,7 +399,7 @@ fn generate_docs_directory( &html_options.symbol_redirect_map_path { let content = std::fs::read(symbol_redirect_map_path)?; - Some(deno_core::serde_json::from_slice(&content)?) + Some(serde_json::from_slice(&content)?) } else { None }; @@ -502,7 +408,7 @@ fn generate_docs_directory( &html_options.default_symbol_map_path { let content = std::fs::read(default_symbol_map_path)?; - Some(deno_core::serde_json::from_slice(&content)?) + Some(serde_json::from_slice(&content)?) } else { None }; @@ -511,17 +417,59 @@ fn generate_docs_directory( package_name: html_options.name.clone(), main_entrypoint: None, rewrite_map, - href_resolver, - usage_composer: None, + href_resolver: Rc::new(DocResolver { + deno_ns, + strip_trailing_html: html_options.strip_trailing_html, + }), + usage_composer: Rc::new(DocComposer), category_docs, - disable_search: internal_env.is_some(), + disable_search: false, symbol_redirect_map, default_symbol_map, + markdown_renderer: deno_doc::html::comrak::create_renderer( + None, + Some(Box::new(|ammonia| { + ammonia.add_allowed_classes( + "code", + &[ + "language-ts", + "language-tsx", + "language-typescript", + "language-js", + "language-jsx", + "language-javascript", + "language-bash", + "language-shell", + "language-md", + "language-markdown", + "language-rs", + "language-rust", + "language-html", + "language-xml", + "language-css", + "language-json", + "language-regex", + "language-svg", + ], + ); + })), + None, + ), + markdown_stripper: Rc::new(deno_doc::html::comrak::strip), + head_inject: Some(Rc::new(|root| { + format!( + r#""#, + deno_doc::html::comrak::COMRAK_STYLESHEET_FILENAME + ) + })), }; - let files = deno_doc::html::generate(options, doc_nodes_by_url) + let mut files = deno_doc::html::generate(options, doc_nodes_by_url) .context("Failed to generate HTML documentation")?; + files.insert("prism.js".to_string(), PRISM_JS.to_string()); + files.insert("prism.css".to_string(), PRISM_CSS.to_string()); + let path = &output_dir_resolved; let _ = std::fs::remove_dir_all(path); std::fs::create_dir(path) diff --git a/cli/tools/doc/prism.css b/cli/tools/doc/prism.css new file mode 100644 index 00000000000000..afc2ef6ca98386 --- /dev/null +++ b/cli/tools/doc/prism.css @@ -0,0 +1,3 @@ +/* PrismJS 1.29.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+json+markdown+regex+rust+typescript */ +code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help} diff --git a/cli/tools/doc/prism.js b/cli/tools/doc/prism.js new file mode 100644 index 00000000000000..23bf91958907f3 --- /dev/null +++ b/cli/tools/doc/prism.js @@ -0,0 +1,15 @@ +// MIT LICENSE +// Copyright (c) 2012 Lea Verou +/* PrismJS 1.29.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+json+markdown+regex+rust+typescript */ +var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(jg.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a"+i.content+""},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); +Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; +!function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+e.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); +Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; +Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; +!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",a={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},n={bash:a,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:a}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:n.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},a.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i/g,(function(){return"(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?![\r\n]))"})),RegExp("((?:^|[^\\\\])(?:\\\\{2})*)(?:"+n+")")}var t="(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+",a="\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))".replace(/__/g,(function(){return t})),i="\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)";n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:n.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(t),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(t),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:e("\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:e("\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:e("(~~?)(?:(?!~))+\\2"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:e('!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\]))+\\])'),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(e){["url","bold","italic","strike","code-snippet"].forEach((function(t){e!==t&&(n.languages.markdown[e].inside.content.inside[t]=n.languages.markdown[t])}))})),n.hooks.add("after-tokenize",(function(n){"markdown"!==n.language&&"md"!==n.language||function n(e){if(e&&"string"!=typeof e)for(var t=0,a=e.length;t",quot:'"'},l=String.fromCodePoint||String.fromCharCode;n.languages.md=n.languages.markdown}(Prism); +!function(a){var e={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,t="(?:[^\\\\-]|"+n.source+")",s=RegExp(t+"-"+t),i={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};a.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":e,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":e,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|)*\\*/",t=0;t<2;t++)a=a.replace(//g,(function(){return a}));a=a.replace(//g,(function(){return"[^\\s\\S]"})),e.languages.rust={comment:[{pattern:RegExp("(^|[^\\\\])"+a),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism); +!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var s=e.languages.extend("typescript",{});delete s["class-name"],e.languages.typescript["class-name"].inside=s,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:s}}}}),e.languages.ts=e.languages.typescript}(Prism); diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index f7f8dabc6f1b0d..c2c2a6bb6bf3ca 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -83,6 +83,7 @@ pub async fn format( file_watcher::PrintConfig::new("Fmt", !watch_flags.no_clear_screen), move |flags, watcher_communicator, changed_paths| { let fmt_flags = fmt_flags.clone(); + watcher_communicator.show_path_changed(changed_paths.clone()); Ok(async move { let factory = CliFactory::from_flags(flags); let cli_options = factory.cli_options()?; @@ -227,6 +228,7 @@ fn collect_fmt_files( }) .ignore_git_folder() .ignore_node_modules() + .use_gitignore() .set_vendor_folder(cli_options.vendor_dir_path().map(ToOwned::to_owned)) .collect_file_patterns(&deno_config::fs::RealDenoConfigFs, files) } @@ -270,6 +272,7 @@ fn format_markdown( | "njk" | "yml" | "yaml" + | "sql" ) { // It's important to tell dprint proper file extension, otherwise // it might parse the file twice. @@ -299,6 +302,13 @@ fn format_markdown( } } "yml" | "yaml" => format_yaml(text, fmt_options), + "sql" => { + if unstable_options.sql { + format_sql(text, fmt_options) + } else { + Ok(None) + } + } _ => { let mut codeblock_config = get_resolved_typescript_config(fmt_options); @@ -501,7 +511,52 @@ pub fn format_html( }) } -/// Formats a single TS, TSX, JS, JSX, JSONC, JSON, MD, or IPYNB file. +pub fn format_sql( + file_text: &str, + fmt_options: &FmtOptionsConfig, +) -> Result, AnyError> { + let ignore_file = file_text + .lines() + .take_while(|line| line.starts_with("--")) + .any(|line| { + line + .strip_prefix("--") + .unwrap() + .trim() + .starts_with("deno-fmt-ignore-file") + }); + + if ignore_file { + return Ok(None); + } + + let mut formatted_str = sqlformat::format( + file_text, + &sqlformat::QueryParams::None, + &sqlformat::FormatOptions { + ignore_case_convert: None, + indent: if fmt_options.use_tabs.unwrap_or_default() { + sqlformat::Indent::Tabs + } else { + sqlformat::Indent::Spaces(fmt_options.indent_width.unwrap_or(2)) + }, + // leave one blank line between queries. + lines_between_queries: 2, + uppercase: Some(true), + }, + ); + + // Add single new line to the end of file. + formatted_str.push('\n'); + + Ok(if formatted_str == file_text { + None + } else { + Some(formatted_str) + }) +} + +/// Formats a single TS, TSX, JS, JSX, JSONC, JSON, MD, IPYNB or SQL file. pub fn format_file( file_path: &Path, file_text: &str, @@ -536,6 +591,13 @@ pub fn format_file( format_file(file_path, &file_text, fmt_options, unstable_options, None) }, ), + "sql" => { + if unstable_options.sql { + format_sql(file_text, fmt_options) + } else { + Ok(None) + } + } _ => { let config = get_resolved_typescript_config(fmt_options); dprint_plugin_typescript::format_text( @@ -790,28 +852,26 @@ fn format_ensure_stable( return Ok(Some(current_text)); } Err(err) => { - panic!( + bail!( concat!( "Formatting succeeded initially, but failed when ensuring a ", "stable format. This indicates a bug in the formatter where ", "the text it produces is not syntactically correct. As a temporary ", - "workaround you can ignore this file ({}).\n\n{:#}" + "workaround you can ignore this file.\n\n{:#}" ), - file_path.display(), err, ) } } count += 1; if count == 5 { - panic!( + bail!( concat!( "Formatting not stable. Bailed after {} tries. This indicates a bug ", - "in the formatter where it formats the file ({}) differently each time. As a ", + "in the formatter where it formats the file differently each time. As a ", "temporary workaround you can ignore this file." ), count, - file_path.display(), ) } } @@ -1209,12 +1269,15 @@ fn is_supported_ext_fmt(path: &Path) -> bool { | "yml" | "yaml" | "ipynb" + | "sql" ) }) } #[cfg(test)] mod test { + use test_util::assert_starts_with; + use super::*; #[test] @@ -1267,15 +1330,24 @@ mod test { assert!(is_supported_ext_fmt(Path::new("foo.yaml"))); assert!(is_supported_ext_fmt(Path::new("foo.YaML"))); assert!(is_supported_ext_fmt(Path::new("foo.ipynb"))); + assert!(is_supported_ext_fmt(Path::new("foo.sql"))); + assert!(is_supported_ext_fmt(Path::new("foo.Sql"))); + assert!(is_supported_ext_fmt(Path::new("foo.sQl"))); + assert!(is_supported_ext_fmt(Path::new("foo.sqL"))); + assert!(is_supported_ext_fmt(Path::new("foo.SQL"))); } #[test] - #[should_panic(expected = "Formatting not stable. Bailed after 5 tries.")] fn test_format_ensure_stable_unstable_format() { - format_ensure_stable(&PathBuf::from("mod.ts"), "1", |_, file_text| { - Ok(Some(format!("1{file_text}"))) - }) - .unwrap(); + let err = + format_ensure_stable(&PathBuf::from("mod.ts"), "1", |_, file_text| { + Ok(Some(format!("1{file_text}"))) + }) + .unwrap_err(); + assert_starts_with!( + err.to_string(), + "Formatting not stable. Bailed after 5 tries." + ); } #[test] @@ -1289,16 +1361,20 @@ mod test { } #[test] - #[should_panic(expected = "Formatting succeeded initially, but failed when")] fn test_format_ensure_stable_error_second() { - format_ensure_stable(&PathBuf::from("mod.ts"), "1", |_, file_text| { - if file_text == "1" { - Ok(Some("11".to_string())) - } else { - bail!("Error formatting.") - } - }) - .unwrap(); + let err = + format_ensure_stable(&PathBuf::from("mod.ts"), "1", |_, file_text| { + if file_text == "1" { + Ok(Some("11".to_string())) + } else { + bail!("Error formatting.") + } + }) + .unwrap_err(); + assert_starts_with!( + err.to_string(), + "Formatting succeeded initially, but failed when" + ); } #[test] diff --git a/cli/tools/info.rs b/cli/tools/info.rs index c2f5a8cb8d560c..c3c37f02685715 100644 --- a/cli/tools/info.rs +++ b/cli/tools/info.rs @@ -126,6 +126,7 @@ fn print_cache_info( let registry_cache = dir.registries_folder_path(); let mut origin_dir = dir.origin_data_folder_path(); let deno_dir = dir.root_path_for_display().to_string(); + let web_cache_dir = crate::worker::get_cache_storage_dir(); if let Some(location) = &location { origin_dir = @@ -143,6 +144,7 @@ fn print_cache_info( "typescriptCache": typescript_cache, "registryCache": registry_cache, "originStorage": origin_dir, + "webCacheStorage": web_cache_dir, }); if location.is_some() { @@ -177,6 +179,11 @@ fn print_cache_info( colors::bold("Origin storage:"), origin_dir.display() ); + println!( + "{} {}", + colors::bold("Web cache storage:"), + web_cache_dir.display() + ); if location.is_some() { println!( "{} {}", @@ -446,6 +453,7 @@ impl<'a> GraphDisplayContext<'a> { let maybe_cache_info = match root { Module::Js(module) => module.maybe_cache_info.as_ref(), Module::Json(module) => module.maybe_cache_info.as_ref(), + Module::Wasm(module) => module.maybe_cache_info.as_ref(), Module::Node(_) | Module::Npm(_) | Module::External(_) => None, }; if let Some(cache_info) = maybe_cache_info { @@ -468,6 +476,7 @@ impl<'a> GraphDisplayContext<'a> { let size = match m { Module::Js(module) => module.size(), Module::Json(module) => module.size(), + Module::Wasm(module) => module.size(), Module::Node(_) | Module::Npm(_) | Module::External(_) => 0, }; size as f64 @@ -567,6 +576,7 @@ impl<'a> GraphDisplayContext<'a> { Specifier(_) => match module { Module::Js(module) => Some(module.size() as u64), Module::Json(module) => Some(module.size() as u64), + Module::Wasm(module) => Some(module.size() as u64), Module::Node(_) | Module::Npm(_) | Module::External(_) => None, }, }; @@ -580,8 +590,8 @@ impl<'a> GraphDisplayContext<'a> { Package(package) => { tree_node.children.extend(self.build_npm_deps(package)); } - Specifier(_) => { - if let Some(module) = module.js() { + Specifier(_) => match module { + Module::Js(module) => { if let Some(types_dep) = &module.maybe_types_dependency { if let Some(child) = self.build_resolved_info(&types_dep.dependency, true) @@ -593,7 +603,16 @@ impl<'a> GraphDisplayContext<'a> { tree_node.children.extend(self.build_dep_info(dep)); } } - } + Module::Wasm(module) => { + for dep in module.dependencies.values() { + tree_node.children.extend(self.build_dep_info(dep)); + } + } + Module::Json(_) + | Module::Npm(_) + | Module::Node(_) + | Module::External(_) => {} + }, } } tree_node @@ -658,7 +677,7 @@ impl<'a> GraphDisplayContext<'a> { }; self.build_error_msg(specifier, message.as_ref()) } - ModuleError::ParseErr(_, _) => { + ModuleError::ParseErr(_, _) | ModuleError::WasmParseErr(_, _) => { self.build_error_msg(specifier, "(parsing error)") } ModuleError::UnsupportedImportAttributeType { .. } => { diff --git a/cli/tools/init/mod.rs b/cli/tools/init/mod.rs index 4e4a686c5f2d7b..8f486dad53184c 100644 --- a/cli/tools/init/mod.rs +++ b/cli/tools/init/mod.rs @@ -1,15 +1,28 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use crate::args::DenoSubcommand; +use crate::args::Flags; use crate::args::InitFlags; +use crate::args::PackagesAllowedScripts; +use crate::args::PermissionFlags; +use crate::args::RunFlags; use crate::colors; +use color_print::cformat; +use color_print::cstr; use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::serde_json::json; +use deno_runtime::WorkerExecutionMode; use log::info; +use std::io::IsTerminal; use std::io::Write; use std::path::Path; -pub fn init_project(init_flags: InitFlags) -> Result<(), AnyError> { +pub async fn init_project(init_flags: InitFlags) -> Result { + if let Some(package) = &init_flags.package { + return init_npm(package, init_flags.package_args).await; + } + let cwd = std::env::current_dir().context("Can't read current working directory.")?; let dir = if let Some(dir) = &init_flags.dir { @@ -235,7 +248,58 @@ Deno.test(function addTest() { info!(" {}", colors::gray("# Run the tests")); info!(" deno test"); } - Ok(()) + Ok(0) +} + +async fn init_npm(name: &str, args: Vec) -> Result { + let script_name = format!("npm:create-{}", name); + + fn print_manual_usage(script_name: &str, args: &[String]) -> i32 { + log::info!("{}", cformat!("You can initialize project manually by running deno run {} {} and applying desired permissions.", script_name, args.join(" "))); + 1 + } + + if std::io::stdin().is_terminal() { + log::info!( + cstr!("⚠️ Do you fully trust {} package? Deno will invoke code from it with all permissions. Do you want to continue? [y/n]"), + script_name + ); + loop { + let _ = std::io::stdout().write(b"> ")?; + std::io::stdout().flush()?; + let mut answer = String::new(); + if std::io::stdin().read_line(&mut answer).is_ok() { + let answer = answer.trim().to_ascii_lowercase(); + if answer != "y" { + return Ok(print_manual_usage(&script_name, &args)); + } else { + break; + } + } + } + } else { + return Ok(print_manual_usage(&script_name, &args)); + } + + let new_flags = Flags { + permissions: PermissionFlags { + allow_all: true, + ..Default::default() + }, + allow_scripts: PackagesAllowedScripts::All, + argv: args, + subcommand: DenoSubcommand::Run(RunFlags { + script: script_name, + ..Default::default() + }), + ..Default::default() + }; + crate::tools::run::run_script( + WorkerExecutionMode::Run, + new_flags.into(), + None, + ) + .await } fn create_json_file( diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs index ed86e86c79bf0f..df5981e6e7b85e 100644 --- a/cli/tools/installer.rs +++ b/cli/tools/installer.rs @@ -3,6 +3,7 @@ use crate::args::resolve_no_prompt; use crate::args::AddFlags; use crate::args::CaData; +use crate::args::CacheSetting; use crate::args::ConfigFlag; use crate::args::Flags; use crate::args::InstallFlags; @@ -13,8 +14,11 @@ use crate::args::TypeCheckMode; use crate::args::UninstallFlags; use crate::args::UninstallKind; use crate::factory::CliFactory; +use crate::file_fetcher::FileFetcher; use crate::graph_container::ModuleGraphContainer; use crate::http_util::HttpClientProvider; +use crate::jsr::JsrFetchResolver; +use crate::npm::NpmFetchResolver; use crate::util::fs::canonicalize_path_maybe_not_exists; use deno_core::anyhow::bail; @@ -354,12 +358,54 @@ async fn install_global( ) -> Result<(), AnyError> { // ensure the module is cached let factory = CliFactory::from_flags(flags.clone()); + + let cli_options = factory.cli_options()?; + let http_client = factory.http_client_provider(); + let deps_http_cache = factory.global_http_cache()?; + let mut deps_file_fetcher = FileFetcher::new( + deps_http_cache.clone(), + CacheSetting::ReloadAll, + true, + http_client.clone(), + Default::default(), + None, + ); + + let npmrc = factory.cli_options().unwrap().npmrc(); + + deps_file_fetcher.set_download_log_level(log::Level::Trace); + let deps_file_fetcher = Arc::new(deps_file_fetcher); + let jsr_resolver = Arc::new(JsrFetchResolver::new(deps_file_fetcher.clone())); + let npm_resolver = Arc::new(NpmFetchResolver::new( + deps_file_fetcher.clone(), + npmrc.clone(), + )); + + let entry_text = install_flags_global.module_url.as_str(); + if !cli_options.initial_cwd().join(entry_text).exists() { + // check for package requirement missing prefix + if let Ok(Err(package_req)) = + super::registry::AddRmPackageReq::parse(entry_text) + { + if jsr_resolver.req_to_nv(&package_req).await.is_some() { + bail!( + "{entry_text} is missing a prefix. Did you mean `{}`?", + crate::colors::yellow(format!("deno install -g jsr:{package_req}")) + ); + } else if npm_resolver.req_to_nv(&package_req).await.is_some() { + bail!( + "{entry_text} is missing a prefix. Did you mean `{}`?", + crate::colors::yellow(format!("deno install -g npm:{package_req}")) + ); + } + } + } + factory .main_module_graph_container() .await? .load_and_type_check_files(&[install_flags_global.module_url.clone()]) .await?; - let http_client = factory.http_client_provider(); // create the install shim create_install_shim(http_client, &flags, install_flags_global).await @@ -1396,6 +1442,7 @@ mod tests { .env_clear() // use the deno binary in the target directory .env("PATH", test_util::target_dir()) + .env("RUST_BACKTRACE", "1") .spawn() .unwrap() .wait() diff --git a/cli/tools/jupyter/mod.rs b/cli/tools/jupyter/mod.rs index 0ffd0da1ee1187..732f95c49f25f7 100644 --- a/cli/tools/jupyter/mod.rs +++ b/cli/tools/jupyter/mod.rs @@ -61,7 +61,7 @@ pub async fn kernel( let factory = CliFactory::from_flags(flags); let cli_options = factory.cli_options()?; let main_module = - resolve_url_or_path("./$deno$jupyter.ts", cli_options.initial_cwd()) + resolve_url_or_path("./$deno$jupyter.mts", cli_options.initial_cwd()) .unwrap(); // TODO(bartlomieju): should we run with all permissions? let permissions = diff --git a/cli/tools/lint/mod.rs b/cli/tools/lint/mod.rs index e096b486ef2b2f..fcefb458746f03 100644 --- a/cli/tools/lint/mod.rs +++ b/cli/tools/lint/mod.rs @@ -63,7 +63,7 @@ pub use rules::LintRuleProvider; const JSON_SCHEMA_VERSION: u8 = 1; -static STDIN_FILE_NAME: &str = "$deno$stdin.ts"; +static STDIN_FILE_NAME: &str = "$deno$stdin.mts"; pub async fn lint( flags: Arc, @@ -80,6 +80,7 @@ pub async fn lint( file_watcher::PrintConfig::new("Lint", !watch_flags.no_clear_screen), move |flags, watcher_communicator, changed_paths| { let lint_flags = lint_flags.clone(); + watcher_communicator.show_path_changed(changed_paths.clone()); Ok(async move { let factory = CliFactory::from_flags(flags); let cli_options = factory.cli_options()?; @@ -191,7 +192,7 @@ pub async fn lint( linter.finish() }; if !success { - std::process::exit(1); + deno_runtime::exit(1); } } @@ -435,6 +436,7 @@ fn collect_lint_files( }) .ignore_git_folder() .ignore_node_modules() + .use_gitignore() .set_vendor_folder(cli_options.vendor_dir_path().map(ToOwned::to_owned)) .collect_file_patterns(&deno_config::fs::RealDenoConfigFs, files) } diff --git a/cli/tools/lint/reporters.rs b/cli/tools/lint/reporters.rs index bf80be9f20ed58..18bc1216a69d7e 100644 --- a/cli/tools/lint/reporters.rs +++ b/cli/tools/lint/reporters.rs @@ -175,6 +175,7 @@ struct JsonLintReporter { version: u8, diagnostics: Vec, errors: Vec, + checked_files: Vec, } impl JsonLintReporter { @@ -183,6 +184,7 @@ impl JsonLintReporter { version: JSON_SCHEMA_VERSION, diagnostics: Vec::new(), errors: Vec::new(), + checked_files: Vec::new(), } } } @@ -209,6 +211,17 @@ impl LintReporter for JsonLintReporter { code: d.code().to_string(), hint: d.hint().map(|h| h.to_string()), }); + + let file_path = d + .specifier + .to_file_path() + .unwrap() + .to_string_lossy() + .to_string(); + + if !self.checked_files.contains(&file_path) { + self.checked_files.push(file_path); + } } fn visit_error(&mut self, file_path: &str, err: &AnyError) { @@ -216,10 +229,15 @@ impl LintReporter for JsonLintReporter { file_path: file_path.to_string(), message: err.to_string(), }); + + if !self.checked_files.contains(&file_path.to_string()) { + self.checked_files.push(file_path.to_string()); + } } fn close(&mut self, _check_count: usize) { sort_diagnostics(&mut self.diagnostics); + self.checked_files.sort(); let json = serde_json::to_string_pretty(&self); #[allow(clippy::print_stdout)] { diff --git a/cli/tools/lint/rules/no_sloppy_imports.rs b/cli/tools/lint/rules/no_sloppy_imports.rs index 2f60875885fc0d..94bf9a7c676685 100644 --- a/cli/tools/lint/rules/no_sloppy_imports.rs +++ b/cli/tools/lint/rules/no_sloppy_imports.rs @@ -87,6 +87,7 @@ impl LintRule for NoSloppyImportsRule { captures: Default::default(), }; + // fill this and capture the sloppy imports in the resolver deno_graph::parse_module_from_ast(deno_graph::ParseModuleFromAstOptions { graph_kind: deno_graph::GraphKind::All, specifier: context.specifier().clone(), diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index 4098d62e37da64..ba61d352d30712 100644 --- a/cli/tools/registry/mod.rs +++ b/cli/tools/registry/mod.rs @@ -12,6 +12,7 @@ use std::sync::Arc; use base64::prelude::BASE64_STANDARD; use base64::Engine; use deno_ast::ModuleSpecifier; +use deno_config::deno_json::ConfigFile; use deno_config::workspace::JsrPackageConfig; use deno_config::workspace::PackageJsonDepResolution; use deno_config::workspace::Workspace; @@ -67,8 +68,10 @@ use auth::get_auth_method; use auth::AuthMethod; pub use pm::add; pub use pm::cache_top_level_deps; +pub use pm::outdated; pub use pm::remove; pub use pm::AddCommandName; +pub use pm::AddRmPackageReq; use publish_order::PublishOrderGraph; use unfurl::SpecifierUnfurler; @@ -89,13 +92,14 @@ pub async fn publish( let cli_options = cli_factory.cli_options()?; let directory_path = cli_options.initial_cwd(); - let publish_configs = cli_options.start_dir.jsr_packages_for_publish(); + let mut publish_configs = cli_options.start_dir.jsr_packages_for_publish(); if publish_configs.is_empty() { match cli_options.start_dir.maybe_deno_json() { Some(deno_json) => { debug_assert!(!deno_json.is_package()); + error_missing_exports_field(deno_json)?; bail!( - "Missing 'name', 'version' and 'exports' field in '{}'.", + "Missing 'name' or 'exports' field in '{}'.", deno_json.specifier ); } @@ -107,6 +111,18 @@ pub async fn publish( } } } + + if let Some(version) = &publish_flags.set_version { + if publish_configs.len() > 1 { + bail!("Cannot use --set-version when publishing a workspace. Change your cwd to an individual package instead."); + } + if let Some(publish_config) = publish_configs.get_mut(0) { + let mut config_file = publish_config.config_file.as_ref().clone(); + config_file.json.version = Some(version.clone()); + publish_config.config_file = Arc::new(config_file); + } + } + let specifier_unfurler = Arc::new(SpecifierUnfurler::new( if cli_options.unstable_sloppy_imports() { Some(CliSloppyImportsResolver::new(SloppyImportsCachedFs::new( @@ -403,43 +419,15 @@ impl PublishPreparer { graph: Arc, diagnostics_collector: &PublishDiagnosticsCollector, ) -> Result, AnyError> { - static SUGGESTED_ENTRYPOINTS: [&str; 4] = - ["mod.ts", "mod.js", "index.ts", "index.js"]; - let deno_json = &package.config_file; let config_path = deno_json.specifier.to_file_path().unwrap(); let root_dir = config_path.parent().unwrap().to_path_buf(); - let Some(version) = deno_json.json.version.clone() else { - bail!("{} is missing 'version' field", deno_json.specifier); - }; - if deno_json.json.exports.is_none() { - let mut suggested_entrypoint = None; - - for entrypoint in SUGGESTED_ENTRYPOINTS { - if root_dir.join(entrypoint).exists() { - suggested_entrypoint = Some(entrypoint); - break; - } - } - - let exports_content = format!( - r#"{{ - "name": "{}", - "version": "{}", - "exports": "{}" -}}"#, - package.name, - version, - suggested_entrypoint.unwrap_or("") - ); - - bail!( - "You did not specify an entrypoint to \"{}\" package in {}. Add `exports` mapping in the configuration file, eg:\n{}", - package.name, - deno_json.specifier, - exports_content - ); - } + let version = deno_json.json.version.clone().ok_or_else(|| { + deno_core::anyhow::anyhow!( + "{} is missing 'version' field", + deno_json.specifier + ) + })?; let Some(name_no_at) = package.name.strip_prefix('@') else { bail!("Invalid package name, use '@/ format"); }; @@ -1106,9 +1094,9 @@ fn collect_excluded_module_diagnostics( let graph_specifiers = graph .modules() .filter_map(|m| match m { - deno_graph::Module::Js(_) | deno_graph::Module::Json(_) => { - Some(m.specifier()) - } + deno_graph::Module::Js(_) + | deno_graph::Module::Json(_) + | deno_graph::Module::Wasm(_) => Some(m.specifier()), deno_graph::Module::Npm(_) | deno_graph::Module::Node(_) | deno_graph::Module::External(_) => None, @@ -1271,6 +1259,36 @@ fn has_license_file<'a>( }) } +fn error_missing_exports_field(deno_json: &ConfigFile) -> Result<(), AnyError> { + static SUGGESTED_ENTRYPOINTS: [&str; 4] = + ["mod.ts", "mod.js", "index.ts", "index.js"]; + let mut suggested_entrypoint = None; + + for entrypoint in SUGGESTED_ENTRYPOINTS { + if deno_json.dir_path().join(entrypoint).exists() { + suggested_entrypoint = Some(entrypoint); + break; + } + } + + let exports_content = format!( + r#"{{ + "name": "{}", + "version": "{}", + "exports": "{}" +}}"#, + deno_json.json.name.as_deref().unwrap_or("@scope/name"), + deno_json.json.name.as_deref().unwrap_or("0.0.0"), + suggested_entrypoint.unwrap_or("") + ); + + bail!( + "You did not specify an entrypoint in {}. Add `exports` mapping in the configuration file, eg:\n{}", + deno_json.specifier, + exports_content + ); +} + #[allow(clippy::print_stderr)] fn ring_bell() { // ASCII code for the bell character. diff --git a/cli/tools/registry/pm.rs b/cli/tools/registry/pm.rs index 68913e25910a29..5718cd3ec116fc 100644 --- a/cli/tools/registry/pm.rs +++ b/cli/tools/registry/pm.rs @@ -16,6 +16,7 @@ use deno_semver::package::PackageNv; use deno_semver::package::PackageReq; use deno_semver::Version; use deno_semver::VersionReq; +use deps::KeyPath; use jsonc_parser::cst::CstObject; use jsonc_parser::cst::CstObjectProp; use jsonc_parser::cst::CstRootNode; @@ -32,10 +33,13 @@ use crate::jsr::JsrFetchResolver; use crate::npm::NpmFetchResolver; mod cache_deps; +pub(crate) mod deps; +mod outdated; pub use cache_deps::cache_top_level_deps; +pub use outdated::outdated; -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Copy, Clone, Hash)] enum ConfigKind { DenoJson, PackageJson, @@ -86,6 +90,28 @@ impl ConfigUpdater { self.cst.to_string() } + fn get_property_for_mutation( + &mut self, + key_path: &KeyPath, + ) -> Option { + let mut current_node = self.root_object.clone(); + + self.modified = true; + + for (i, part) in key_path.parts.iter().enumerate() { + let s = part.as_str(); + if i < key_path.parts.len().saturating_sub(1) { + let object = current_node.object_value(s)?; + current_node = object; + } else { + // last part + return current_node.get(s); + } + } + + None + } + fn add(&mut self, selected: SelectedPackage, dev: bool) { fn insert_index(object: &CstObject, searching_name: &str) -> usize { object @@ -679,7 +705,7 @@ enum AddRmPackageReqValue { } #[derive(Debug, PartialEq, Eq)] -struct AddRmPackageReq { +pub struct AddRmPackageReq { alias: String, value: AddRmPackageReqValue, } @@ -824,7 +850,7 @@ async fn npm_install_after_modification( flags: Arc, // explicitly provided to prevent redownloading jsr_resolver: Option>, -) -> Result<(), AnyError> { +) -> Result { // clear the previously cached package.json from memory before reloading it node_resolver::PackageJsonThreadLocalCache::clear(); @@ -842,7 +868,7 @@ async fn npm_install_after_modification( lockfile.write_if_changed()?; } - Ok(()) + Ok(cli_factory) } #[cfg(test)] diff --git a/cli/tools/registry/pm/cache_deps.rs b/cli/tools/registry/pm/cache_deps.rs index d3c8da868c32f9..f9d67e4d4f4435 100644 --- a/cli/tools/registry/pm/cache_deps.rs +++ b/cli/tools/registry/pm/cache_deps.rs @@ -8,7 +8,7 @@ use crate::graph_container::ModuleGraphUpdatePermit; use deno_core::error::AnyError; use deno_core::futures::stream::FuturesUnordered; use deno_core::futures::StreamExt; -use deno_semver::package::PackageReq; +use deno_semver::jsr::JsrPackageReqReference; pub async fn cache_top_level_deps( // todo(dsherret): don't pass the factory into this function. Instead use ctor deps @@ -56,15 +56,20 @@ pub async fn cache_top_level_deps( match specifier.scheme() { "jsr" => { let specifier_str = specifier.as_str(); - let specifier_str = - specifier_str.strip_prefix("jsr:").unwrap_or(specifier_str); - if let Ok(req) = PackageReq::from_str(specifier_str) { - if !seen_reqs.insert(req.clone()) { + if let Ok(req) = JsrPackageReqReference::from_str(specifier_str) { + if let Some(sub_path) = req.sub_path() { + if sub_path.ends_with('/') { + continue; + } + roots.push(specifier.clone()); + continue; + } + if !seen_reqs.insert(req.req().clone()) { continue; } let jsr_resolver = jsr_resolver.clone(); info_futures.push(async move { - if let Some(nv) = jsr_resolver.req_to_nv(&req).await { + if let Some(nv) = jsr_resolver.req_to_nv(req.req()).await { if let Some(info) = jsr_resolver.package_version_info(&nv).await { return Some((specifier.clone(), info)); diff --git a/cli/tools/registry/pm/deps.rs b/cli/tools/registry/pm/deps.rs new file mode 100644 index 00000000000000..4778d6f3278178 --- /dev/null +++ b/cli/tools/registry/pm/deps.rs @@ -0,0 +1,964 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +use std::borrow::Cow; +use std::collections::HashMap; +use std::sync::atomic::AtomicBool; +use std::sync::Arc; + +use deno_ast::ModuleSpecifier; +use deno_config::deno_json::ConfigFile; +use deno_config::deno_json::ConfigFileRc; +use deno_config::workspace::Workspace; +use deno_config::workspace::WorkspaceDirectory; +use deno_core::anyhow::bail; +use deno_core::error::AnyError; +use deno_core::futures::future::try_join; +use deno_core::futures::stream::FuturesOrdered; +use deno_core::futures::stream::FuturesUnordered; +use deno_core::futures::FutureExt; +use deno_core::futures::StreamExt; +use deno_core::serde_json; +use deno_graph::FillFromLockfileOptions; +use deno_package_json::PackageJsonDepValue; +use deno_package_json::PackageJsonDepValueParseError; +use deno_package_json::PackageJsonRc; +use deno_runtime::deno_permissions::PermissionsContainer; +use deno_semver::jsr::JsrPackageReqReference; +use deno_semver::npm::NpmPackageReqReference; +use deno_semver::package::PackageNv; +use deno_semver::package::PackageReq; +use deno_semver::package::PackageReqReference; +use deno_semver::VersionReq; +use import_map::ImportMap; +use import_map::ImportMapWithDiagnostics; +use import_map::SpecifierMapEntry; +use indexmap::IndexMap; +use tokio::sync::Semaphore; + +use crate::args::CliLockfile; +use crate::graph_container::MainModuleGraphContainer; +use crate::graph_container::ModuleGraphContainer; +use crate::graph_container::ModuleGraphUpdatePermit; +use crate::jsr::JsrFetchResolver; +use crate::module_loader::ModuleLoadPreparer; +use crate::npm::CliNpmResolver; +use crate::npm::NpmFetchResolver; + +use super::ConfigUpdater; + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum ImportMapKind { + Inline, + Outline, +} + +#[derive(Clone)] +pub enum DepLocation { + DenoJson(ConfigFileRc, KeyPath, ImportMapKind), + PackageJson(PackageJsonRc, KeyPath), +} + +impl DepLocation { + pub fn is_deno_json(&self) -> bool { + matches!(self, DepLocation::DenoJson(..)) + } + + pub fn file_path(&self) -> Cow { + match self { + DepLocation::DenoJson(arc, _, _) => { + Cow::Owned(arc.specifier.to_file_path().unwrap()) + } + DepLocation::PackageJson(arc, _) => Cow::Borrowed(arc.path.as_ref()), + } + } + fn config_kind(&self) -> super::ConfigKind { + match self { + DepLocation::DenoJson(_, _, _) => super::ConfigKind::DenoJson, + DepLocation::PackageJson(_, _) => super::ConfigKind::PackageJson, + } + } +} + +struct DebugAdapter(T); + +impl<'a> std::fmt::Debug for DebugAdapter<&'a ConfigFileRc> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("ConfigFile") + .field("specifier", &self.0.specifier) + .finish() + } +} +impl<'a> std::fmt::Debug for DebugAdapter<&'a PackageJsonRc> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("PackageJson") + .field("path", &self.0.path) + .finish() + } +} + +impl std::fmt::Debug for DepLocation { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + DepLocation::DenoJson(arc, key_path, kind) => { + let mut debug = f.debug_tuple("DenoJson"); + debug + .field(&DebugAdapter(arc)) + .field(key_path) + .field(kind) + .finish() + } + DepLocation::PackageJson(arc, key_path) => { + let mut debug = f.debug_tuple("PackageJson"); + debug.field(&DebugAdapter(arc)).field(key_path).finish() + } + } + } +} + +#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub enum DepKind { + Jsr, + Npm, +} + +impl DepKind { + pub fn scheme(&self) -> &'static str { + match self { + DepKind::Npm => "npm", + DepKind::Jsr => "jsr", + } + } +} + +#[derive(Clone, Debug)] +pub enum KeyPart { + Imports, + Scopes, + Dependencies, + DevDependencies, + String(String), +} + +impl From for KeyPart { + fn from(value: String) -> Self { + KeyPart::String(value) + } +} + +impl From for KeyPart { + fn from(value: PackageJsonDepKind) -> Self { + match value { + PackageJsonDepKind::Normal => Self::Dependencies, + PackageJsonDepKind::Dev => Self::DevDependencies, + } + } +} + +impl KeyPart { + pub fn as_str(&self) -> &str { + match self { + KeyPart::Imports => "imports", + KeyPart::Scopes => "scopes", + KeyPart::Dependencies => "dependencies", + KeyPart::DevDependencies => "devDependencies", + KeyPart::String(s) => s, + } + } +} + +#[derive(Clone, Debug)] +pub struct KeyPath { + pub parts: Vec, +} + +impl KeyPath { + fn from_parts(parts: impl IntoIterator) -> Self { + Self { + parts: parts.into_iter().collect(), + } + } + fn last(&self) -> Option<&KeyPart> { + self.parts.last() + } + fn push(&mut self, part: KeyPart) { + self.parts.push(part) + } +} + +#[derive(Clone, Debug)] +pub struct Dep { + pub req: PackageReq, + pub kind: DepKind, + pub location: DepLocation, + #[allow(dead_code)] + pub id: DepId, + #[allow(dead_code)] + pub alias: Option, +} + +fn import_map_entries( + import_map: &ImportMap, +) -> impl Iterator)> { + import_map + .imports() + .entries() + .map(|entry| { + ( + KeyPath::from_parts([ + KeyPart::Imports, + KeyPart::String(entry.raw_key.into()), + ]), + entry, + ) + }) + .chain(import_map.scopes().flat_map(|scope| { + let path = KeyPath::from_parts([ + KeyPart::Scopes, + scope.raw_key.to_string().into(), + ]); + + scope.imports.entries().map(move |entry| { + let mut full_path = path.clone(); + full_path.push(KeyPart::String(entry.raw_key.to_string())); + (full_path, entry) + }) + })) +} + +fn to_import_map_value_from_imports( + deno_json: &ConfigFile, +) -> serde_json::Value { + let mut value = serde_json::Map::with_capacity(2); + if let Some(imports) = &deno_json.json.imports { + value.insert("imports".to_string(), imports.clone()); + } + if let Some(scopes) = &deno_json.json.scopes { + value.insert("scopes".to_string(), scopes.clone()); + } + serde_json::Value::Object(value) +} + +fn deno_json_import_map( + deno_json: &ConfigFile, +) -> Result, AnyError> { + let (value, kind) = + if deno_json.json.imports.is_some() || deno_json.json.scopes.is_some() { + ( + to_import_map_value_from_imports(deno_json), + ImportMapKind::Inline, + ) + } else { + match deno_json.to_import_map_path()? { + Some(path) => { + let text = std::fs::read_to_string(&path)?; + let value = serde_json::from_str(&text)?; + (value, ImportMapKind::Outline) + } + None => return Ok(None), + } + }; + + import_map::parse_from_value(deno_json.specifier.clone(), value) + .map_err(Into::into) + .map(|import_map| Some((import_map, kind))) +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum PackageJsonDepKind { + Normal, + Dev, +} + +type PackageJsonDeps = IndexMap< + String, + Result< + (PackageJsonDepKind, PackageJsonDepValue), + PackageJsonDepValueParseError, + >, +>; + +/// Resolve the package.json's dependencies. +// TODO(nathanwhit): Remove once we update deno_package_json with dev deps split out +fn resolve_local_package_json_deps( + package_json: &PackageJsonRc, +) -> PackageJsonDeps { + /// Gets the name and raw version constraint for a registry info or + /// package.json dependency entry taking into account npm package aliases. + fn parse_dep_entry_name_and_raw_version<'a>( + key: &'a str, + value: &'a str, + ) -> (&'a str, &'a str) { + if let Some(package_and_version) = value.strip_prefix("npm:") { + if let Some((name, version)) = package_and_version.rsplit_once('@') { + // if empty, then the name was scoped and there's no version + if name.is_empty() { + (package_and_version, "*") + } else { + (name, version) + } + } else { + (package_and_version, "*") + } + } else { + (key, value) + } + } + + fn parse_entry( + key: &str, + value: &str, + ) -> Result { + if let Some(workspace_key) = value.strip_prefix("workspace:") { + let version_req = VersionReq::parse_from_npm(workspace_key)?; + return Ok(PackageJsonDepValue::Workspace(version_req)); + } + if value.starts_with("file:") + || value.starts_with("git:") + || value.starts_with("http:") + || value.starts_with("https:") + { + return Err(PackageJsonDepValueParseError::Unsupported { + scheme: value.split(':').next().unwrap().to_string(), + }); + } + let (name, version_req) = parse_dep_entry_name_and_raw_version(key, value); + let result = VersionReq::parse_from_npm(version_req); + match result { + Ok(version_req) => Ok(PackageJsonDepValue::Req(PackageReq { + name: name.to_string(), + version_req, + })), + Err(err) => Err(PackageJsonDepValueParseError::VersionReq(err)), + } + } + + fn insert_deps( + deps: Option<&IndexMap>, + result: &mut PackageJsonDeps, + kind: PackageJsonDepKind, + ) { + if let Some(deps) = deps { + for (key, value) in deps { + result.entry(key.to_string()).or_insert_with(|| { + parse_entry(key, value).map(|entry| (kind, entry)) + }); + } + } + } + + let deps = package_json.dependencies.as_ref(); + let dev_deps = package_json.dev_dependencies.as_ref(); + let mut result = IndexMap::new(); + + // favors the deps over dev_deps + insert_deps(deps, &mut result, PackageJsonDepKind::Normal); + insert_deps(dev_deps, &mut result, PackageJsonDepKind::Dev); + + result +} + +fn add_deps_from_deno_json( + deno_json: &Arc, + mut filter: impl DepFilter, + deps: &mut Vec, +) { + let (import_map, import_map_kind) = match deno_json_import_map(deno_json) { + Ok(Some((import_map, import_map_kind))) => (import_map, import_map_kind), + Ok(None) => return, + Err(e) => { + log::warn!("failed to parse imports from {}: {e}", &deno_json.specifier); + return; + } + }; + for (key_path, entry) in import_map_entries(&import_map.import_map) { + let Some(value) = entry.value else { continue }; + let kind = match value.scheme() { + "npm" => DepKind::Npm, + "jsr" => DepKind::Jsr, + _ => continue, + }; + let req = match parse_req_reference(value.as_str(), kind) { + Ok(req) => req.req.clone(), + Err(err) => { + log::warn!("failed to parse package req \"{}\": {err}", value.as_str()); + continue; + } + }; + let alias: &str = key_path.last().unwrap().as_str().trim_end_matches('/'); + let alias = (alias != req.name).then(|| alias.to_string()); + if !filter.should_include(alias.as_deref(), &req, kind) { + continue; + } + let id = DepId(deps.len()); + deps.push(Dep { + location: DepLocation::DenoJson( + deno_json.clone(), + key_path, + import_map_kind, + ), + kind, + req, + id, + alias, + }); + } +} + +fn add_deps_from_package_json( + package_json: &PackageJsonRc, + mut filter: impl DepFilter, + deps: &mut Vec, +) { + let package_json_deps = resolve_local_package_json_deps(package_json); + for (k, v) in package_json_deps { + let (package_dep_kind, v) = match v { + Ok((k, v)) => (k, v), + Err(e) => { + log::warn!("bad package json dep value: {e}"); + continue; + } + }; + match v { + deno_package_json::PackageJsonDepValue::Req(req) => { + let alias = k.as_str(); + let alias = (alias != req.name).then(|| alias.to_string()); + if !filter.should_include(alias.as_deref(), &req, DepKind::Npm) { + continue; + } + let id = DepId(deps.len()); + deps.push(Dep { + id, + kind: DepKind::Npm, + location: DepLocation::PackageJson( + package_json.clone(), + KeyPath::from_parts([package_dep_kind.into(), k.into()]), + ), + req, + alias, + }) + } + deno_package_json::PackageJsonDepValue::Workspace(_) => continue, + } + } +} + +fn deps_from_workspace( + workspace: &Arc, + dep_filter: impl DepFilter, +) -> Result, AnyError> { + let mut deps = Vec::with_capacity(256); + for deno_json in workspace.deno_jsons() { + add_deps_from_deno_json(deno_json, dep_filter, &mut deps); + } + for package_json in workspace.package_jsons() { + add_deps_from_package_json(package_json, dep_filter, &mut deps); + } + + Ok(deps) +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub struct DepId(usize); + +#[derive(Debug, Clone)] +pub enum Change { + Update(DepId, VersionReq), +} + +pub trait DepFilter: Copy { + fn should_include( + &mut self, + alias: Option<&str>, + package_req: &PackageReq, + dep_kind: DepKind, + ) -> bool; +} + +impl DepFilter for T +where + T: FnMut(Option<&str>, &PackageReq, DepKind) -> bool + Copy, +{ + fn should_include<'a>( + &mut self, + alias: Option<&'a str>, + package_req: &'a PackageReq, + dep_kind: DepKind, + ) -> bool { + (*self)(alias, package_req, dep_kind) + } +} + +#[derive(Clone, Debug)] +pub struct PackageLatestVersion { + pub semver_compatible: Option, + pub latest: Option, +} + +pub struct DepManager { + deps: Vec, + resolved_versions: Vec>, + latest_versions: Vec, + + pending_changes: Vec, + + dependencies_resolved: AtomicBool, + module_load_preparer: Arc, + // TODO(nathanwhit): probably shouldn't be pub + pub(crate) jsr_fetch_resolver: Arc, + pub(crate) npm_fetch_resolver: Arc, + npm_resolver: Arc, + permissions_container: PermissionsContainer, + main_module_graph_container: Arc, + lockfile: Option>, +} + +pub struct DepManagerArgs { + pub module_load_preparer: Arc, + pub jsr_fetch_resolver: Arc, + pub npm_fetch_resolver: Arc, + pub npm_resolver: Arc, + pub permissions_container: PermissionsContainer, + pub main_module_graph_container: Arc, + pub lockfile: Option>, +} + +impl DepManager { + pub fn reloaded_after_modification(self, args: DepManagerArgs) -> Self { + let mut new = Self::with_deps_args(self.deps, args); + new.latest_versions = self.latest_versions; + new + } + fn with_deps_args(deps: Vec, args: DepManagerArgs) -> Self { + let DepManagerArgs { + module_load_preparer, + jsr_fetch_resolver, + npm_fetch_resolver, + npm_resolver, + permissions_container, + main_module_graph_container, + lockfile, + } = args; + Self { + deps, + resolved_versions: Vec::new(), + latest_versions: Vec::new(), + jsr_fetch_resolver, + dependencies_resolved: AtomicBool::new(false), + module_load_preparer, + npm_fetch_resolver, + npm_resolver, + permissions_container, + main_module_graph_container, + lockfile, + pending_changes: Vec::new(), + } + } + pub fn from_workspace_dir( + workspace_dir: &Arc, + dep_filter: impl DepFilter, + args: DepManagerArgs, + ) -> Result { + let mut deps = Vec::with_capacity(256); + if let Some(deno_json) = workspace_dir.maybe_deno_json() { + if deno_json.specifier.scheme() != "file" { + bail!("remote deno.json files are not supported"); + } + let path = deno_json.specifier.to_file_path().unwrap(); + if path.parent().unwrap() == workspace_dir.dir_path() { + add_deps_from_deno_json(deno_json, dep_filter, &mut deps); + } + } + if let Some(package_json) = workspace_dir.maybe_pkg_json() { + add_deps_from_package_json(package_json, dep_filter, &mut deps); + } + + Ok(Self::with_deps_args(deps, args)) + } + pub fn from_workspace( + workspace: &Arc, + dep_filter: impl DepFilter, + args: DepManagerArgs, + ) -> Result { + let deps = deps_from_workspace(workspace, dep_filter)?; + Ok(Self::with_deps_args(deps, args)) + } + + async fn run_dependency_resolution(&self) -> Result<(), AnyError> { + if self + .dependencies_resolved + .load(std::sync::atomic::Ordering::Relaxed) + { + return Ok(()); + } + + let mut graph_permit = self + .main_module_graph_container + .acquire_update_permit() + .await; + let graph = graph_permit.graph_mut(); + // populate the information from the lockfile + if let Some(lockfile) = &self.lockfile { + let lockfile = lockfile.lock(); + graph.fill_from_lockfile(FillFromLockfileOptions { + redirects: lockfile + .content + .redirects + .iter() + .map(|(from, to)| (from.as_str(), to.as_str())), + package_specifiers: lockfile + .content + .packages + .specifiers + .iter() + .map(|(dep, id)| (dep, id.as_str())), + }); + } + + let npm_resolver = self.npm_resolver.as_managed().unwrap(); + if self.deps.iter().all(|dep| match dep.kind { + DepKind::Npm => { + npm_resolver.resolve_pkg_id_from_pkg_req(&dep.req).is_ok() + } + DepKind::Jsr => graph.packages.mappings().contains_key(&dep.req), + }) { + self + .dependencies_resolved + .store(true, std::sync::atomic::Ordering::Relaxed); + graph_permit.commit(); + return Ok(()); + } + + npm_resolver.ensure_top_level_package_json_install().await?; + let mut roots = Vec::new(); + let mut info_futures = FuturesUnordered::new(); + for dep in &self.deps { + if dep.location.is_deno_json() { + match dep.kind { + DepKind::Npm => roots.push( + ModuleSpecifier::parse(&format!("npm:/{}/", dep.req)).unwrap(), + ), + DepKind::Jsr => info_futures.push(async { + if let Some(nv) = self.jsr_fetch_resolver.req_to_nv(&dep.req).await + { + if let Some(info) = + self.jsr_fetch_resolver.package_version_info(&nv).await + { + let specifier = + ModuleSpecifier::parse(&format!("jsr:/{}/", dep.req)) + .unwrap(); + return Some((specifier, info)); + } + } + None + }), + } + } + } + + while let Some(info_future) = info_futures.next().await { + if let Some((specifier, info)) = info_future { + let exports = info.exports(); + for (k, _) in exports { + if let Ok(spec) = specifier.join(k) { + roots.push(spec); + } + } + } + } + + self + .module_load_preparer + .prepare_module_load( + graph, + &roots, + false, + deno_config::deno_json::TsTypeLib::DenoWindow, + self.permissions_container.clone(), + None, + ) + .await?; + + graph_permit.commit(); + + Ok(()) + } + + pub fn resolved_version(&self, id: DepId) -> Option<&PackageNv> { + self.resolved_versions[id.0].as_ref() + } + + pub async fn resolve_current_versions(&mut self) -> Result<(), AnyError> { + self.run_dependency_resolution().await?; + + let graph = self.main_module_graph_container.graph(); + + let mut resolved = Vec::with_capacity(self.deps.len()); + let snapshot = self.npm_resolver.as_managed().unwrap().snapshot(); + let resolved_npm = snapshot.package_reqs(); + let resolved_jsr = graph.packages.mappings(); + for dep in &self.deps { + match dep.kind { + DepKind::Npm => { + let resolved_version = resolved_npm.get(&dep.req).cloned(); + resolved.push(resolved_version); + } + DepKind::Jsr => { + let resolved_version = resolved_jsr.get(&dep.req).cloned(); + resolved.push(resolved_version) + } + } + } + + self.resolved_versions = resolved; + + Ok(()) + } + + async fn load_latest_versions( + &self, + ) -> Result, AnyError> { + if self.latest_versions.len() == self.deps.len() { + return Ok(self.latest_versions.clone()); + } + let latest_tag_req = deno_semver::VersionReq::from_raw_text_and_inner( + "latest".into(), + deno_semver::RangeSetOrTag::Tag("latest".into()), + ); + let mut latest_versions = Vec::with_capacity(self.deps.len()); + + let npm_sema = Semaphore::new(32); + let jsr_sema = Semaphore::new(32); + let mut futs = FuturesOrdered::new(); + + for dep in &self.deps { + match dep.kind { + DepKind::Npm => futs.push_back( + async { + let semver_req = &dep.req; + let latest_req = PackageReq { + name: dep.req.name.clone(), + version_req: latest_tag_req.clone(), + }; + let _permit = npm_sema.acquire().await; + let semver_compatible = + self.npm_fetch_resolver.req_to_nv(semver_req).await; + let latest = self.npm_fetch_resolver.req_to_nv(&latest_req).await; + PackageLatestVersion { + latest, + semver_compatible, + } + } + .boxed_local(), + ), + DepKind::Jsr => futs.push_back( + async { + let semver_req = &dep.req; + let latest_req = PackageReq { + name: dep.req.name.clone(), + version_req: deno_semver::WILDCARD_VERSION_REQ.clone(), + }; + let _permit = jsr_sema.acquire().await; + let semver_compatible = + self.jsr_fetch_resolver.req_to_nv(semver_req).await; + let latest = self.jsr_fetch_resolver.req_to_nv(&latest_req).await; + PackageLatestVersion { + latest, + semver_compatible, + } + } + .boxed_local(), + ), + } + } + while let Some(nv) = futs.next().await { + latest_versions.push(nv); + } + + Ok(latest_versions) + } + + pub async fn resolve_versions(&mut self) -> Result<(), AnyError> { + let (_, latest_versions) = try_join( + self.run_dependency_resolution(), + self.load_latest_versions(), + ) + .await?; + + self.latest_versions = latest_versions; + + self.resolve_current_versions().await?; + + Ok(()) + } + + pub fn deps_with_resolved_latest_versions( + &self, + ) -> impl IntoIterator, PackageLatestVersion)> + '_ + { + self + .resolved_versions + .iter() + .zip(self.latest_versions.iter()) + .enumerate() + .map(|(i, (resolved, latest))| { + (DepId(i), resolved.clone(), latest.clone()) + }) + } + + pub fn get_dep(&self, id: DepId) -> &Dep { + &self.deps[id.0] + } + + pub fn update_dep(&mut self, dep_id: DepId, new_version_req: VersionReq) { + self + .pending_changes + .push(Change::Update(dep_id, new_version_req)); + } + + pub fn commit_changes(&mut self) -> Result<(), AnyError> { + let changes = std::mem::take(&mut self.pending_changes); + let mut config_updaters = HashMap::new(); + for change in changes { + match change { + Change::Update(dep_id, version_req) => { + // TODO: move most of this to ConfigUpdater + let dep = &mut self.deps[dep_id.0]; + dep.req.version_req = version_req.clone(); + match &dep.location { + DepLocation::DenoJson(arc, key_path, import_map_kind) => { + if matches!(import_map_kind, ImportMapKind::Outline) { + // not supported + continue; + } + let updater = + get_or_create_updater(&mut config_updaters, &dep.location)?; + + let Some(property) = updater.get_property_for_mutation(key_path) + else { + log::warn!( + "failed to find property at path {key_path:?} for file {}", + arc.specifier + ); + continue; + }; + let Some(string_value) = cst_string_literal(&property) else { + continue; + }; + let mut req_reference = match dep.kind { + DepKind::Npm => NpmPackageReqReference::from_str(&string_value) + .unwrap() + .into_inner(), + DepKind::Jsr => JsrPackageReqReference::from_str(&string_value) + .unwrap() + .into_inner(), + }; + req_reference.req.version_req = version_req; + let mut new_value = + format!("{}:{}", dep.kind.scheme(), req_reference); + if string_value.ends_with('/') && !new_value.ends_with('/') { + // the display impl for PackageReqReference maps `/` to the root + // subpath, but for the import map the trailing `/` is significant + new_value.push('/'); + } + if string_value + .trim_start_matches(format!("{}:", dep.kind.scheme()).as_str()) + .starts_with('/') + { + // this is gross + new_value = new_value.replace(':', ":/"); + } + property + .set_value(jsonc_parser::cst::CstInputValue::String(new_value)); + } + DepLocation::PackageJson(arc, key_path) => { + let updater = + get_or_create_updater(&mut config_updaters, &dep.location)?; + let Some(property) = updater.get_property_for_mutation(key_path) + else { + log::warn!( + "failed to find property at path {key_path:?} for file {}", + arc.path.display() + ); + continue; + }; + let Some(string_value) = cst_string_literal(&property) else { + continue; + }; + let new_value = if string_value.starts_with("npm:") { + // aliased + let rest = string_value.trim_start_matches("npm:"); + let mut parts = rest.split('@'); + let first = parts.next().unwrap(); + if first.is_empty() { + let scope_and_name = parts.next().unwrap(); + format!("npm:@{scope_and_name}@{version_req}") + } else { + format!("npm:{first}@{version_req}") + } + } else if string_value.contains(":") { + bail!("Unexpected package json dependency string: \"{string_value}\" in {}", arc.path.display()); + } else { + version_req.to_string() + }; + property + .set_value(jsonc_parser::cst::CstInputValue::String(new_value)); + } + } + } + } + } + + for (_, updater) in config_updaters { + updater.commit()?; + } + + Ok(()) + } +} + +fn get_or_create_updater<'a>( + config_updaters: &'a mut HashMap, + location: &DepLocation, +) -> Result<&'a mut ConfigUpdater, AnyError> { + match config_updaters.entry(location.file_path().into_owned()) { + std::collections::hash_map::Entry::Occupied(occupied_entry) => { + Ok(occupied_entry.into_mut()) + } + std::collections::hash_map::Entry::Vacant(vacant_entry) => { + let updater = ConfigUpdater::new( + location.config_kind(), + location.file_path().into_owned(), + )?; + Ok(vacant_entry.insert(updater)) + } + } +} + +fn cst_string_literal( + property: &jsonc_parser::cst::CstObjectProp, +) -> Option { + // TODO(nathanwhit): ensure this unwrap is safe + let value = property.value().unwrap(); + let Some(string) = value.as_string_lit() else { + log::warn!("malformed entry"); + return None; + }; + let Ok(string_value) = string.decoded_value() else { + log::warn!("malformed string: {string:?}"); + return None; + }; + Some(string_value) +} + +fn parse_req_reference( + input: &str, + kind: DepKind, +) -> Result< + PackageReqReference, + deno_semver::package::PackageReqReferenceParseError, +> { + Ok(match kind { + DepKind::Npm => NpmPackageReqReference::from_str(input)?.into_inner(), + DepKind::Jsr => JsrPackageReqReference::from_str(input)?.into_inner(), + }) +} diff --git a/cli/tools/registry/pm/outdated.rs b/cli/tools/registry/pm/outdated.rs new file mode 100644 index 00000000000000..2a29014267d67e --- /dev/null +++ b/cli/tools/registry/pm/outdated.rs @@ -0,0 +1,661 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +use std::collections::HashSet; +use std::sync::Arc; + +use deno_core::error::AnyError; +use deno_semver::package::PackageNv; +use deno_semver::package::PackageReq; +use deno_semver::VersionReq; +use deno_terminal::colors; + +use crate::args::CacheSetting; +use crate::args::CliOptions; +use crate::args::Flags; +use crate::args::OutdatedFlags; +use crate::factory::CliFactory; +use crate::file_fetcher::FileFetcher; +use crate::jsr::JsrFetchResolver; +use crate::npm::NpmFetchResolver; +use crate::tools::registry::pm::deps::DepKind; + +use super::deps::Dep; +use super::deps::DepManager; +use super::deps::DepManagerArgs; +use super::deps::PackageLatestVersion; + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)] +struct OutdatedPackage { + kind: DepKind, + latest: String, + semver_compatible: String, + current: String, + name: String, +} + +#[allow(clippy::print_stdout)] +fn print_outdated_table(packages: &[OutdatedPackage]) { + const HEADINGS: &[&str] = &["Package", "Current", "Update", "Latest"]; + + let mut longest_package = 0; + let mut longest_current = 0; + let mut longest_update = 0; + let mut longest_latest = 0; + + for package in packages { + let name_len = package.kind.scheme().len() + 1 + package.name.len(); + longest_package = longest_package.max(name_len); + longest_current = longest_current.max(package.current.len()); + longest_update = longest_update.max(package.semver_compatible.len()); + longest_latest = longest_latest.max(package.latest.len()); + } + + let package_column_width = longest_package.max(HEADINGS[0].len()) + 2; + let current_column_width = longest_current.max(HEADINGS[1].len()) + 2; + let update_column_width = longest_update.max(HEADINGS[2].len()) + 2; + let latest_column_width = longest_latest.max(HEADINGS[3].len()) + 2; + + let package_fill = "─".repeat(package_column_width); + let current_fill = "─".repeat(current_column_width); + let update_fill = "─".repeat(update_column_width); + let latest_fill = "─".repeat(latest_column_width); + + println!("┌{package_fill}┬{current_fill}┬{update_fill}┬{latest_fill}┐"); + println!( + "│ {}{} │ {}{} │ {}{} │ {}{} │", + colors::intense_blue(HEADINGS[0]), + " ".repeat(package_column_width - 2 - HEADINGS[0].len()), + colors::intense_blue(HEADINGS[1]), + " ".repeat(current_column_width - 2 - HEADINGS[1].len()), + colors::intense_blue(HEADINGS[2]), + " ".repeat(update_column_width - 2 - HEADINGS[2].len()), + colors::intense_blue(HEADINGS[3]), + " ".repeat(latest_column_width - 2 - HEADINGS[3].len()) + ); + for package in packages { + println!("├{package_fill}┼{current_fill}┼{update_fill}┼{latest_fill}┤",); + + print!( + "│ {: Result<(), AnyError> { + let mut outdated = Vec::new(); + let mut seen = std::collections::BTreeSet::new(); + for (dep_id, resolved, latest_versions) in + deps.deps_with_resolved_latest_versions() + { + let dep = deps.get_dep(dep_id); + + let Some(resolved) = resolved else { continue }; + + let latest = { + let preferred = if compatible { + &latest_versions.semver_compatible + } else { + &latest_versions.latest + }; + if let Some(v) = preferred { + v + } else { + continue; + } + }; + + if latest > &resolved + && seen.insert((dep.kind, dep.req.name.clone(), resolved.version.clone())) + { + outdated.push(OutdatedPackage { + kind: dep.kind, + name: dep.req.name.clone(), + current: resolved.version.to_string(), + latest: latest_versions + .latest + .map(|l| l.version.to_string()) + .unwrap_or_default(), + semver_compatible: latest_versions + .semver_compatible + .map(|l| l.version.to_string()) + .unwrap_or_default(), + }) + } + } + + if !outdated.is_empty() { + outdated.sort(); + print_outdated_table(&outdated); + } + + Ok(()) +} + +pub async fn outdated( + flags: Arc, + update_flags: OutdatedFlags, +) -> Result<(), AnyError> { + let factory = CliFactory::from_flags(flags.clone()); + let cli_options = factory.cli_options()?; + let workspace = cli_options.workspace(); + let http_client = factory.http_client_provider(); + let deps_http_cache = factory.global_http_cache()?; + let mut file_fetcher = FileFetcher::new( + deps_http_cache.clone(), + CacheSetting::RespectHeaders, + true, + http_client.clone(), + Default::default(), + None, + ); + file_fetcher.set_download_log_level(log::Level::Trace); + let file_fetcher = Arc::new(file_fetcher); + let npm_fetch_resolver = Arc::new(NpmFetchResolver::new( + file_fetcher.clone(), + cli_options.npmrc().clone(), + )); + let jsr_fetch_resolver = + Arc::new(JsrFetchResolver::new(file_fetcher.clone())); + + let args = dep_manager_args( + &factory, + cli_options, + npm_fetch_resolver.clone(), + jsr_fetch_resolver.clone(), + ) + .await?; + + let filter_set = filter::FilterSet::from_filter_strings( + update_flags.filters.iter().map(|s| s.as_str()), + )?; + + let filter_fn = |alias: Option<&str>, req: &PackageReq, _: DepKind| { + if filter_set.is_empty() { + return true; + } + let name = alias.unwrap_or(&req.name); + filter_set.matches(name) + }; + let mut deps = if update_flags.recursive { + super::deps::DepManager::from_workspace(workspace, filter_fn, args)? + } else { + super::deps::DepManager::from_workspace_dir( + &cli_options.start_dir, + filter_fn, + args, + )? + }; + + deps.resolve_versions().await?; + + match update_flags.kind { + crate::args::OutdatedKind::Update { latest } => { + update(deps, latest, &filter_set, flags).await?; + } + crate::args::OutdatedKind::PrintOutdated { compatible } => { + print_outdated(&mut deps, compatible)?; + } + } + + Ok(()) +} + +fn choose_new_version_req( + dep: &Dep, + resolved: Option<&PackageNv>, + latest_versions: &PackageLatestVersion, + update_to_latest: bool, + filter_set: &filter::FilterSet, +) -> Option { + let explicit_version_req = filter_set + .matching_filter(dep.alias.as_deref().unwrap_or(&dep.req.name)) + .version_spec() + .cloned(); + + if let Some(version_req) = explicit_version_req { + if let Some(resolved) = resolved { + // todo(nathanwhit): handle tag + if version_req.tag().is_none() && version_req.matches(&resolved.version) { + return None; + } + } + Some(version_req) + } else { + let preferred = if update_to_latest { + latest_versions.latest.as_ref()? + } else { + latest_versions.semver_compatible.as_ref()? + }; + if preferred.version <= resolved?.version { + return None; + } + Some( + VersionReq::parse_from_specifier( + format!("^{}", preferred.version).as_str(), + ) + .unwrap(), + ) + } +} + +async fn update( + mut deps: DepManager, + update_to_latest: bool, + filter_set: &filter::FilterSet, + flags: Arc, +) -> Result<(), AnyError> { + let mut updated = Vec::new(); + + for (dep_id, resolved, latest_versions) in deps + .deps_with_resolved_latest_versions() + .into_iter() + .collect::>() + { + let dep = deps.get_dep(dep_id); + let new_version_req = choose_new_version_req( + dep, + resolved.as_ref(), + &latest_versions, + update_to_latest, + filter_set, + ); + let Some(new_version_req) = new_version_req else { + continue; + }; + + updated.push(( + dep_id, + format!("{}:{}", dep.kind.scheme(), dep.req.name), + deps.resolved_version(dep.id).cloned(), + new_version_req.clone(), + )); + + deps.update_dep(dep_id, new_version_req); + } + + deps.commit_changes()?; + + if !updated.is_empty() { + let factory = super::npm_install_after_modification( + flags.clone(), + Some(deps.jsr_fetch_resolver.clone()), + ) + .await?; + + let mut updated_to_versions = HashSet::new(); + let cli_options = factory.cli_options()?; + let args = dep_manager_args( + &factory, + cli_options, + deps.npm_fetch_resolver.clone(), + deps.jsr_fetch_resolver.clone(), + ) + .await?; + + let mut deps = deps.reloaded_after_modification(args); + deps.resolve_current_versions().await?; + for (dep_id, package_name, maybe_current_version, new_version_req) in + updated + { + if let Some(nv) = deps.resolved_version(dep_id) { + updated_to_versions.insert(( + package_name, + maybe_current_version, + nv.version.clone(), + )); + } else { + log::warn!( + "Failed to resolve version for new version requirement: {} -> {}", + package_name, + new_version_req + ); + } + } + + log::info!( + "Updated {} dependenc{}:", + updated_to_versions.len(), + if updated_to_versions.len() == 1 { + "y" + } else { + "ies" + } + ); + let mut updated_to_versions = + updated_to_versions.into_iter().collect::>(); + updated_to_versions.sort_by(|(k, _, _), (k2, _, _)| k.cmp(k2)); + let max_name = updated_to_versions + .iter() + .map(|(name, _, _)| name.len()) + .max() + .unwrap_or(0); + let max_old = updated_to_versions + .iter() + .map(|(_, maybe_current, _)| { + maybe_current + .as_ref() + .map(|v| v.version.to_string().len()) + .unwrap_or(0) + }) + .max() + .unwrap_or(0); + let max_new = updated_to_versions + .iter() + .map(|(_, _, new_version)| new_version.to_string().len()) + .max() + .unwrap_or(0); + + for (package_name, maybe_current_version, new_version) in + updated_to_versions + { + let current_version = if let Some(current_version) = maybe_current_version + { + current_version.version.to_string() + } else { + "".to_string() + }; + + log::info!( + " - {}{} {}{} -> {}{}", + format!( + "{}{}", + colors::gray(package_name[0..4].to_string()), + package_name[4..].to_string() + ), + " ".repeat(max_name - package_name.len()), + " ".repeat(max_old - current_version.len()), + colors::gray(¤t_version), + " ".repeat(max_new - new_version.to_string().len()), + colors::green(&new_version), + ); + } + } else { + log::info!( + "All {}dependencies are up to date.", + if filter_set.is_empty() { + "" + } else { + "matching " + } + ); + } + + Ok(()) +} + +async fn dep_manager_args( + factory: &CliFactory, + cli_options: &CliOptions, + npm_fetch_resolver: Arc, + jsr_fetch_resolver: Arc, +) -> Result { + Ok(DepManagerArgs { + module_load_preparer: factory.module_load_preparer().await?.clone(), + jsr_fetch_resolver, + npm_fetch_resolver, + npm_resolver: factory.npm_resolver().await?.clone(), + permissions_container: factory.root_permissions_container()?.clone(), + main_module_graph_container: factory + .main_module_graph_container() + .await? + .clone(), + lockfile: cli_options.maybe_lockfile().cloned(), + }) +} + +mod filter { + use deno_core::anyhow::anyhow; + use deno_core::anyhow::Context; + use deno_core::error::AnyError; + use deno_semver::VersionReq; + + enum FilterKind { + Exclude, + Include, + } + pub struct Filter { + kind: FilterKind, + regex: regex::Regex, + version_spec: Option, + } + + fn pattern_to_regex(pattern: &str) -> Result { + let escaped = regex::escape(pattern); + let unescaped_star = escaped.replace(r"\*", ".*"); + Ok(regex::Regex::new(&format!("^{}$", unescaped_star))?) + } + + impl Filter { + pub fn version_spec(&self) -> Option<&VersionReq> { + self.version_spec.as_ref() + } + pub fn from_str(input: &str) -> Result { + let (kind, first_idx) = if input.starts_with('!') { + (FilterKind::Exclude, 1) + } else { + (FilterKind::Include, 0) + }; + let s = &input[first_idx..]; + let (pattern, version_spec) = + if let Some(scope_name) = s.strip_prefix('@') { + if let Some(idx) = scope_name.find('@') { + let (pattern, version_spec) = s.split_at(idx + 1); + ( + pattern, + Some( + VersionReq::parse_from_specifier( + version_spec.trim_start_matches('@'), + ) + .with_context(|| format!("Invalid filter \"{input}\""))?, + ), + ) + } else { + (s, None) + } + } else { + let mut parts = s.split('@'); + let Some(pattern) = parts.next() else { + return Err(anyhow!("Invalid filter \"{input}\"")); + }; + ( + pattern, + parts + .next() + .map(VersionReq::parse_from_specifier) + .transpose() + .with_context(|| format!("Invalid filter \"{input}\""))?, + ) + }; + + Ok(Filter { + kind, + regex: pattern_to_regex(pattern) + .with_context(|| format!("Invalid filter \"{input}\""))?, + version_spec, + }) + } + + pub fn matches(&self, name: &str) -> bool { + self.regex.is_match(name) + } + } + + pub struct FilterSet { + filters: Vec, + has_exclude: bool, + has_include: bool, + } + impl FilterSet { + pub fn from_filter_strings<'a>( + filter_strings: impl IntoIterator, + ) -> Result { + let filters = filter_strings + .into_iter() + .map(Filter::from_str) + .collect::, _>>()?; + let has_exclude = filters + .iter() + .any(|f| matches!(f.kind, FilterKind::Exclude)); + let has_include = filters + .iter() + .any(|f| matches!(f.kind, FilterKind::Include)); + Ok(FilterSet { + filters, + has_exclude, + has_include, + }) + } + + pub fn is_empty(&self) -> bool { + self.filters.is_empty() + } + + pub fn matches(&self, name: &str) -> bool { + self.matching_filter(name).is_included() + } + + pub fn matching_filter(&self, name: &str) -> MatchResult<'_> { + if self.filters.is_empty() { + return MatchResult::Included; + } + let mut matched = None; + for filter in &self.filters { + match filter.kind { + FilterKind::Include => { + if matched.is_none() && filter.matches(name) { + matched = Some(filter); + } + } + FilterKind::Exclude => { + if filter.matches(name) { + return MatchResult::Excluded; + } + } + } + } + if let Some(filter) = matched { + MatchResult::Matches(filter) + } else if self.has_exclude && !self.has_include { + MatchResult::Included + } else { + MatchResult::Excluded + } + } + } + + pub enum MatchResult<'a> { + Matches(&'a Filter), + Included, + Excluded, + } + + impl MatchResult<'_> { + pub fn version_spec(&self) -> Option<&VersionReq> { + match self { + MatchResult::Matches(filter) => filter.version_spec(), + _ => None, + } + } + pub fn is_included(&self) -> bool { + matches!(self, MatchResult::Included | MatchResult::Matches(_)) + } + } + + #[cfg(test)] + mod test { + fn matches_filters<'a, 'b>( + filters: impl IntoIterator, + name: &str, + ) -> bool { + let filters = super::FilterSet::from_filter_strings(filters).unwrap(); + filters.matches(name) + } + + fn version_spec(s: &str) -> deno_semver::VersionReq { + deno_semver::VersionReq::parse_from_specifier(s).unwrap() + } + + #[test] + fn basic_glob() { + assert!(matches_filters(["foo*"], "foo")); + assert!(matches_filters(["foo*"], "foobar")); + assert!(!matches_filters(["foo*"], "barfoo")); + + assert!(matches_filters(["*foo"], "foo")); + assert!(matches_filters(["*foo"], "barfoo")); + assert!(!matches_filters(["*foo"], "foobar")); + + assert!(matches_filters(["@scope/foo*"], "@scope/foobar")); + } + + #[test] + fn basic_glob_with_version() { + assert!(matches_filters(["foo*@1"], "foo",)); + assert!(matches_filters(["foo*@1"], "foobar",)); + assert!(matches_filters(["foo*@1"], "foo-bar",)); + assert!(!matches_filters(["foo*@1"], "barfoo",)); + assert!(matches_filters(["@scope/*@1"], "@scope/foo")); + } + + #[test] + fn glob_exclude() { + assert!(!matches_filters(["!foo*"], "foo")); + assert!(!matches_filters(["!foo*"], "foobar")); + assert!(matches_filters(["!foo*"], "barfoo")); + + assert!(!matches_filters(["!*foo"], "foo")); + assert!(!matches_filters(["!*foo"], "barfoo")); + assert!(matches_filters(["!*foo"], "foobar")); + + assert!(!matches_filters(["!@scope/foo*"], "@scope/foobar")); + } + + #[test] + fn multiple_globs() { + assert!(matches_filters(["foo*", "bar*"], "foo")); + assert!(matches_filters(["foo*", "bar*"], "bar")); + assert!(!matches_filters(["foo*", "bar*"], "baz")); + + assert!(matches_filters(["foo*", "!bar*"], "foo")); + assert!(!matches_filters(["foo*", "!bar*"], "bar")); + assert!(matches_filters(["foo*", "!bar*"], "foobar")); + assert!(!matches_filters(["foo*", "!*bar"], "foobar")); + assert!(!matches_filters(["foo*", "!*bar"], "baz")); + + let filters = + super::FilterSet::from_filter_strings(["foo*@1", "bar*@2"]).unwrap(); + + assert_eq!( + filters.matching_filter("foo").version_spec().cloned(), + Some(version_spec("1")) + ); + + assert_eq!( + filters.matching_filter("bar").version_spec().cloned(), + Some(version_spec("2")) + ); + } + } +} diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index 23b0f11ac5266d..8e05c4abbcff89 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -7,7 +7,7 @@ use crate::cdp; use crate::colors; use crate::lsp::ReplLanguageServer; use crate::npm::CliNpmResolver; -use crate::resolver::CliGraphResolver; +use crate::resolver::CliResolver; use crate::tools::test::report_tests; use crate::tools::test::reporters::PrettyTestReporter; use crate::tools::test::reporters::TestReporter; @@ -44,12 +44,12 @@ use deno_core::url::Url; use deno_core::LocalInspectorSession; use deno_core::PollEventLoopOptions; use deno_graph::source::ResolutionMode; -use deno_graph::source::Resolver; use deno_graph::Position; use deno_graph::PositionRange; use deno_graph::SpecifierWithRange; use deno_runtime::worker::MainWorker; use deno_semver::npm::NpmPackageReqReference; +use node_resolver::NodeModuleKind; use once_cell::sync::Lazy; use regex::Match; use regex::Regex; @@ -180,7 +180,7 @@ struct ReplJsxState { pub struct ReplSession { npm_resolver: Arc, - resolver: Arc, + resolver: Arc, pub worker: MainWorker, session: LocalInspectorSession, pub context_id: u64, @@ -199,7 +199,7 @@ impl ReplSession { pub async fn initialize( cli_options: &CliOptions, npm_resolver: Arc, - resolver: Arc, + resolver: Arc, mut worker: MainWorker, main_module: ModuleSpecifier, test_event_receiver: TestEventReceiver, @@ -245,7 +245,7 @@ impl ReplSession { assert_ne!(context_id, 0); let referrer = - deno_core::resolve_path("./$deno$repl.ts", cli_options.initial_cwd()) + deno_core::resolve_path("./$deno$repl.mts", cli_options.initial_cwd()) .unwrap(); let cwd_url = @@ -712,7 +712,12 @@ impl ReplSession { .flat_map(|i| { self .resolver - .resolve(i, &referrer_range, ResolutionMode::Execution) + .resolve( + i, + &referrer_range, + NodeModuleKind::Esm, + ResolutionMode::Execution, + ) .ok() .or_else(|| ModuleSpecifier::parse(i).ok()) }) diff --git a/cli/tools/run/hmr.rs b/cli/tools/run/hmr.rs index 6cebedd0127c5f..373c207d6991ee 100644 --- a/cli/tools/run/hmr.rs +++ b/cli/tools/run/hmr.rs @@ -4,8 +4,6 @@ use std::collections::HashMap; use std::path::PathBuf; use std::sync::Arc; -use deno_ast::MediaType; -use deno_ast::ModuleKind; use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::futures::StreamExt; @@ -18,7 +16,6 @@ use tokio::select; use crate::cdp; use crate::emit::Emitter; -use crate::resolver::CjsTracker; use crate::util::file_watcher::WatcherCommunicator; use crate::util::file_watcher::WatcherRestartMode; @@ -63,7 +60,6 @@ pub struct HmrRunner { session: LocalInspectorSession, watcher_communicator: Arc, script_ids: HashMap, - cjs_tracker: Arc, emitter: Arc, } @@ -146,7 +142,6 @@ impl crate::worker::HmrRunner for HmrRunner { let source_code = self.emitter.load_and_emit_for_hmr( &module_url, - ModuleKind::from_is_cjs(self.cjs_tracker.is_maybe_cjs(&module_url, MediaType::from_specifier(&module_url))?), ).await?; let mut tries = 1; @@ -179,14 +174,12 @@ impl crate::worker::HmrRunner for HmrRunner { impl HmrRunner { pub fn new( - cjs_tracker: Arc, emitter: Arc, session: LocalInspectorSession, watcher_communicator: Arc, ) -> Self { Self { session, - cjs_tracker, emitter, watcher_communicator, script_ids: HashMap::new(), diff --git a/cli/tools/run/mod.rs b/cli/tools/run/mod.rs index bebb3f5881bbf6..8fab544ecacae2 100644 --- a/cli/tools/run/mod.rs +++ b/cli/tools/run/mod.rs @@ -124,7 +124,8 @@ async fn run_with_watch( !watch_flags.no_clear_screen, ), WatcherRestartMode::Automatic, - move |flags, watcher_communicator, _changed_paths| { + move |flags, watcher_communicator, changed_paths| { + watcher_communicator.show_path_changed(changed_paths.clone()); Ok(async move { let factory = CliFactory::from_flags_for_watcher( flags, diff --git a/cli/tools/serve.rs b/cli/tools/serve.rs index e3f9e94f8e00b8..d7989140aeb20f 100644 --- a/cli/tools/serve.rs +++ b/cli/tools/serve.rs @@ -151,7 +151,8 @@ async fn serve_with_watch( !watch_flags.no_clear_screen, ), WatcherRestartMode::Automatic, - move |flags, watcher_communicator, _changed_paths| { + move |flags, watcher_communicator, changed_paths| { + watcher_communicator.show_path_changed(changed_paths.clone()); Ok(async move { let factory = CliFactory::from_flags_for_watcher( flags, diff --git a/cli/tools/task.rs b/cli/tools/task.rs index 502b09d2c2ca76..478853f4e64f61 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -1,23 +1,33 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use std::borrow::Cow; use std::collections::HashMap; use std::collections::HashSet; +use std::num::NonZeroUsize; use std::path::Path; use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; -use deno_config::deno_json::Task; +use deno_config::workspace::FolderConfigs; +use deno_config::workspace::TaskDefinition; use deno_config::workspace::TaskOrScript; use deno_config::workspace::WorkspaceDirectory; +use deno_config::workspace::WorkspaceMemberTasksConfig; use deno_config::workspace::WorkspaceTasksConfig; use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::AnyError; +use deno_core::futures::future::LocalBoxFuture; +use deno_core::futures::stream::futures_unordered; +use deno_core::futures::FutureExt; +use deno_core::futures::StreamExt; +use deno_core::url::Url; use deno_path_util::normalize_path; +use deno_runtime::deno_node::NodeResolver; use deno_task_shell::ShellCommand; +use indexmap::IndexMap; +use regex::Regex; use crate::args::CliOptions; use crate::args::Flags; @@ -28,6 +38,12 @@ use crate::npm::CliNpmResolver; use crate::task_runner; use crate::util::fs::canonicalize_path; +#[derive(Debug)] +struct PackageTaskInfo { + matched_tasks: Vec, + tasks_config: WorkspaceTasksConfig, +} + pub async fn execute_script( flags: Arc, task_flags: TaskFlags, @@ -35,7 +51,7 @@ pub async fn execute_script( let factory = CliFactory::from_flags(flags); let cli_options = factory.cli_options()?; let start_dir = &cli_options.start_dir; - if !start_dir.has_deno_or_pkg_json() { + if !start_dir.has_deno_or_pkg_json() && !task_flags.eval { bail!("deno task couldn't find deno.json(c). See https://docs.deno.com/go/config") } let force_use_pkg_json = @@ -48,155 +64,563 @@ pub async fn execute_script( v == "1" }) .unwrap_or(false); - let tasks_config = start_dir.to_tasks_config()?; - let tasks_config = if force_use_pkg_json { - tasks_config.with_only_pkg_json() + + fn arg_to_regex(input: &str) -> Result { + let mut regex_str = regex::escape(input); + regex_str = regex_str.replace("\\*", ".*"); + + Regex::new(®ex_str) + } + + let packages_task_configs: Vec = if let Some(filter) = + &task_flags.filter + { + let task_name = task_flags.task.as_ref().unwrap(); + + // Filter based on package name + let package_regex = arg_to_regex(filter)?; + let task_regex = arg_to_regex(task_name)?; + + let mut packages_task_info: Vec = vec![]; + + fn matches_package( + config: &FolderConfigs, + force_use_pkg_json: bool, + regex: &Regex, + ) -> bool { + if !force_use_pkg_json { + if let Some(deno_json) = &config.deno_json { + if let Some(name) = &deno_json.json.name { + if regex.is_match(name) { + return true; + } + } + } + } + + if let Some(package_json) = &config.pkg_json { + if let Some(name) = &package_json.name { + if regex.is_match(name) { + return true; + } + } + } + + false + } + + let workspace = cli_options.workspace(); + for folder in workspace.config_folders() { + if !matches_package(folder.1, force_use_pkg_json, &package_regex) { + continue; + } + + let member_dir = workspace.resolve_member_dir(folder.0); + let mut tasks_config = member_dir.to_tasks_config()?; + if force_use_pkg_json { + tasks_config = tasks_config.with_only_pkg_json(); + } + + // Any of the matched tasks could be a child task of another matched + // one. Therefore we need to filter these out to ensure that every + // task is only run once. + let mut matched: HashSet = HashSet::new(); + let mut visited: HashSet = HashSet::new(); + + fn visit_task( + tasks_config: &WorkspaceTasksConfig, + visited: &mut HashSet, + name: &str, + ) { + if visited.contains(name) { + return; + } + + visited.insert(name.to_string()); + + if let Some((_, TaskOrScript::Task(_, task))) = &tasks_config.task(name) + { + for dep in &task.dependencies { + visit_task(tasks_config, visited, dep); + } + } + } + + // Match tasks in deno.json + for name in tasks_config.task_names() { + if task_regex.is_match(name) && !visited.contains(name) { + matched.insert(name.to_string()); + visit_task(&tasks_config, &mut visited, name); + } + } + + packages_task_info.push(PackageTaskInfo { + matched_tasks: matched + .iter() + .map(|s| s.to_string()) + .collect::>(), + tasks_config, + }); + } + + // Logging every task definition would be too spammy. Pnpm only + // logs a simple message too. + if packages_task_info + .iter() + .all(|config| config.matched_tasks.is_empty()) + { + log::warn!( + "{}", + colors::red(format!( + "No matching task or script '{}' found in selected packages.", + task_name + )) + ); + return Ok(0); + } + + // FIXME: Sort packages topologically + // + + packages_task_info } else { - tasks_config - }; + let mut tasks_config = start_dir.to_tasks_config()?; + + if force_use_pkg_json { + tasks_config = tasks_config.with_only_pkg_json() + } - let task_name = match &task_flags.task { - Some(task) => task, - None => { + let Some(task_name) = &task_flags.task else { print_available_tasks( &mut std::io::stdout(), &cli_options.start_dir, &tasks_config, )?; return Ok(0); - } + }; + + vec![PackageTaskInfo { + tasks_config, + matched_tasks: vec![task_name.to_string()], + }] }; let npm_resolver = factory.npm_resolver().await?; let node_resolver = factory.node_resolver().await?; let env_vars = task_runner::real_env_vars(); - match tasks_config.task(task_name) { - Some((dir_url, task_or_script)) => match task_or_script { - TaskOrScript::Task(_tasks, script) => { - let cwd = match task_flags.cwd { - Some(path) => canonicalize_path(&PathBuf::from(path)) - .context("failed canonicalizing --cwd")?, - None => normalize_path(dir_url.to_file_path().unwrap()), - }; - - let custom_commands = task_runner::resolve_custom_commands( - npm_resolver.as_ref(), - node_resolver, - )?; - run_task(RunTaskOptions { - task_name, - script, - cwd: &cwd, - env_vars, - custom_commands, - npm_resolver: npm_resolver.as_ref(), - cli_options, - }) - .await - } - TaskOrScript::Script(scripts, _script) => { - // ensure the npm packages are installed if using a managed resolver - if let Some(npm_resolver) = npm_resolver.as_managed() { - npm_resolver.ensure_top_level_package_json_install().await?; - } + let no_of_concurrent_tasks = if let Ok(value) = std::env::var("DENO_JOBS") { + value.parse::().ok() + } else { + std::thread::available_parallelism().ok() + } + .unwrap_or_else(|| NonZeroUsize::new(2).unwrap()); - let cwd = match task_flags.cwd { - Some(path) => canonicalize_path(&PathBuf::from(path))?, - None => normalize_path(dir_url.to_file_path().unwrap()), - }; - - // At this point we already checked if the task name exists in package.json. - // We can therefore check for "pre" and "post" scripts too, since we're only - // dealing with package.json here and not deno.json - let task_names = vec![ - format!("pre{}", task_name), - task_name.clone(), - format!("post{}", task_name), - ]; - let custom_commands = task_runner::resolve_custom_commands( - npm_resolver.as_ref(), - node_resolver, - )?; - for task_name in &task_names { - if let Some(script) = scripts.get(task_name) { - let exit_code = run_task(RunTaskOptions { - task_name, - script, - cwd: &cwd, - env_vars: env_vars.clone(), - custom_commands: custom_commands.clone(), - npm_resolver: npm_resolver.as_ref(), - cli_options, - }) - .await?; - if exit_code > 0 { - return Ok(exit_code); - } - } - } + let task_runner = TaskRunner { + task_flags: &task_flags, + npm_resolver: npm_resolver.as_ref(), + node_resolver: node_resolver.as_ref(), + env_vars, + cli_options, + concurrency: no_of_concurrent_tasks.into(), + }; - Ok(0) - } - }, - None => { - if task_flags.is_run { - return Err(anyhow!("Task not found: {}", task_name)); - } - log::error!("Task not found: {}", task_name); - if log::log_enabled!(log::Level::Error) { - print_available_tasks( - &mut std::io::stderr(), - &cli_options.start_dir, - &tasks_config, - )?; - } - Ok(1) + if task_flags.eval { + return task_runner + .run_deno_task( + &Url::from_directory_path(cli_options.initial_cwd()).unwrap(), + "", + &TaskDefinition { + command: task_flags.task.as_ref().unwrap().to_string(), + dependencies: vec![], + description: None, + }, + ) + .await; + } + + for task_config in &packages_task_configs { + let exit_code = task_runner.run_tasks(task_config).await?; + if exit_code > 0 { + return Ok(exit_code); } } + + Ok(0) } -struct RunTaskOptions<'a> { +struct RunSingleOptions<'a> { task_name: &'a str, script: &'a str, cwd: &'a Path, - env_vars: HashMap, custom_commands: HashMap>, +} + +struct TaskRunner<'a> { + task_flags: &'a TaskFlags, npm_resolver: &'a dyn CliNpmResolver, + node_resolver: &'a NodeResolver, + env_vars: HashMap, cli_options: &'a CliOptions, + concurrency: usize, } -async fn run_task(opts: RunTaskOptions<'_>) -> Result { - let RunTaskOptions { - task_name, - script, - cwd, - env_vars, - custom_commands, - npm_resolver, - cli_options, - } = opts; +impl<'a> TaskRunner<'a> { + pub async fn run_tasks( + &self, + pkg_tasks_config: &PackageTaskInfo, + ) -> Result { + match sort_tasks_topo(pkg_tasks_config) { + Ok(sorted) => self.run_tasks_in_parallel(sorted).await, + Err(err) => match err { + TaskError::NotFound(name) => { + if self.task_flags.is_run { + return Err(anyhow!("Task not found: {}", name)); + } - output_task( - opts.task_name, - &task_runner::get_script_with_args(script, cli_options.argv()), - ); + log::error!("Task not found: {}", name); + if log::log_enabled!(log::Level::Error) { + self.print_available_tasks(&pkg_tasks_config.tasks_config)?; + } + Ok(1) + } + TaskError::TaskDepCycle { path } => { + log::error!("Task cycle detected: {}", path.join(" -> ")); + Ok(1) + } + }, + } + } + + pub fn print_available_tasks( + &self, + tasks_config: &WorkspaceTasksConfig, + ) -> Result<(), std::io::Error> { + print_available_tasks( + &mut std::io::stderr(), + &self.cli_options.start_dir, + tasks_config, + ) + } + + async fn run_tasks_in_parallel( + &self, + tasks: Vec>, + ) -> Result { + struct PendingTasksContext<'a> { + completed: HashSet, + running: HashSet, + tasks: &'a [ResolvedTask<'a>], + } + + impl<'a> PendingTasksContext<'a> { + fn has_remaining_tasks(&self) -> bool { + self.completed.len() < self.tasks.len() + } + + fn mark_complete(&mut self, task: &ResolvedTask) { + self.running.remove(&task.id); + self.completed.insert(task.id); + } + + fn get_next_task<'b>( + &mut self, + runner: &'b TaskRunner<'b>, + ) -> Option< + LocalBoxFuture<'b, Result<(i32, &'a ResolvedTask<'a>), AnyError>>, + > + where + 'a: 'b, + { + for task in self.tasks.iter() { + if self.completed.contains(&task.id) + || self.running.contains(&task.id) + { + continue; + } + + let should_run = task + .dependencies + .iter() + .all(|dep_id| self.completed.contains(dep_id)); + if !should_run { + continue; + } + + self.running.insert(task.id); + return Some( + async move { + match task.task_or_script { + TaskOrScript::Task(_, def) => { + runner.run_deno_task(task.folder_url, task.name, def).await + } + TaskOrScript::Script(scripts, _) => { + runner + .run_npm_script(task.folder_url, task.name, scripts) + .await + } + } + .map(|exit_code| (exit_code, task)) + } + .boxed_local(), + ); + } + None + } + } - Ok( - task_runner::run_task(task_runner::RunTaskOptions { + let mut context = PendingTasksContext { + completed: HashSet::with_capacity(tasks.len()), + running: HashSet::with_capacity(self.concurrency), + tasks: &tasks, + }; + + let mut queue = futures_unordered::FuturesUnordered::new(); + + while context.has_remaining_tasks() { + while queue.len() < self.concurrency { + if let Some(task) = context.get_next_task(self) { + queue.push(task); + } else { + break; + } + } + + // If queue is empty at this point, then there are no more tasks in the queue. + let Some(result) = queue.next().await else { + debug_assert_eq!(context.tasks.len(), 0); + break; + }; + + let (exit_code, name) = result?; + if exit_code > 0 { + return Ok(exit_code); + } + + context.mark_complete(name); + } + + Ok(0) + } + + pub async fn run_deno_task( + &self, + dir_url: &Url, + task_name: &str, + definition: &TaskDefinition, + ) -> Result { + let cwd = match &self.task_flags.cwd { + Some(path) => canonicalize_path(&PathBuf::from(path)) + .context("failed canonicalizing --cwd")?, + None => normalize_path(dir_url.to_file_path().unwrap()), + }; + + let custom_commands = task_runner::resolve_custom_commands( + self.npm_resolver, + self.node_resolver, + )?; + self + .run_single(RunSingleOptions { + task_name, + script: &definition.command, + cwd: &cwd, + custom_commands, + }) + .await + } + + pub async fn run_npm_script( + &self, + dir_url: &Url, + task_name: &str, + scripts: &IndexMap, + ) -> Result { + // ensure the npm packages are installed if using a managed resolver + if let Some(npm_resolver) = self.npm_resolver.as_managed() { + npm_resolver.ensure_top_level_package_json_install().await?; + } + + let cwd = match &self.task_flags.cwd { + Some(path) => canonicalize_path(&PathBuf::from(path))?, + None => normalize_path(dir_url.to_file_path().unwrap()), + }; + + // At this point we already checked if the task name exists in package.json. + // We can therefore check for "pre" and "post" scripts too, since we're only + // dealing with package.json here and not deno.json + let task_names = vec![ + format!("pre{}", task_name), + task_name.to_string(), + format!("post{}", task_name), + ]; + let custom_commands = task_runner::resolve_custom_commands( + self.npm_resolver, + self.node_resolver, + )?; + for task_name in &task_names { + if let Some(script) = scripts.get(task_name) { + let exit_code = self + .run_single(RunSingleOptions { + task_name, + script, + cwd: &cwd, + custom_commands: custom_commands.clone(), + }) + .await?; + if exit_code > 0 { + return Ok(exit_code); + } + } + } + + Ok(0) + } + + async fn run_single( + &self, + opts: RunSingleOptions<'_>, + ) -> Result { + let RunSingleOptions { task_name, script, cwd, - env_vars, custom_commands, - init_cwd: opts.cli_options.initial_cwd(), - argv: cli_options.argv(), - root_node_modules_dir: npm_resolver.root_node_modules_path(), - stdio: None, - }) - .await? - .exit_code, - ) + } = opts; + + output_task( + opts.task_name, + &task_runner::get_script_with_args(script, self.cli_options.argv()), + ); + + Ok( + task_runner::run_task(task_runner::RunTaskOptions { + task_name, + script, + cwd, + env_vars: self.env_vars.clone(), + custom_commands, + init_cwd: self.cli_options.initial_cwd(), + argv: self.cli_options.argv(), + root_node_modules_dir: self.npm_resolver.root_node_modules_path(), + stdio: None, + }) + .await? + .exit_code, + ) + } +} + +#[derive(Debug)] +enum TaskError { + NotFound(String), + TaskDepCycle { path: Vec }, +} + +struct ResolvedTask<'a> { + id: usize, + name: &'a str, + folder_url: &'a Url, + task_or_script: TaskOrScript<'a>, + dependencies: Vec, +} + +fn sort_tasks_topo<'a>( + pkg_task_config: &'a PackageTaskInfo, +) -> Result>, TaskError> { + trait TasksConfig { + fn task( + &self, + name: &str, + ) -> Option<(&Url, TaskOrScript, &dyn TasksConfig)>; + } + + impl TasksConfig for WorkspaceTasksConfig { + fn task( + &self, + name: &str, + ) -> Option<(&Url, TaskOrScript, &dyn TasksConfig)> { + if let Some(member) = &self.member { + if let Some((dir_url, task_or_script)) = member.task(name) { + return Some((dir_url, task_or_script, self as &dyn TasksConfig)); + } + } + if let Some(root) = &self.root { + if let Some((dir_url, task_or_script)) = root.task(name) { + // switch to only using the root tasks for the dependencies + return Some((dir_url, task_or_script, root as &dyn TasksConfig)); + } + } + None + } + } + + impl TasksConfig for WorkspaceMemberTasksConfig { + fn task( + &self, + name: &str, + ) -> Option<(&Url, TaskOrScript, &dyn TasksConfig)> { + self.task(name).map(|(dir_url, task_or_script)| { + (dir_url, task_or_script, self as &dyn TasksConfig) + }) + } + } + + fn sort_visit<'a>( + name: &'a str, + sorted: &mut Vec>, + mut path: Vec<(&'a Url, &'a str)>, + tasks_config: &'a dyn TasksConfig, + ) -> Result { + let Some((folder_url, task_or_script, tasks_config)) = + tasks_config.task(name) + else { + return Err(TaskError::NotFound(name.to_string())); + }; + + if let Some(existing_task) = sorted + .iter() + .find(|task| task.name == name && task.folder_url == folder_url) + { + // already exists + return Ok(existing_task.id); + } + + if path.contains(&(folder_url, name)) { + path.push((folder_url, name)); + return Err(TaskError::TaskDepCycle { + path: path.iter().map(|(_, s)| s.to_string()).collect(), + }); + } + + let mut dependencies: Vec = Vec::new(); + if let TaskOrScript::Task(_, task) = task_or_script { + dependencies.reserve(task.dependencies.len()); + for dep in &task.dependencies { + let mut path = path.clone(); + path.push((folder_url, name)); + dependencies.push(sort_visit(dep, sorted, path, tasks_config)?); + } + } + + let id = sorted.len(); + sorted.push(ResolvedTask { + id, + name, + folder_url, + task_or_script, + dependencies, + }); + + Ok(id) + } + + let mut sorted: Vec> = vec![]; + + for name in &pkg_task_config.matched_tasks { + sort_visit(name, &mut sorted, Vec::new(), &pkg_task_config.tasks_config)?; + } + + Ok(sorted) } fn output_task(task_name: &str, script: &str) { @@ -222,80 +646,97 @@ fn print_available_tasks( " {}", colors::red("No tasks found in configuration file") )?; - } else { - let mut seen_task_names = - HashSet::with_capacity(tasks_config.tasks_count()); - for maybe_config in [&tasks_config.member, &tasks_config.root] { - let Some(config) = maybe_config else { - continue; - }; - for (is_root, is_deno, (key, task)) in config - .deno_json - .as_ref() - .map(|config| { - let is_root = !is_cwd_root_dir - && config.folder_url - == *workspace_dir.workspace.root_dir().as_ref(); - config - .tasks - .iter() - .map(move |(k, t)| (is_root, true, (k, Cow::Borrowed(t)))) - }) - .into_iter() - .flatten() - .chain( - config - .package_json - .as_ref() - .map(|config| { - let is_root = !is_cwd_root_dir - && config.folder_url - == *workspace_dir.workspace.root_dir().as_ref(); - config.tasks.iter().map(move |(k, v)| { - (is_root, false, (k, Cow::Owned(Task::Definition(v.clone())))) - }) - }) - .into_iter() - .flatten(), - ) - { - if !seen_task_names.insert(key) { + return Ok(()); + } + + struct AvailableTaskDescription { + is_root: bool, + is_deno: bool, + name: String, + task: TaskDefinition, + } + let mut seen_task_names = HashSet::with_capacity(tasks_config.tasks_count()); + let mut task_descriptions = Vec::with_capacity(tasks_config.tasks_count()); + + for maybe_config in [&tasks_config.member, &tasks_config.root] { + let Some(config) = maybe_config else { + continue; + }; + + if let Some(config) = config.deno_json.as_ref() { + let is_root = !is_cwd_root_dir + && config.folder_url == *workspace_dir.workspace.root_dir().as_ref(); + + for (name, definition) in &config.tasks { + if !seen_task_names.insert(name) { continue; // already seen } - writeln!( - writer, - "- {}{}", - colors::cyan(key), - if is_root { - if is_deno { - format!(" {}", colors::italic_gray("(workspace)")) - } else { - format!(" {}", colors::italic_gray("(workspace package.json)")) - } - } else if is_deno { - "".to_string() - } else { - format!(" {}", colors::italic_gray("(package.json)")) - } - )?; - let definition = match task.as_ref() { - Task::Definition(definition) => definition, - Task::Commented { definition, .. } => definition, - }; - if let Task::Commented { comments, .. } = task.as_ref() { - let slash_slash = colors::italic_gray("//"); - for comment in comments { - writeln!( - writer, - " {slash_slash} {}", - colors::italic_gray(comment) - )?; - } + task_descriptions.push(AvailableTaskDescription { + is_root, + is_deno: true, + name: name.to_string(), + task: definition.clone(), + }); + } + } + + if let Some(config) = config.package_json.as_ref() { + let is_root = !is_cwd_root_dir + && config.folder_url == *workspace_dir.workspace.root_dir().as_ref(); + for (name, script) in &config.tasks { + if !seen_task_names.insert(name) { + continue; // already seen } - writeln!(writer, " {definition}")?; + + task_descriptions.push(AvailableTaskDescription { + is_root, + is_deno: false, + name: name.to_string(), + task: deno_config::deno_json::TaskDefinition { + command: script.to_string(), + dependencies: vec![], + description: None, + }, + }); } } } + for desc in task_descriptions { + writeln!( + writer, + "- {}{}", + colors::cyan(desc.name), + if desc.is_root { + if desc.is_deno { + format!(" {}", colors::italic_gray("(workspace)")) + } else { + format!(" {}", colors::italic_gray("(workspace package.json)")) + } + } else if desc.is_deno { + "".to_string() + } else { + format!(" {}", colors::italic_gray("(package.json)")) + } + )?; + if let Some(description) = &desc.task.description { + let slash_slash = colors::italic_gray("//"); + writeln!( + writer, + " {slash_slash} {}", + colors::italic_gray(description) + )?; + } + writeln!(writer, " {}", desc.task.command)?; + if !desc.task.dependencies.is_empty() { + writeln!( + writer, + " {} {}", + colors::gray("depends on:"), + colors::cyan(desc.task.dependencies.join(", ")) + )?; + } + } + Ok(()) } diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index fa849614fafab6..6357ebcae24a14 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -1357,6 +1357,7 @@ pub async fn report_tests( if let Err(err) = reporter.flush_report(&elapsed, &tests, &test_steps) { eprint!("Test reporter failed to flush: {}", err) } + #[allow(clippy::disallowed_methods)] std::process::exit(130); } } @@ -1642,6 +1643,7 @@ pub async fn run_tests_with_watch( loop { signal::ctrl_c().await.unwrap(); if !HAS_TEST_RUN_SIGINT_HANDLER.load(Ordering::Relaxed) { + #[allow(clippy::disallowed_methods)] std::process::exit(130); } } @@ -1659,6 +1661,7 @@ pub async fn run_tests_with_watch( ), move |flags, watcher_communicator, changed_paths| { let test_flags = test_flags.clone(); + watcher_communicator.show_path_changed(changed_paths.clone()); Ok(async move { let factory = CliFactory::from_flags_for_watcher( flags, diff --git a/cli/tools/upgrade.rs b/cli/tools/upgrade.rs index 77a9f72b80d40f..cb85859f7ab2bd 100644 --- a/cli/tools/upgrade.rs +++ b/cli/tools/upgrade.rs @@ -540,7 +540,7 @@ pub async fn upgrade( let Some(archive_data) = download_package(&client, download_url).await? else { log::error!("Download could not be found, aborting"); - std::process::exit(1) + deno_runtime::exit(1) }; log::info!( diff --git a/cli/tsc/99_main_compiler.js b/cli/tsc/99_main_compiler.js index 52c9134dad871c..93b9e92d899d76 100644 --- a/cli/tsc/99_main_compiler.js +++ b/cli/tsc/99_main_compiler.js @@ -121,8 +121,8 @@ delete Object.prototype.__proto__; /** @type {Map} */ const sourceFileCache = new Map(); - /** @type {Map} */ - const sourceTextCache = new Map(); + /** @type {Map} */ + const scriptSnapshotCache = new Map(); /** @type {Map} */ const sourceRefCounts = new Map(); @@ -133,9 +133,6 @@ delete Object.prototype.__proto__; /** @type {Map} */ const isNodeSourceFileCache = new Map(); - /** @type {Map} */ - const isCjsCache = new Map(); - // Maps asset specifiers to the first scope that the asset was loaded into. /** @type {Map} */ const assetScopes = new Map(); @@ -210,12 +207,13 @@ delete Object.prototype.__proto__; const mapKey = path + key; let sourceFile = documentRegistrySourceFileCache.get(mapKey); if (!sourceFile || sourceFile.version !== version) { + const isCjs = /** @type {any} */ (scriptSnapshot).isCjs; sourceFile = ts.createLanguageServiceSourceFile( fileName, scriptSnapshot, { ...getCreateSourceFileOptions(sourceFileOptions), - impliedNodeFormat: (isCjsCache.get(fileName) ?? false) + impliedNodeFormat: isCjs ? ts.ModuleKind.CommonJS : ts.ModuleKind.ESNext, // in the lsp we want to be able to show documentation @@ -320,7 +318,7 @@ delete Object.prototype.__proto__; if (lastRequestMethod != "cleanupSemanticCache") { const mapKey = path + key; documentRegistrySourceFileCache.delete(mapKey); - sourceTextCache.delete(path); + scriptSnapshotCache.delete(path); ops.op_release(path); } } else { @@ -452,6 +450,12 @@ delete Object.prototype.__proto__; // We specify the resolution mode to be CommonJS for some npm files and this // diagnostic gets generated even though we're using custom module resolution. 1452, + // Module '...' cannot be imported using this construct. The specifier only resolves to an + // ES module, which cannot be imported with 'require'. + 1471, + // TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; + // however, the referenced file is an ECMAScript module and cannot be imported with 'require'. + 1479, // TS2306: File '.../index.d.ts' is not a module. // We get this for `x-typescript-types` declaration files which don't export // anything. We prefer to treat these as modules with no exports. @@ -624,8 +628,6 @@ delete Object.prototype.__proto__; `"data" is unexpectedly null for "${specifier}".`, ); - isCjsCache.set(specifier, isCjs); - sourceFile = ts.createSourceFile( specifier, data, @@ -699,7 +701,7 @@ delete Object.prototype.__proto__; /** @type {[string, ts.Extension] | undefined} */ const resolved = ops.op_resolve( containingFilePath, - isCjsCache.get(containingFilePath) ?? false, + containingFileMode === ts.ModuleKind.CommonJS, [fileReference.fileName], )?.[0]; if (resolved) { @@ -723,7 +725,14 @@ delete Object.prototype.__proto__; } }); }, - resolveModuleNames(specifiers, base) { + resolveModuleNames( + specifiers, + base, + _reusedNames, + _redirectedReference, + _options, + containingSourceFile, + ) { if (logDebug) { debug(`host.resolveModuleNames()`); debug(` base: ${base}`); @@ -732,7 +741,7 @@ delete Object.prototype.__proto__; /** @type {Array<[string, ts.Extension] | undefined>} */ const resolved = ops.op_resolve( base, - isCjsCache.get(base) ?? false, + containingSourceFile?.impliedNodeFormat === ts.ModuleKind.CommonJS, specifiers, ); if (resolved) { @@ -814,19 +823,19 @@ delete Object.prototype.__proto__; return ts.ScriptSnapshot.fromString(sourceFile.text); } } - let sourceText = sourceTextCache.get(specifier); - if (sourceText == undefined) { + let scriptSnapshot = scriptSnapshotCache.get(specifier); + if (scriptSnapshot == undefined) { /** @type {{ data: string, version: string, isCjs: boolean }} */ const fileInfo = ops.op_load(specifier); if (!fileInfo) { return undefined; } - isCjsCache.set(specifier, fileInfo.isCjs); - sourceTextCache.set(specifier, fileInfo.data); + scriptSnapshot = ts.ScriptSnapshot.fromString(fileInfo.data); + scriptSnapshot.isCjs = fileInfo.isCjs; + scriptSnapshotCache.set(specifier, scriptSnapshot); scriptVersionCache.set(specifier, fileInfo.version); - sourceText = fileInfo.data; } - return ts.ScriptSnapshot.fromString(sourceText); + return scriptSnapshot; }, }; @@ -1238,7 +1247,7 @@ delete Object.prototype.__proto__; closed = true; } scriptVersionCache.delete(script); - sourceTextCache.delete(script); + scriptSnapshotCache.delete(script); } if (newConfigsByScope || opened || closed) { diff --git a/cli/tsc/dts/lib.deno.ns.d.ts b/cli/tsc/dts/lib.deno.ns.d.ts index 6e0e84b687477a..d9f66f11a7802d 100644 --- a/cli/tsc/dts/lib.deno.ns.d.ts +++ b/cli/tsc/dts/lib.deno.ns.d.ts @@ -2971,6 +2971,10 @@ declare namespace Deno { * field from `stat` on Mac/BSD and `ftCreationTime` on Windows. This may * not be available on all platforms. */ birthtime: Date | null; + /** The last change time of the file. This corresponds to the `ctime` + * field from `stat` on Mac/BSD and `ChangeTime` on Windows. This may + * not be available on all platforms. */ + ctime: Date | null; /** ID of the device containing the file. */ dev: number; /** Inode number. @@ -2979,8 +2983,7 @@ declare namespace Deno { ino: number | null; /** The underlying raw `st_mode` bits that contain the standard Unix * permissions for this file/directory. - * - * _Linux/Mac OS only._ */ + */ mode: number | null; /** Number of hard links pointing to this file. * @@ -4532,7 +4535,7 @@ declare namespace Deno { /** The object that is returned from a {@linkcode Deno.upgradeWebSocket} * request. * - * @category Web Sockets */ + * @category WebSockets */ export interface WebSocketUpgrade { /** The response object that represents the HTTP response to the client, * which should be used to the {@linkcode RequestEvent} `.respondWith()` for @@ -4546,7 +4549,7 @@ declare namespace Deno { /** Options which can be set when performing a * {@linkcode Deno.upgradeWebSocket} upgrade of a {@linkcode Request} * - * @category Web Sockets */ + * @category WebSockets */ export interface UpgradeWebSocketOptions { /** Sets the `.protocol` property on the client side web socket to the * value provided here, which should be one of the strings specified in the @@ -4594,7 +4597,7 @@ declare namespace Deno { * This operation does not yet consume the request or open the websocket. This * only happens once the returned response has been passed to `respondWith()`. * - * @category Web Sockets + * @category WebSockets */ export function upgradeWebSocket( request: Request, diff --git a/cli/tsc/dts/lib.deno.shared_globals.d.ts b/cli/tsc/dts/lib.deno.shared_globals.d.ts index ba872ef46e7761..96790fb6652be5 100644 --- a/cli/tsc/dts/lib.deno.shared_globals.d.ts +++ b/cli/tsc/dts/lib.deno.shared_globals.d.ts @@ -15,14 +15,14 @@ /// /// -/** @category WASM */ +/** @category Wasm */ declare namespace WebAssembly { /** * The `WebAssembly.CompileError` object indicates an error during WebAssembly decoding or validation. * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/CompileError) * - * @category WASM + * @category Wasm */ export class CompileError extends Error { /** Creates a new `WebAssembly.CompileError` object. */ @@ -36,7 +36,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global) * - * @category WASM + * @category Wasm */ export class Global { /** Creates a new `Global` object. */ @@ -59,7 +59,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance) * - * @category WASM + * @category Wasm */ export class Instance { /** Creates a new Instance object. */ @@ -79,7 +79,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/LinkError) * - * @category WASM + * @category Wasm */ export class LinkError extends Error { /** Creates a new WebAssembly.LinkError object. */ @@ -95,7 +95,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory) * - * @category WASM + * @category Wasm */ export class Memory { /** Creates a new `Memory` object. */ @@ -117,7 +117,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module) * - * @category WASM + * @category Wasm */ export class Module { /** Creates a new `Module` object. */ @@ -145,7 +145,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/RuntimeError) * - * @category WASM + * @category Wasm */ export class RuntimeError extends Error { /** Creates a new `WebAssembly.RuntimeError` object. */ @@ -160,7 +160,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table) * - * @category WASM + * @category Wasm */ export class Table { /** Creates a new `Table` object. */ @@ -182,7 +182,7 @@ declare namespace WebAssembly { /** The `GlobalDescriptor` describes the options you can pass to * `new WebAssembly.Global()`. * - * @category WASM + * @category Wasm */ export interface GlobalDescriptor { mutable?: boolean; @@ -192,7 +192,7 @@ declare namespace WebAssembly { /** The `MemoryDescriptor` describes the options you can pass to * `new WebAssembly.Memory()`. * - * @category WASM + * @category Wasm */ export interface MemoryDescriptor { initial: number; @@ -203,7 +203,7 @@ declare namespace WebAssembly { /** A `ModuleExportDescriptor` is the description of a declared export in a * `WebAssembly.Module`. * - * @category WASM + * @category Wasm */ export interface ModuleExportDescriptor { kind: ImportExportKind; @@ -213,7 +213,7 @@ declare namespace WebAssembly { /** A `ModuleImportDescriptor` is the description of a declared import in a * `WebAssembly.Module`. * - * @category WASM + * @category Wasm */ export interface ModuleImportDescriptor { kind: ImportExportKind; @@ -224,7 +224,7 @@ declare namespace WebAssembly { /** The `TableDescriptor` describes the options you can pass to * `new WebAssembly.Table()`. * - * @category WASM + * @category Wasm */ export interface TableDescriptor { element: TableKind; @@ -234,7 +234,7 @@ declare namespace WebAssembly { /** The value returned from `WebAssembly.instantiate`. * - * @category WASM + * @category Wasm */ export interface WebAssemblyInstantiatedSource { /* A `WebAssembly.Instance` object that contains all the exported WebAssembly functions. */ @@ -247,21 +247,21 @@ declare namespace WebAssembly { module: Module; } - /** @category WASM */ + /** @category Wasm */ export type ImportExportKind = "function" | "global" | "memory" | "table"; - /** @category WASM */ + /** @category Wasm */ export type TableKind = "anyfunc"; - /** @category WASM */ + /** @category Wasm */ export type ValueType = "f32" | "f64" | "i32" | "i64"; - /** @category WASM */ + /** @category Wasm */ export type ExportValue = Function | Global | Memory | Table; - /** @category WASM */ + /** @category Wasm */ export type Exports = Record; - /** @category WASM */ + /** @category Wasm */ export type ImportValue = ExportValue | number; - /** @category WASM */ + /** @category Wasm */ export type ModuleImports = Record; - /** @category WASM */ + /** @category Wasm */ export type Imports = Record; /** @@ -272,7 +272,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/compile) * - * @category WASM + * @category Wasm */ export function compile(bytes: BufferSource): Promise; @@ -284,7 +284,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming) * - * @category WASM + * @category Wasm */ export function compileStreaming( source: Response | Promise, @@ -301,7 +301,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate) * - * @category WASM + * @category Wasm */ export function instantiate( bytes: BufferSource, @@ -318,7 +318,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate) * - * @category WASM + * @category Wasm */ export function instantiate( moduleObject: Module, @@ -332,7 +332,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiateStreaming) * - * @category WASM + * @category Wasm */ export function instantiateStreaming( response: Response | PromiseLike, @@ -346,7 +346,7 @@ declare namespace WebAssembly { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/validate) * - * @category WASM + * @category Wasm */ export function validate(bytes: BufferSource): boolean; } diff --git a/cli/tsc/dts/lib.deno.unstable.d.ts b/cli/tsc/dts/lib.deno.unstable.d.ts index 973a09d92ab378..6759856e6add49 100644 --- a/cli/tsc/dts/lib.deno.unstable.d.ts +++ b/cli/tsc/dts/lib.deno.unstable.d.ts @@ -1180,6 +1180,32 @@ declare namespace Deno { ...values: unknown[] ): Displayable; + /** + * Display a JPG or PNG image. + * + * ``` + * Deno.jupyter.image("./cat.jpg"); + * Deno.jupyter.image("./dog.png"); + * ``` + * + * @category Jupyter + * @experimental + */ + export function image(path: string): Displayable; + + /** + * Display a JPG or PNG image. + * + * ``` + * const img = Deno.readFileSync("./cat.jpg"); + * Deno.jupyter.image(img); + * ``` + * + * @category Jupyter + * @experimental + */ + export function image(data: Uint8Array): Displayable; + /** * Format an object for displaying in Deno * @@ -1225,6 +1251,73 @@ declare namespace Deno { export {}; // only export exports } + /** + * **UNSTABLE**: New API, yet to be vetted. + * + * APIs for working with the OpenTelemetry observability framework. Deno can + * export traces, metrics, and logs to OpenTelemetry compatible backends via + * the OTLP protocol. + * + * Deno automatically instruments the runtime with OpenTelemetry traces and + * metrics. This data is exported via OTLP to OpenTelemetry compatible + * backends. User logs from the `console` API are exported as OpenTelemetry + * logs via OTLP. + * + * User code can also create custom traces, metrics, and logs using the + * OpenTelemetry API. This is done using the official OpenTelemetry package + * for JavaScript: + * [`npm:@opentelemetry/api`](https://opentelemetry.io/docs/languages/js/). + * Deno integrates with this package to provide trace context propagation + * between native Deno APIs (like `Deno.serve` or `fetch`) and custom user + * code. Deno also provides APIs that allow exporting custom telemetry data + * via the same OTLP channel used by the Deno runtime. This is done using the + * [`jsr:@deno/otel`](https://jsr.io/@deno/otel) package. + * + * @example Using OpenTelemetry API to create custom traces + * ```ts,ignore + * import { trace } from "npm:@opentelemetry/api@1"; + * import "jsr:@deno/otel@0.0.2/register"; + * + * const tracer = trace.getTracer("example-tracer"); + * + * async function doWork() { + * return tracer.startActiveSpan("doWork", async (span) => { + * span.setAttribute("key", "value"); + * await new Promise((resolve) => setTimeout(resolve, 1000)); + * span.end(); + * }); + * } + * + * Deno.serve(async (req) => { + * await doWork(); + * const resp = await fetch("https://example.com"); + * return resp; + * }); + * ``` + * + * @category Telemetry + * @experimental + */ + export namespace telemetry { + /** + * A SpanExporter compatible with OpenTelemetry.js + * https://open-telemetry.github.io/opentelemetry-js/interfaces/_opentelemetry_sdk_trace_base.SpanExporter.html + * @category Telemetry + * @experimental + */ + export class SpanExporter {} + + /** + * A ContextManager compatible with OpenTelemetry.js + * https://open-telemetry.github.io/opentelemetry-js/interfaces/_opentelemetry_api.ContextManager.html + * @category Telemetry + * @experimental + */ + export class ContextManager {} + + export {}; // only export exports + } + export {}; // only export exports } diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index dc7fc38f7a0172..976d407c150b4e 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -6,10 +6,10 @@ use crate::cache::FastInsecureHasher; use crate::cache::ModuleInfoCache; use crate::node; use crate::npm::CliNpmResolver; -use crate::npm::ResolvePkgFolderFromDenoReqError; use crate::resolver::CjsTracker; use crate::util::checksum; use crate::util::path::mapped_specifier_for_tsc; +use crate::worker::create_isolate_create_params; use deno_ast::MediaType; use deno_core::anyhow::anyhow; @@ -34,6 +34,7 @@ use deno_graph::GraphKind; use deno_graph::Module; use deno_graph::ModuleGraph; use deno_graph::ResolutionResolved; +use deno_resolver::npm::ResolvePkgFolderFromDenoReqError; use deno_runtime::deno_fs; use deno_runtime::deno_node::NodeResolver; use deno_semver::npm::NpmPackageReqReference; @@ -343,31 +344,36 @@ impl TypeCheckingCjsTracker { media_type: MediaType, code: &Arc, ) -> bool { - if let Some(module_kind) = - self.cjs_tracker.get_known_kind(specifier, media_type) - { - module_kind.is_cjs() - } else { - let maybe_is_script = self - .module_info_cache - .as_module_analyzer() - .analyze_sync(specifier, media_type, code) - .ok() - .map(|info| info.is_script); - maybe_is_script - .and_then(|is_script| { - self - .cjs_tracker - .is_cjs_with_known_is_script(specifier, media_type, is_script) - .ok() - }) - .unwrap_or_else(|| { - self - .cjs_tracker - .is_maybe_cjs(specifier, media_type) - .unwrap_or(false) - }) - } + let maybe_is_script = self + .module_info_cache + .as_module_analyzer() + .analyze_sync(specifier, media_type, code) + .ok() + .map(|info| info.is_script); + maybe_is_script + .and_then(|is_script| { + self + .cjs_tracker + .is_cjs_with_known_is_script(specifier, media_type, is_script) + .ok() + }) + .unwrap_or_else(|| { + self + .cjs_tracker + .is_maybe_cjs(specifier, media_type) + .unwrap_or(false) + }) + } + + pub fn is_cjs_with_known_is_script( + &self, + specifier: &ModuleSpecifier, + media_type: MediaType, + is_script: bool, + ) -> Result { + self + .cjs_tracker + .is_cjs_with_known_is_script(specifier, media_type, is_script) } } @@ -627,8 +633,12 @@ fn op_load_inner( match module { Module::Js(module) => { media_type = module.media_type; - if matches!(media_type, MediaType::Cjs | MediaType::Cts) { - is_cjs = true; + if let Some(npm_state) = &state.maybe_npm { + is_cjs = npm_state.cjs_tracker.is_cjs_with_known_is_script( + specifier, + module.media_type, + module.is_script, + )?; } let source = module .fast_check_module() @@ -640,6 +650,10 @@ fn op_load_inner( media_type = MediaType::Json; Some(Cow::Borrowed(&*module.source)) } + Module::Wasm(module) => { + media_type = MediaType::Dts; + Some(Cow::Borrowed(&*module.source_dts)) + } Module::Npm(_) | Module::Node(_) => None, Module::External(module) => { // means it's Deno code importing an npm module @@ -737,6 +751,7 @@ fn op_resolve_inner( "Error converting a string module specifier for \"op_resolve\".", )? }; + let referrer_module = state.graph.get(&referrer); for specifier in args.specifiers { if specifier.starts_with("node:") { resolved.push(( @@ -752,16 +767,19 @@ fn op_resolve_inner( continue; } - let graph = &state.graph; - let resolved_dep = graph - .get(&referrer) + let resolved_dep = referrer_module .and_then(|m| m.js()) .and_then(|m| m.dependencies_prefer_fast_check().get(&specifier)) .and_then(|d| d.maybe_type.ok().or_else(|| d.maybe_code.ok())); let maybe_result = match resolved_dep { Some(ResolutionResolved { specifier, .. }) => { - resolve_graph_specifier_types(specifier, &referrer, state)? + resolve_graph_specifier_types( + specifier, + &referrer, + referrer_kind, + state, + )? } _ => { match resolve_non_graph_specifier_types( @@ -834,6 +852,7 @@ fn op_resolve_inner( fn resolve_graph_specifier_types( specifier: &ModuleSpecifier, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, state: &State, ) -> Result, AnyError> { let graph = &state.graph; @@ -874,6 +893,9 @@ fn resolve_graph_specifier_types( Some(Module::Json(module)) => { Ok(Some((module.specifier.clone(), module.media_type))) } + Some(Module::Wasm(module)) => { + Ok(Some((module.specifier.clone(), MediaType::Dmts))) + } Some(Module::Npm(module)) => { if let Some(npm) = &state.maybe_npm.as_ref() { let package_folder = npm @@ -886,6 +908,7 @@ fn resolve_graph_specifier_types( &package_folder, module.nv_reference.sub_path(), Some(referrer), + referrer_kind, NodeResolutionMode::Types, ); let maybe_url = match res_result { @@ -965,6 +988,7 @@ fn resolve_non_graph_specifier_types( &package_folder, npm_req_ref.sub_path(), Some(referrer), + referrer_kind, NodeResolutionMode::Types, ); let maybe_url = match res_result { @@ -1088,6 +1112,7 @@ pub fn exec(request: Request) -> Result { root_map, remapped_specifiers, )], + create_params: create_isolate_create_params(), ..Default::default() }); @@ -1178,7 +1203,7 @@ mod tests { .context("Unable to get CWD") .unwrap(), ); - let mut op_state = OpState::new(None); + let mut op_state = OpState::new(None, None); op_state.put(state); op_state } diff --git a/cli/util/extract.rs b/cli/util/extract.rs index f577cbefec33ce..be68202aa1eecf 100644 --- a/cli/util/extract.rs +++ b/cli/util/extract.rs @@ -586,7 +586,10 @@ fn generate_pseudo_file( wrap_kind, })); - let source = deno_ast::swc::codegen::to_code(&transformed); + let source = deno_ast::swc::codegen::to_code_with_comments( + Some(&parsed.comments().as_single_threaded()), + &transformed, + ); log::debug!("{}:\n{}", file.specifier, source); @@ -1165,6 +1168,33 @@ Deno.test("file:///main.ts$3-6.ts", async ()=>{ media_type: MediaType::TypeScript, }], }, + // https://github.com/denoland/deno/issues/26728 + Test { + input: Input { + source: r#" +/** + * ```ts + * // @ts-expect-error: can only add numbers + * add('1', '2'); + * ``` + */ +export function add(first: number, second: number) { + return first + second; +} +"#, + specifier: "file:///main.ts", + }, + expected: vec![Expected { + source: r#"import { add } from "file:///main.ts"; +Deno.test("file:///main.ts$3-7.ts", async ()=>{ + // @ts-expect-error: can only add numbers + add('1', '2'); +}); +"#, + specifier: "file:///main.ts$3-7.ts", + media_type: MediaType::TypeScript, + }], + }, ]; for test in tests { @@ -1376,6 +1406,31 @@ console.log(Foo); media_type: MediaType::TypeScript, }], }, + // https://github.com/denoland/deno/issues/26728 + Test { + input: Input { + source: r#" +/** + * ```ts + * // @ts-expect-error: can only add numbers + * add('1', '2'); + * ``` + */ +export function add(first: number, second: number) { + return first + second; +} +"#, + specifier: "file:///main.ts", + }, + expected: vec![Expected { + source: r#"import { add } from "file:///main.ts"; +// @ts-expect-error: can only add numbers +add('1', '2'); +"#, + specifier: "file:///main.ts$3-7.ts", + media_type: MediaType::TypeScript, + }], + }, ]; for test in tests { diff --git a/cli/util/file_watcher.rs b/cli/util/file_watcher.rs index 8d734af88e97dc..b9318a6e4bd612 100644 --- a/cli/util/file_watcher.rs +++ b/cli/util/file_watcher.rs @@ -73,7 +73,6 @@ impl DebouncedReceiver { } } -#[allow(clippy::print_stderr)] async fn error_handler(watch_future: F) -> bool where F: Future>, @@ -84,7 +83,7 @@ where Some(e) => format_js_error(e), None => format!("{err:?}"), }; - eprintln!( + log::error!( "{}: {}", colors::red_bold("error"), error_string.trim_start_matches("error: ") @@ -128,19 +127,12 @@ impl PrintConfig { } } -fn create_print_after_restart_fn( - banner: &'static str, - clear_screen: bool, -) -> impl Fn() { +fn create_print_after_restart_fn(clear_screen: bool) -> impl Fn() { move || { #[allow(clippy::print_stderr)] if clear_screen && std::io::stderr().is_terminal() { eprint!("{}", CLEAR_SCREEN); } - info!( - "{} File change detected! Restarting!", - colors::intense_blue(banner), - ); } } @@ -188,7 +180,17 @@ impl WatcherCommunicator { } pub fn print(&self, msg: String) { - log::info!("{} {}", self.banner, msg); + log::info!("{} {}", self.banner, colors::gray(msg)); + } + + pub fn show_path_changed(&self, changed_paths: Option>) { + if let Some(paths) = changed_paths { + if !paths.is_empty() { + self.print(format!("Restarting! File change detected: {:?}", paths[0])) + } else { + self.print("Restarting! File change detected.".to_string()) + } + } } } @@ -264,7 +266,7 @@ where clear_screen, } = print_config; - let print_after_restart = create_print_after_restart_fn(banner, clear_screen); + let print_after_restart = create_print_after_restart_fn(clear_screen); let watcher_communicator = Arc::new(WatcherCommunicator { paths_to_watch_tx: paths_to_watch_tx.clone(), changed_paths_rx: changed_paths_rx.resubscribe(), diff --git a/cli/util/logger.rs b/cli/util/logger.rs index d93753dfd30391..f76663df2ce606 100644 --- a/cli/util/logger.rs +++ b/cli/util/logger.rs @@ -29,6 +29,7 @@ impl log::Log for CliLogger { // thread's state DrawThread::hide(); self.0.log(record); + deno_runtime::ops::otel::handle_log(record); DrawThread::show(); } } diff --git a/cli/util/path.rs b/cli/util/path.rs index 58bed664f9ba98..173f357c087f42 100644 --- a/cli/util/path.rs +++ b/cli/util/path.rs @@ -27,7 +27,16 @@ pub fn is_importable_ext(path: &Path) -> bool { if let Some(ext) = get_extension(path) { matches!( ext.as_str(), - "ts" | "tsx" | "js" | "jsx" | "mjs" | "mts" | "cjs" | "cts" | "json" + "ts" + | "tsx" + | "js" + | "jsx" + | "mjs" + | "mts" + | "cjs" + | "cts" + | "json" + | "wasm" ) } else { false @@ -222,6 +231,7 @@ mod test { assert!(is_script_ext(Path::new("foo.cjs"))); assert!(is_script_ext(Path::new("foo.cts"))); assert!(!is_script_ext(Path::new("foo.json"))); + assert!(!is_script_ext(Path::new("foo.wasm"))); assert!(!is_script_ext(Path::new("foo.mjsx"))); } @@ -243,6 +253,7 @@ mod test { assert!(is_importable_ext(Path::new("foo.cjs"))); assert!(is_importable_ext(Path::new("foo.cts"))); assert!(is_importable_ext(Path::new("foo.json"))); + assert!(is_importable_ext(Path::new("foo.wasm"))); assert!(!is_importable_ext(Path::new("foo.mjsx"))); } diff --git a/cli/util/v8.rs b/cli/util/v8.rs index fb16e67b77c203..6e690e6f30d9a3 100644 --- a/cli/util/v8.rs +++ b/cli/util/v8.rs @@ -46,15 +46,14 @@ pub fn init_v8_flags( .skip(1) .collect::>(); - #[allow(clippy::print_stderr)] if !unrecognized_v8_flags.is_empty() { for f in unrecognized_v8_flags { - eprintln!("error: V8 did not recognize flag '{f}'"); + log::error!("error: V8 did not recognize flag '{f}'"); } - eprintln!("\nFor a list of V8 flags, use '--v8-flags=--help'"); - std::process::exit(1); + log::error!("\nFor a list of V8 flags, use '--v8-flags=--help'"); + deno_runtime::exit(1); } if v8_flags_includes_help { - std::process::exit(0); + deno_runtime::exit(0); } } diff --git a/cli/worker.rs b/cli/worker.rs index baacd681a16764..5761571c5c0e56 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -30,6 +30,7 @@ use deno_runtime::deno_tls::RootCertStoreProvider; use deno_runtime::deno_web::BlobStore; use deno_runtime::fmt_errors::format_js_error; use deno_runtime::inspector_server::InspectorServer; +use deno_runtime::ops::otel::OtelConfig; use deno_runtime::ops::process::NpmProcessStateProviderRc; use deno_runtime::ops::worker_host::CreateWebWorkerCb; use deno_runtime::web_worker::WebWorker; @@ -43,6 +44,7 @@ use deno_runtime::WorkerExecutionMode; use deno_runtime::WorkerLogLevel; use deno_semver::npm::NpmPackageReqReference; use deno_terminal::colors; +use node_resolver::NodeModuleKind; use node_resolver::NodeResolutionMode; use tokio::select; @@ -81,6 +83,15 @@ pub trait HmrRunner: Send + Sync { async fn run(&mut self) -> Result<(), AnyError>; } +pub trait CliCodeCache: code_cache::CodeCache { + /// Gets if the code cache is still enabled. + fn enabled(&self) -> bool { + true + } + + fn as_code_cache(self: Arc) -> Arc; +} + #[async_trait::async_trait(?Send)] pub trait CoverageCollector: Send + Sync { async fn start_collecting(&mut self) -> Result<(), AnyError>; @@ -125,7 +136,7 @@ pub struct CliMainWorkerOptions { struct SharedWorkerState { blob_store: Arc, broadcast_channel: InMemoryBroadcastChannel, - code_cache: Option>, + code_cache: Option>, compiled_wasm_module_store: CompiledWasmModuleStore, feature_checker: Arc, fs: Arc, @@ -142,6 +153,7 @@ struct SharedWorkerState { storage_key_resolver: StorageKeyResolver, options: CliMainWorkerOptions, subcommand: DenoSubcommand, + otel_config: Option, // `None` means OpenTelemetry is disabled. } impl SharedWorkerState { @@ -152,7 +164,7 @@ impl SharedWorkerState { NodeExtInitServices { node_require_loader, node_resolver: self.node_resolver.clone(), - npm_resolver: self.npm_resolver.clone().into_npm_resolver(), + npm_resolver: self.npm_resolver.clone().into_npm_pkg_folder_resolver(), pkg_json_resolver: self.pkg_json_resolver.clone(), } } @@ -381,6 +393,13 @@ impl CliMainWorker { } } +// TODO(bartlomieju): this should be moved to some other place, added to avoid string +// duplication between worker setups and `deno info` output. +pub fn get_cache_storage_dir() -> PathBuf { + // Note: we currently use temp_dir() to avoid managing storage size. + std::env::temp_dir().join("deno_cache") +} + #[derive(Clone)] pub struct CliMainWorkerFactory { shared: Arc, @@ -390,7 +409,7 @@ impl CliMainWorkerFactory { #[allow(clippy::too_many_arguments)] pub fn new( blob_store: Arc, - code_cache: Option>, + code_cache: Option>, feature_checker: Arc, fs: Arc, maybe_file_watcher_communicator: Option>, @@ -405,6 +424,7 @@ impl CliMainWorkerFactory { storage_key_resolver: StorageKeyResolver, subcommand: DenoSubcommand, options: CliMainWorkerOptions, + otel_config: Option, ) -> Self { Self { shared: Arc::new(SharedWorkerState { @@ -427,6 +447,7 @@ impl CliMainWorkerFactory { storage_key_resolver, options, subcommand, + otel_config, }), } } @@ -515,10 +536,7 @@ impl CliMainWorkerFactory { }); let cache_storage_dir = maybe_storage_key.map(|key| { // TODO(@satyarohith): storage quota management - // Note: we currently use temp_dir() to avoid managing storage size. - std::env::temp_dir() - .join("deno_cache") - .join(checksum::gen(&[key.as_bytes()])) + get_cache_storage_dir().join(checksum::gen(&[key.as_bytes()])) }); // TODO(bartlomieju): this is cruft, update FeatureChecker to spit out @@ -542,14 +560,16 @@ impl CliMainWorkerFactory { npm_process_state_provider: Some(shared.npm_process_state_provider()), blob_store: shared.blob_store.clone(), broadcast_channel: shared.broadcast_channel.clone(), + fetch_dns_resolver: Default::default(), shared_array_buffer_store: Some(shared.shared_array_buffer_store.clone()), compiled_wasm_module_store: Some( shared.compiled_wasm_module_store.clone(), ), feature_checker, permissions, - v8_code_cache: shared.code_cache.clone(), + v8_code_cache: shared.code_cache.clone().map(|c| c.as_code_cache()), }; + let options = WorkerOptions { bootstrap: BootstrapOptions { deno_version: crate::version::DENO_VERSION_INFO.deno.to_string(), @@ -576,10 +596,11 @@ impl CliMainWorkerFactory { mode, serve_port: shared.options.serve_port, serve_host: shared.options.serve_host.clone(), + otel_config: shared.otel_config.clone(), }, extensions: custom_extensions, startup_snapshot: crate::js::deno_isolate_init(), - create_params: None, + create_params: create_isolate_create_params(), unsafely_ignore_certificate_errors: shared .options .unsafely_ignore_certificate_errors @@ -596,6 +617,8 @@ impl CliMainWorkerFactory { origin_storage_dir, stdio, skip_op_registration: shared.options.skip_op_registration, + enable_stack_trace_arg_in_ops: crate::args::has_trace_permissions_enabled( + ), }; let mut worker = MainWorker::bootstrap_from_options( @@ -675,6 +698,7 @@ impl CliMainWorkerFactory { package_folder, sub_path, /* referrer */ None, + NodeModuleKind::Esm, NodeResolutionMode::Execution, )?; if specifier @@ -711,10 +735,7 @@ fn create_web_worker_callback( .resolve_storage_key(&args.main_module); let cache_storage_dir = maybe_storage_key.map(|key| { // TODO(@satyarohith): storage quota management - // Note: we currently use temp_dir() to avoid managing storage size. - std::env::temp_dir() - .join("deno_cache") - .join(checksum::gen(&[key.as_bytes()])) + get_cache_storage_dir().join(checksum::gen(&[key.as_bytes()])) }); // TODO(bartlomieju): this is cruft, update FeatureChecker to spit out @@ -775,9 +796,11 @@ fn create_web_worker_callback( mode: WorkerExecutionMode::Worker, serve_port: shared.options.serve_port, serve_host: shared.options.serve_host.clone(), + otel_config: shared.otel_config.clone(), }, extensions: vec![], startup_snapshot: crate::js::deno_isolate_init(), + create_params: create_isolate_create_params(), unsafely_ignore_certificate_errors: shared .options .unsafely_ignore_certificate_errors @@ -792,12 +815,25 @@ fn create_web_worker_callback( strace_ops: shared.options.strace_ops.clone(), close_on_idle: args.close_on_idle, maybe_worker_metadata: args.maybe_worker_metadata, + enable_stack_trace_arg_in_ops: crate::args::has_trace_permissions_enabled( + ), }; WebWorker::bootstrap_from_options(services, options) }) } +/// By default V8 uses 1.4Gb heap limit which is meant for browser tabs. +/// Instead probe for the total memory on the system and use it instead +/// as a default. +pub fn create_isolate_create_params() -> Option { + let maybe_mem_info = deno_runtime::sys_info::mem_info(); + maybe_mem_info.map(|mem_info| { + v8::CreateParams::default() + .heap_limits_from_system_memory(mem_info.total, 0) + }) +} + #[allow(clippy::print_stdout)] #[allow(clippy::print_stderr)] #[cfg(test)] @@ -834,6 +870,7 @@ mod tests { node_services: Default::default(), npm_process_state_provider: Default::default(), root_cert_store_provider: Default::default(), + fetch_dns_resolver: Default::default(), shared_array_buffer_store: Default::default(), compiled_wasm_module_store: Default::default(), v8_code_cache: Default::default(), diff --git a/ext/broadcast_channel/Cargo.toml b/ext/broadcast_channel/Cargo.toml index 90ac0383579759..0933c5001cbc91 100644 --- a/ext/broadcast_channel/Cargo.toml +++ b/ext/broadcast_channel/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_broadcast_channel" -version = "0.171.0" +version = "0.173.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -16,6 +16,7 @@ path = "lib.rs" [dependencies] async-trait.workspace = true deno_core.workspace = true +deno_error.workspace = true thiserror.workspace = true tokio.workspace = true uuid.workspace = true diff --git a/ext/broadcast_channel/lib.rs b/ext/broadcast_channel/lib.rs index ee71ece9fe440d..8b8e3387965b2d 100644 --- a/ext/broadcast_channel/lib.rs +++ b/ext/broadcast_channel/lib.rs @@ -21,15 +21,15 @@ use tokio::sync::mpsc::error::SendError as MpscSendError; pub const UNSTABLE_FEATURE_NAME: &str = "broadcast-channel"; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum BroadcastChannelError { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] deno_core::error::ResourceError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] MPSCSendError(MpscSendError>), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] BroadcastSendError( BroadcastSendError>, diff --git a/ext/cache/Cargo.toml b/ext/cache/Cargo.toml index 56fa0a527f3eab..a0c5ade8f64264 100644 --- a/ext/cache/Cargo.toml +++ b/ext/cache/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_cache" -version = "0.109.0" +version = "0.111.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -16,6 +16,7 @@ path = "lib.rs" [dependencies] async-trait.workspace = true deno_core.workspace = true +deno_error.workspace = true rusqlite.workspace = true serde.workspace = true sha2.workspace = true diff --git a/ext/cache/lib.rs b/ext/cache/lib.rs index f109dad0c08d78..ee2057cebde36d 100644 --- a/ext/cache/lib.rs +++ b/ext/cache/lib.rs @@ -18,15 +18,15 @@ use deno_core::ResourceId; mod sqlite; pub use sqlite::SqliteBackedCache; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CacheError { - #[class(TYPE)] + #[class(type)] #[error("CacheStorage is not available in this context")] ContextUnsupported, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Sqlite(#[from] rusqlite::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] JoinError(#[from] tokio::task::JoinError), #[class(inherit)] diff --git a/ext/canvas/Cargo.toml b/ext/canvas/Cargo.toml index 4231d7c84d4802..df4f5c094a30ee 100644 --- a/ext/canvas/Cargo.toml +++ b/ext/canvas/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_canvas" -version = "0.46.0" +version = "0.48.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -15,6 +15,7 @@ path = "lib.rs" [dependencies] deno_core.workspace = true +deno_error.workspace = true deno_webgpu.workspace = true image = { version = "0.24.7", default-features = false, features = ["png"] } serde = { workspace = true, features = ["derive"] } diff --git a/ext/canvas/lib.rs b/ext/canvas/lib.rs index b84799cea35773..ec454f496190dc 100644 --- a/ext/canvas/lib.rs +++ b/ext/canvas/lib.rs @@ -11,12 +11,12 @@ use serde::Deserialize; use serde::Serialize; use std::path::PathBuf; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CanvasError { - #[class(TYPE)] + #[class(type)] #[error("Color type '{0:?}' not supported")] UnsupportedColorType(ColorType), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Image(#[from] image::ImageError), } diff --git a/ext/console/Cargo.toml b/ext/console/Cargo.toml index 80f1cca84d8cb6..1d76390b6e02d4 100644 --- a/ext/console/Cargo.toml +++ b/ext/console/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_console" -version = "0.177.0" +version = "0.179.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/console/internal.d.ts b/ext/console/internal.d.ts index 45af616d673b45..5f9627cf56ef41 100644 --- a/ext/console/internal.d.ts +++ b/ext/console/internal.d.ts @@ -9,4 +9,7 @@ declare module "ext:deno_console/01_console.js" { keys: (keyof TObject)[]; evaluate: boolean; }): Record; + + class Console { + } } diff --git a/ext/cron/Cargo.toml b/ext/cron/Cargo.toml index 966ccdc958316c..a671dcf6f3ec36 100644 --- a/ext/cron/Cargo.toml +++ b/ext/cron/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_cron" -version = "0.57.0" +version = "0.59.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -18,6 +18,7 @@ anyhow.workspace = true async-trait.workspace = true chrono = { workspace = true, features = ["now"] } deno_core.workspace = true +deno_error.workspace = true saffron.workspace = true thiserror.workspace = true tokio.workspace = true diff --git a/ext/cron/lib.rs b/ext/cron/lib.rs index 1f2c450b626ae2..f2acd0fe04db27 100644 --- a/ext/cron/lib.rs +++ b/ext/cron/lib.rs @@ -45,30 +45,30 @@ impl Resource for CronResource { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CronError { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] deno_core::error::ResourceError), - #[class(TYPE)] + #[class(type)] #[error("Cron name cannot exceed 64 characters: current length {0}")] NameExceeded(usize), - #[class(TYPE)] + #[class(type)] #[error("Invalid cron name: only alphanumeric characters, whitespace, hyphens, and underscores are allowed")] NameInvalid, - #[class(TYPE)] + #[class(type)] #[error("Cron with this name already exists")] AlreadyExists, - #[class(TYPE)] + #[class(type)] #[error("Too many crons")] TooManyCrons, - #[class(TYPE)] + #[class(type)] #[error("Invalid cron schedule")] InvalidCron, - #[class(TYPE)] + #[class(type)] #[error("Invalid backoff schedule")] InvalidBackoff, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] AcquireError(#[from] tokio::sync::AcquireError), #[class(inherit)] diff --git a/ext/crypto/Cargo.toml b/ext/crypto/Cargo.toml index a5794dc68b447b..e2797fbe350b97 100644 --- a/ext/crypto/Cargo.toml +++ b/ext/crypto/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_crypto" -version = "0.191.0" +version = "0.193.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -23,6 +23,7 @@ const-oid = "0.9.0" ctr = "0.9.1" curve25519-dalek = "4.1.3" deno_core.workspace = true +deno_error.workspace = true deno_web.workspace = true ed448-goldilocks = { version = "0.8.3", features = ["zeroize"] } elliptic-curve = { version = "0.13.1", features = ["std", "pem"] } diff --git a/ext/crypto/decrypt.rs b/ext/crypto/decrypt.rs index 3aadb8cf604049..c4c80c5e07c1a3 100644 --- a/ext/crypto/decrypt.rs +++ b/ext/crypto/decrypt.rs @@ -70,24 +70,24 @@ pub enum DecryptAlgorithm { }, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum DecryptError { #[class(inherit)] #[error(transparent)] General(#[from] #[inherit] SharedError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Pkcs1(#[from] rsa::pkcs1::Error), #[class("DOMExceptionOperationError")] #[error("Decryption failed")] Failed, - #[class(TYPE)] + #[class(type)] #[error("invalid length")] InvalidLength, - #[class(TYPE)] + #[class(type)] #[error("invalid counter length. Currently supported 32/64/128 bits")] InvalidCounterLength, - #[class(TYPE)] + #[class(type)] #[error("tag length not equal to 128")] InvalidTagLength, #[class("DOMExceptionOperationError")] @@ -96,7 +96,7 @@ pub enum DecryptError { #[class("DOMExceptionOperationError")] #[error("tried to decrypt too much data")] TooMuchData, - #[class(TYPE)] + #[class(type)] #[error("iv length not equal to 12 or 16")] InvalidIvLength, #[class("DOMExceptionOperationError")] diff --git a/ext/crypto/ed25519.rs b/ext/crypto/ed25519.rs index 8a58e8f85ce6fe..04c30004d4305d 100644 --- a/ext/crypto/ed25519.rs +++ b/ext/crypto/ed25519.rs @@ -13,15 +13,15 @@ use spki::der::asn1::BitString; use spki::der::Decode; use spki::der::Encode; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum Ed25519Error { #[class("DOMExceptionOperationError")] #[error("Failed to export key")] FailedExport, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Der(#[from] rsa::pkcs1::der::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] KeyRejected(#[from] ring::error::KeyRejected), } diff --git a/ext/crypto/encrypt.rs b/ext/crypto/encrypt.rs index fa56fbafd0b28a..3aa8aa70930d1e 100644 --- a/ext/crypto/encrypt.rs +++ b/ext/crypto/encrypt.rs @@ -71,21 +71,21 @@ pub enum EncryptAlgorithm { }, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum EncryptError { #[class(inherit)] #[error(transparent)] General(#[from] #[inherit] SharedError), - #[class(TYPE)] + #[class(type)] #[error("invalid length")] InvalidLength, #[class("DOMExceptionOperationError")] #[error("invalid key or iv")] InvalidKeyOrIv, - #[class(TYPE)] + #[class(type)] #[error("iv length not equal to 12 or 16")] InvalidIvLength, - #[class(TYPE)] + #[class(type)] #[error("invalid counter length. Currently supported 32/64/128 bits")] InvalidCounterLength, #[class("DOMExceptionOperationError")] diff --git a/ext/crypto/export_key.rs b/ext/crypto/export_key.rs index 4389bef9ca71ae..d0c8d5d6e780a9 100644 --- a/ext/crypto/export_key.rs +++ b/ext/crypto/export_key.rs @@ -20,12 +20,12 @@ use spki::AlgorithmIdentifierOwned; use crate::shared::*; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ExportKeyError { #[class(inherit)] #[error(transparent)] General(#[from] #[inherit] SharedError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Der(#[from] spki::der::Error), #[class("DOMExceptionNotSupportedError")] diff --git a/ext/crypto/generate_key.rs b/ext/crypto/generate_key.rs index 7c0682c855ac77..9471776629c041 100644 --- a/ext/crypto/generate_key.rs +++ b/ext/crypto/generate_key.rs @@ -15,7 +15,7 @@ use serde::Deserialize; use crate::shared::*; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] #[class("DOMExceptionOperationError")] pub enum GenerateKeyError { #[class(inherit)] diff --git a/ext/crypto/import_key.rs b/ext/crypto/import_key.rs index e9aa6baaf130db..a534e0522ca2c2 100644 --- a/ext/crypto/import_key.rs +++ b/ext/crypto/import_key.rs @@ -14,7 +14,7 @@ use spki::der::Decode; use crate::shared::*; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] #[class("DOMExceptionDataError")] pub enum ImportKeyError { #[class(inherit)] diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index 42b2b54de87725..a0e011a6662494 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -132,7 +132,7 @@ deno_core::extension!(deno_crypto, }, ); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CryptoError { #[class(inherit)] #[error(transparent)] @@ -140,58 +140,58 @@ pub enum CryptoError { #[class(inherit)] #[error(transparent)] JoinError(#[from] #[inherit] tokio::task::JoinError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Der(#[from] rsa::pkcs1::der::Error), - #[class(TYPE)] + #[class(type)] #[error("Missing argument hash")] MissingArgumentHash, - #[class(TYPE)] + #[class(type)] #[error("Missing argument saltLength")] MissingArgumentSaltLength, - #[class(TYPE)] + #[class(type)] #[error("unsupported algorithm")] UnsupportedAlgorithm, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] KeyRejected(#[from] ring::error::KeyRejected), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] RSA(#[from] rsa::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Pkcs1(#[from] rsa::pkcs1::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Unspecified(#[from] ring::error::Unspecified), - #[class(TYPE)] + #[class(type)] #[error("Invalid key format")] InvalidKeyFormat, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] P256Ecdsa(#[from] p256::ecdsa::Error), - #[class(TYPE)] + #[class(type)] #[error("Unexpected error decoding private key")] DecodePrivateKey, - #[class(TYPE)] + #[class(type)] #[error("Missing argument publicKey")] MissingArgumentPublicKey, - #[class(TYPE)] + #[class(type)] #[error("Missing argument namedCurve")] MissingArgumentNamedCurve, - #[class(TYPE)] + #[class(type)] #[error("Missing argument info")] MissingArgumentInfo, #[class("DOMExceptionOperationError")] #[error("The length provided for HKDF is too large")] HKDFLengthTooLarge, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Base64Decode(#[from] base64::DecodeError), - #[class(TYPE)] + #[class(type)] #[error("Data must be multiple of 8 bytes")] DataInvalidSize, - #[class(TYPE)] + #[class(type)] #[error("Invalid key length")] InvalidKeyLength, #[class("DOMExceptionOperationError")] diff --git a/ext/crypto/shared.rs b/ext/crypto/shared.rs index 61b400f5982819..c7bfb592608f18 100644 --- a/ext/crypto/shared.rs +++ b/ext/crypto/shared.rs @@ -60,27 +60,27 @@ pub enum RustRawKeyData { Public(ToJsBuffer), } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum SharedError { - #[class(TYPE)] + #[class(type)] #[error("expected valid private key")] ExpectedValidPrivateKey, - #[class(TYPE)] + #[class(type)] #[error("expected valid public key")] ExpectedValidPublicKey, - #[class(TYPE)] + #[class(type)] #[error("expected valid private EC key")] ExpectedValidPrivateECKey, - #[class(TYPE)] + #[class(type)] #[error("expected valid public EC key")] ExpectedValidPublicECKey, - #[class(TYPE)] + #[class(type)] #[error("expected private key")] ExpectedPrivateKey, - #[class(TYPE)] + #[class(type)] #[error("expected public key")] ExpectedPublicKey, - #[class(TYPE)] + #[class(type)] #[error("expected secret key")] ExpectedSecretKey, #[class("DOMExceptionOperationError")] diff --git a/ext/crypto/x25519.rs b/ext/crypto/x25519.rs index 3c8f4249f4e5b4..283978e0264ed7 100644 --- a/ext/crypto/x25519.rs +++ b/ext/crypto/x25519.rs @@ -11,12 +11,12 @@ use spki::der::asn1::BitString; use spki::der::Decode; use spki::der::Encode; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum X25519Error { #[class("DOMExceptionOperationError")] #[error("Failed to export key")] FailedExport, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Der(#[from] spki::der::Error), } diff --git a/ext/crypto/x448.rs b/ext/crypto/x448.rs index 764ad8acec1c29..282e318cbbc54a 100644 --- a/ext/crypto/x448.rs +++ b/ext/crypto/x448.rs @@ -12,12 +12,12 @@ use spki::der::asn1::BitString; use spki::der::Decode; use spki::der::Encode; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum X448Error { #[class("DOMExceptionOperationError")] #[error("Failed to export key")] FailedExport, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Der(#[from] spki::der::Error), } diff --git a/ext/fetch/22_body.js b/ext/fetch/22_body.js index 61a06b4afddffd..c7e977c0b434c6 100644 --- a/ext/fetch/22_body.js +++ b/ext/fetch/22_body.js @@ -15,6 +15,7 @@ import { core, primordials } from "ext:core/mod.js"; const { isAnyArrayBuffer, isArrayBuffer, + isStringObject, } = core; const { ArrayBufferIsView, @@ -466,6 +467,8 @@ function extractBody(object) { if (object.locked || isReadableStreamDisturbed(object)) { throw new TypeError("ReadableStream is locked or disturbed"); } + } else if (object[webidl.AsyncIterable] === webidl.AsyncIterable) { + stream = ReadableStream.from(object.open()); } if (typeof source === "string") { // WARNING: this deviates from spec (expects length to be set) @@ -483,6 +486,9 @@ function extractBody(object) { return { body, contentType }; } +webidl.converters["async iterable"] = webidl + .createAsyncIterableConverter(webidl.converters.Uint8Array); + webidl.converters["BodyInit_DOMString"] = (V, prefix, context, opts) => { // Union for (ReadableStream or Blob or ArrayBufferView or ArrayBuffer or FormData or URLSearchParams or USVString) if (ObjectPrototypeIsPrototypeOf(ReadableStreamPrototype, V)) { @@ -501,6 +507,14 @@ webidl.converters["BodyInit_DOMString"] = (V, prefix, context, opts) => { if (ArrayBufferIsView(V)) { return webidl.converters["ArrayBufferView"](V, prefix, context, opts); } + if (webidl.isAsyncIterable(V) && !isStringObject(V)) { + return webidl.converters["async iterable"]( + V, + prefix, + context, + opts, + ); + } } // BodyInit conversion is passed to extractBody(), which calls core.encode(). // core.encode() will UTF-8 encode strings with replacement, being equivalent to the USV normalization. diff --git a/ext/fetch/Cargo.toml b/ext/fetch/Cargo.toml index 56d416bbb81b8d..b4ba5bf209910f 100644 --- a/ext/fetch/Cargo.toml +++ b/ext/fetch/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_fetch" -version = "0.201.0" +version = "0.203.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -18,10 +18,12 @@ base64.workspace = true bytes.workspace = true data-url.workspace = true deno_core.workspace = true +deno_error.workspace = true deno_permissions.workspace = true deno_tls.workspace = true dyn-clone = "1" error_reporter = "1" +hickory-resolver.workspace = true http.workspace = true http-body-util.workspace = true hyper.workspace = true diff --git a/ext/fetch/dns.rs b/ext/fetch/dns.rs new file mode 100644 index 00000000000000..9e21a4c3422927 --- /dev/null +++ b/ext/fetch/dns.rs @@ -0,0 +1,116 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use std::future::Future; +use std::io; +use std::net::SocketAddr; +use std::pin::Pin; +use std::task::Poll; +use std::task::{self}; +use std::vec; + +use hickory_resolver::error::ResolveError; +use hickory_resolver::name_server::GenericConnector; +use hickory_resolver::name_server::TokioRuntimeProvider; +use hickory_resolver::AsyncResolver; +use hyper_util::client::legacy::connect::dns::GaiResolver; +use hyper_util::client::legacy::connect::dns::Name; +use tokio::task::JoinHandle; +use tower::Service; + +#[derive(Clone, Debug)] +pub enum Resolver { + /// A resolver using blocking `getaddrinfo` calls in a threadpool. + Gai(GaiResolver), + /// hickory-resolver's userspace resolver. + Hickory(AsyncResolver>), +} + +impl Default for Resolver { + fn default() -> Self { + Self::gai() + } +} + +impl Resolver { + pub fn gai() -> Self { + Self::Gai(GaiResolver::new()) + } + + /// Create a [`AsyncResolver`] from system conf. + pub fn hickory() -> Result { + Ok(Self::Hickory( + hickory_resolver::AsyncResolver::tokio_from_system_conf()?, + )) + } + + pub fn hickory_from_async_resolver( + resolver: AsyncResolver>, + ) -> Self { + Self::Hickory(resolver) + } +} + +type SocketAddrs = vec::IntoIter; + +pub struct ResolveFut { + inner: JoinHandle>, +} + +impl Future for ResolveFut { + type Output = Result; + + fn poll( + mut self: Pin<&mut Self>, + cx: &mut task::Context<'_>, + ) -> Poll { + Pin::new(&mut self.inner).poll(cx).map(|res| match res { + Ok(Ok(addrs)) => Ok(addrs), + Ok(Err(e)) => Err(e), + Err(join_err) => { + if join_err.is_cancelled() { + Err(io::Error::new(io::ErrorKind::Interrupted, join_err)) + } else { + Err(io::Error::new(io::ErrorKind::Other, join_err)) + } + } + }) + } +} + +impl Service for Resolver { + type Response = SocketAddrs; + type Error = io::Error; + type Future = ResolveFut; + + fn poll_ready( + &mut self, + _cx: &mut task::Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + + fn call(&mut self, name: Name) -> Self::Future { + let task = match self { + Resolver::Gai(gai_resolver) => { + let mut resolver = gai_resolver.clone(); + tokio::spawn(async move { + let result = resolver.call(name).await?; + let x: Vec<_> = result.into_iter().collect(); + let iter: SocketAddrs = x.into_iter(); + Ok(iter) + }) + } + Resolver::Hickory(async_resolver) => { + let resolver = async_resolver.clone(); + tokio::spawn(async move { + let result = resolver.lookup_ip(name.as_str()).await?; + + let x: Vec<_> = + result.into_iter().map(|x| SocketAddr::new(x, 0)).collect(); + let iter: SocketAddrs = x.into_iter(); + Ok(iter) + }) + } + }; + ResolveFut { inner: task } + } +} diff --git a/ext/fetch/lib.deno_fetch.d.ts b/ext/fetch/lib.deno_fetch.d.ts index d219a38592f5d6..8614dec899da6b 100644 --- a/ext/fetch/lib.deno_fetch.d.ts +++ b/ext/fetch/lib.deno_fetch.d.ts @@ -163,6 +163,8 @@ type BodyInit = | FormData | URLSearchParams | ReadableStream + | Iterable + | AsyncIterable | string; /** @category Fetch */ type RequestDestination = diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index 0577c6347df5f3..0774e7a3d7f216 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +pub mod dns; mod fs_fetch_handler; mod proxy; #[cfg(test)] @@ -67,6 +68,7 @@ use http_body_util::BodyExt; use hyper::body::Frame; use hyper_util::client::legacy::connect::HttpConnector; use hyper_util::client::legacy::connect::HttpInfo; +use hyper_util::client::legacy::Builder as HyperClientBuilder; use hyper_util::rt::TokioExecutor; use hyper_util::rt::TokioTimer; use serde::Deserialize; @@ -85,6 +87,16 @@ pub struct Options { pub user_agent: String, pub root_cert_store_provider: Option>, pub proxy: Option, + /// A callback to customize HTTP client configuration. + /// + /// The settings applied with this hook may be overridden by the options + /// provided through `Deno.createHttpClient()` API. For instance, if the hook + /// calls [`hyper_util::client::legacy::Builder::pool_max_idle_per_host`] with + /// a value of 99, and a user calls `Deno.createHttpClient({ poolMaxIdlePerHost: 42 })`, + /// the value that will take effect is 42. + /// + /// For more info on what can be configured, see [`hyper_util::client::legacy::Builder`]. + pub client_builder_hook: Option HyperClientBuilder>, #[allow(clippy::type_complexity)] pub request_builder_hook: Option< fn(&mut http::Request) -> Result<(), JsNativeError>, @@ -92,6 +104,7 @@ pub struct Options { pub unsafely_ignore_certificate_errors: Option>, pub client_cert_chain_and_key: TlsKeys, pub file_fetch_handler: Rc, + pub resolver: dns::Resolver, } impl Options { @@ -111,10 +124,12 @@ impl Default for Options { user_agent: "".to_string(), root_cert_store_provider: None, proxy: None, + client_builder_hook: None, request_builder_hook: None, unsafely_ignore_certificate_errors: None, client_cert_chain_and_key: TlsKeys::Null, file_fetch_handler: Rc::new(DefaultFileFetchHandler), + resolver: dns::Resolver::default(), } } } @@ -146,7 +161,7 @@ deno_core::extension!(deno_fetch, }, ); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum FetchError { #[class(inherit)] #[error(transparent)] @@ -154,37 +169,37 @@ pub enum FetchError { #[class(inherit)] #[error(transparent)] Permission(#[from] #[inherit] PermissionCheckError), - #[class(TYPE)] + #[class(type)] #[error("NetworkError when attempting to fetch resource")] NetworkError, - #[class(TYPE)] + #[class(type)] #[error("Fetching files only supports the GET method: received {0}")] FsNotGet(Method), - #[class(TYPE)] + #[class(type)] #[error("Invalid URL {0}")] InvalidUrl(Url), - #[class(TYPE)] + #[class(type)] #[error(transparent)] InvalidHeaderName(#[from] http::header::InvalidHeaderName), - #[class(TYPE)] + #[class(type)] #[error(transparent)] InvalidHeaderValue(#[from] http::header::InvalidHeaderValue), - #[class(TYPE)] + #[class(type)] #[error("{0:?}")] DataUrl(data_url::DataUrlError), - #[class(TYPE)] + #[class(type)] #[error("{0:?}")] Base64(data_url::forgiving_base64::InvalidBase64), - #[class(TYPE)] + #[class(type)] #[error("Blob for the given URL not found.")] BlobNotFound, - #[class(TYPE)] + #[class(type)] #[error("Url scheme '{0}' not supported")] SchemeNotSupported(String), - #[class(TYPE)] + #[class(type)] #[error("Request was cancelled")] RequestCanceled, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Http(#[from] http::Error), #[class(inherit)] @@ -193,10 +208,10 @@ pub enum FetchError { #[class(inherit)] #[error(transparent)] Url(#[from] #[inherit] url::ParseError), - #[class(TYPE)] + #[class(type)] #[error(transparent)] Method(#[from] http::method::InvalidMethod), - #[class(TYPE)] + #[class(type)] #[error(transparent)] ClientSend(#[from] ClientSendError), #[class(inherit)] @@ -276,6 +291,7 @@ pub fn create_client_from_options( .map_err(HttpClientCreateError::RootCertStore)?, ca_certs: vec![], proxy: options.proxy.clone(), + dns_resolver: options.resolver.clone(), unsafely_ignore_certificate_errors: options .unsafely_ignore_certificate_errors .clone(), @@ -288,6 +304,7 @@ pub fn create_client_from_options( pool_idle_timeout: None, http1: true, http2: true, + client_builder_hook: options.client_builder_hook, }, ) } @@ -399,7 +416,7 @@ impl FetchPermissions for deno_permissions::PermissionsContainer { } } -#[op2] +#[op2(stack_trace)] #[serde] #[allow(clippy::too_many_arguments)] pub fn op_fetch( @@ -850,6 +867,8 @@ pub struct CreateHttpClientArgs { proxy: Option, pool_max_idle_per_host: Option, pool_idle_timeout: Option, + #[serde(default)] + use_hickory_resolver: bool, #[serde(default = "default_true")] http1: bool, #[serde(default = "default_true")] @@ -862,7 +881,7 @@ fn default_true() -> bool { true } -#[op2] +#[op2(stack_trace)] #[smi] pub fn op_fetch_custom_client( state: &mut OpState, @@ -893,6 +912,13 @@ where .map_err(HttpClientCreateError::RootCertStore)?, ca_certs, proxy: args.proxy, + dns_resolver: if args.use_hickory_resolver { + dns::Resolver::hickory() + .map_err(deno_core::error::AnyError::new) + .map_err(FetchError::Resource)? + } else { + dns::Resolver::default() + }, unsafely_ignore_certificate_errors: options .unsafely_ignore_certificate_errors .clone(), @@ -910,6 +936,7 @@ where ), http1: args.http1, http2: args.http2, + client_builder_hook: options.client_builder_hook, }, )?; @@ -924,12 +951,14 @@ pub struct CreateHttpClientOptions { pub root_cert_store: Option, pub ca_certs: Vec>, pub proxy: Option, + pub dns_resolver: dns::Resolver, pub unsafely_ignore_certificate_errors: Option>, pub client_cert_chain_and_key: Option, pub pool_max_idle_per_host: Option, pub pool_idle_timeout: Option>, pub http1: bool, pub http2: bool, + pub client_builder_hook: Option HyperClientBuilder>, } impl Default for CreateHttpClientOptions { @@ -938,18 +967,20 @@ impl Default for CreateHttpClientOptions { root_cert_store: None, ca_certs: vec![], proxy: None, + dns_resolver: dns::Resolver::default(), unsafely_ignore_certificate_errors: None, client_cert_chain_and_key: None, pool_max_idle_per_host: None, pool_idle_timeout: None, http1: true, http2: true, + client_builder_hook: None, } } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum HttpClientCreateError { #[error(transparent)] Tls(deno_tls::TlsError), @@ -993,18 +1024,22 @@ pub fn create_http_client( tls_config.alpn_protocols = alpn_protocols; let tls_config = Arc::from(tls_config); - let mut http_connector = HttpConnector::new(); + let mut http_connector = + HttpConnector::new_with_resolver(options.dns_resolver.clone()); http_connector.enforce_http(false); let user_agent = user_agent.parse::().map_err(|_| { HttpClientCreateError::InvalidUserAgent(user_agent.to_string()) })?; - let mut builder = - hyper_util::client::legacy::Builder::new(TokioExecutor::new()); + let mut builder = HyperClientBuilder::new(TokioExecutor::new()); builder.timer(TokioTimer::new()); builder.pool_timer(TokioTimer::new()); + if let Some(client_builder_hook) = options.client_builder_hook { + builder = client_builder_hook(builder); + } + let mut proxies = proxy::from_env(); if let Some(proxy) = options.proxy { let mut intercept = proxy::Intercept::all(&proxy.url) @@ -1068,7 +1103,7 @@ pub struct Client { user_agent: HeaderValue, } -type Connector = proxy::ProxyConnector; +type Connector = proxy::ProxyConnector>; // clippy is wrong here #[allow(clippy::declare_interior_mutable_const)] diff --git a/ext/fetch/tests.rs b/ext/fetch/tests.rs index dad1b34a9e8016..e053c6b1cfec5f 100644 --- a/ext/fetch/tests.rs +++ b/ext/fetch/tests.rs @@ -1,6 +1,8 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use std::net::SocketAddr; +use std::sync::atomic::AtomicUsize; +use std::sync::atomic::Ordering::SeqCst; use std::sync::Arc; use bytes::Bytes; @@ -10,6 +12,8 @@ use http_body_util::BodyExt; use tokio::io::AsyncReadExt; use tokio::io::AsyncWriteExt; +use crate::dns; + use super::create_http_client; use super::CreateHttpClientOptions; @@ -17,6 +21,53 @@ static EXAMPLE_CRT: &[u8] = include_bytes!("../tls/testdata/example1_cert.der"); static EXAMPLE_KEY: &[u8] = include_bytes!("../tls/testdata/example1_prikey.der"); +#[test] +fn test_userspace_resolver() { + let thread_counter = Arc::new(AtomicUsize::new(0)); + + let thread_counter_ref = thread_counter.clone(); + let rt = tokio::runtime::Builder::new_current_thread() + .enable_all() + .on_thread_start(move || { + thread_counter_ref.fetch_add(1, SeqCst); + }) + .build() + .unwrap(); + + rt.block_on(async move { + assert_eq!(thread_counter.load(SeqCst), 0); + let src_addr = create_https_server(true).await; + assert_eq!(src_addr.ip().to_string(), "127.0.0.1"); + // use `localhost` to ensure dns step happens. + let addr = format!("localhost:{}", src_addr.port()); + + let hickory = hickory_resolver::AsyncResolver::tokio( + Default::default(), + Default::default(), + ); + + assert_eq!(thread_counter.load(SeqCst), 0); + rust_test_client_with_resolver( + None, + addr.clone(), + "https", + http::Version::HTTP_2, + dns::Resolver::hickory_from_async_resolver(hickory), + ) + .await; + assert_eq!(thread_counter.load(SeqCst), 0, "userspace resolver shouldn't spawn new threads."); + rust_test_client_with_resolver( + None, + addr.clone(), + "https", + http::Version::HTTP_2, + dns::Resolver::gai(), + ) + .await; + assert_eq!(thread_counter.load(SeqCst), 1, "getaddrinfo is called inside spawn_blocking, so tokio spawn a new worker thread for it."); + }); +} + #[tokio::test] async fn test_https_proxy_http11() { let src_addr = create_https_server(false).await; @@ -52,27 +103,30 @@ async fn test_socks_proxy_h2() { run_test_client(prx_addr, src_addr, "socks5", http::Version::HTTP_2).await; } -async fn run_test_client( - prx_addr: SocketAddr, - src_addr: SocketAddr, +async fn rust_test_client_with_resolver( + prx_addr: Option, + src_addr: String, proto: &str, ver: http::Version, + resolver: dns::Resolver, ) { let client = create_http_client( "fetch/test", CreateHttpClientOptions { root_cert_store: None, ca_certs: vec![], - proxy: Some(deno_tls::Proxy { - url: format!("{}://{}", proto, prx_addr), + proxy: prx_addr.map(|p| deno_tls::Proxy { + url: format!("{}://{}", proto, p), basic_auth: None, }), unsafely_ignore_certificate_errors: Some(vec![]), client_cert_chain_and_key: None, pool_max_idle_per_host: None, pool_idle_timeout: None, + dns_resolver: resolver, http1: true, http2: true, + client_builder_hook: None, }, ) .unwrap(); @@ -92,6 +146,22 @@ async fn run_test_client( assert_eq!(hello, "hello from server"); } +async fn run_test_client( + prx_addr: SocketAddr, + src_addr: SocketAddr, + proto: &str, + ver: http::Version, +) { + rust_test_client_with_resolver( + Some(prx_addr), + src_addr.to_string(), + proto, + ver, + Default::default(), + ) + .await +} + async fn create_https_server(allow_h2: bool) -> SocketAddr { let mut tls_config = deno_tls::rustls::server::ServerConfig::builder() .with_no_client_auth() diff --git a/ext/ffi/Cargo.toml b/ext/ffi/Cargo.toml index 295e8be8460dc5..f0069a55308577 100644 --- a/ext/ffi/Cargo.toml +++ b/ext/ffi/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_ffi" -version = "0.164.0" +version = "0.166.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -15,6 +15,7 @@ path = "lib.rs" [dependencies] deno_core.workspace = true +deno_error.workspace = true deno_permissions.workspace = true dlopen2.workspace = true dynasmrt = "1.2.3" diff --git a/ext/ffi/call.rs b/ext/ffi/call.rs index 6d06c73f4a43dd..5703c7f4a2638a 100644 --- a/ext/ffi/call.rs +++ b/ext/ffi/call.rs @@ -23,15 +23,15 @@ use std::ffi::c_void; use std::future::Future; use std::rc::Rc; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CallError { - #[class(TYPE)] + #[class(type)] #[error(transparent)] IR(#[from] IRError), - #[class(GENERIC)] + #[class(generic)] #[error("Nonblocking FFI call failed: {0}")] NonblockingCallFailure(#[source] tokio::task::JoinError), - #[class(TYPE)] + #[class(type)] #[error("Invalid FFI symbol name: '{0}'")] InvalidSymbol(String), #[class(inherit)] @@ -293,7 +293,7 @@ fn ffi_call( } } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub fn op_ffi_call_ptr_nonblocking( scope: &mut v8::HandleScope, @@ -388,7 +388,7 @@ pub fn op_ffi_call_nonblocking( }) } -#[op2(reentrant)] +#[op2(reentrant, stack_trace)] #[serde] pub fn op_ffi_call_ptr( scope: &mut v8::HandleScope, diff --git a/ext/ffi/callback.rs b/ext/ffi/callback.rs index c7dde4d436605b..1bb65208054cc5 100644 --- a/ext/ffi/callback.rs +++ b/ext/ffi/callback.rs @@ -33,7 +33,7 @@ thread_local! { static LOCAL_THREAD_ID: RefCell = const { RefCell::new(0) }; } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CallbackError { #[class(inherit)] #[error(transparent)] @@ -557,7 +557,7 @@ pub struct RegisterCallbackArgs { result: NativeType, } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_unsafe_callback_create( state: &mut OpState, scope: &mut v8::HandleScope<'scope>, diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index fec19a4c39accf..b59909e29bf13e 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -17,11 +17,12 @@ use dlopen2::raw::Library; use serde::Deserialize; use serde_value::ValueDeserializer; use std::borrow::Cow; +use std::cell::RefCell; use std::collections::HashMap; use std::ffi::c_void; use std::rc::Rc; -deno_core::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { +deno_error::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { match err { dlopen2::Error::NullCharacter(_) => "InvalidData", dlopen2::Error::OpeningLibraryError(e) => e.get_class(), @@ -30,16 +31,16 @@ deno_core::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { dlopen2::Error::NullSymbol => "NotFound", }}); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum DlfcnError { - #[class(GENERIC)] + #[class(generic)] #[error("Failed to register symbol {symbol}: {error}")] RegisterSymbol { symbol: String, #[source] error: dlopen2::Error, }, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Dlopen(#[from] dlopen2::Error), #[class(inherit)] @@ -138,17 +139,20 @@ pub struct FfiLoadArgs { symbols: HashMap, } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_load<'scope, FP>( scope: &mut v8::HandleScope<'scope>, - state: &mut OpState, + state: Rc>, #[serde] args: FfiLoadArgs, ) -> Result, DlfcnError> where FP: FfiPermissions + 'static, { - let permissions = state.borrow_mut::(); - let path = permissions.check_partial_with_path(&args.path)?; + let path = { + let mut state = state.borrow_mut(); + let permissions = state.borrow_mut::(); + permissions.check_partial_with_path(&args.path)? + }; let lib = Library::open(&path).map_err(|e| { dlopen2::Error::OpeningLibraryError(std::io::Error::new( @@ -225,6 +229,7 @@ where } } + let mut state = state.borrow_mut(); let out = v8::Array::new(scope, 2); let rid = state.resource_table.add(resource); let rid_v8 = v8::Integer::new_from_unsigned(scope, rid); diff --git a/ext/ffi/ir.rs b/ext/ffi/ir.rs index 307c168b994b78..f23d511f83c31e 100644 --- a/ext/ffi/ir.rs +++ b/ext/ffi/ir.rs @@ -6,8 +6,8 @@ use libffi::middle::Arg; use std::ffi::c_void; use std::ptr; -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum IRError { #[error("Invalid FFI u8 type, expected boolean")] InvalidU8ExpectedBoolean, diff --git a/ext/ffi/repr.rs b/ext/ffi/repr.rs index d8e1716417bebb..eab9c47f5d48db 100644 --- a/ext/ffi/repr.rs +++ b/ext/ffi/repr.rs @@ -9,8 +9,8 @@ use std::ffi::c_void; use std::ffi::CStr; use std::ptr; -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum ReprError { #[error("Invalid pointer to offset, pointer is null")] InvalidOffset, @@ -51,7 +51,7 @@ pub enum ReprError { Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_ptr_create( state: &mut OpState, #[bigint] ptr_number: usize, @@ -65,7 +65,7 @@ where Ok(ptr_number as *mut c_void) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_ptr_equals( state: &mut OpState, a: *const c_void, @@ -80,7 +80,7 @@ where Ok(a == b) } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_ptr_of( state: &mut OpState, #[anybuffer] buf: *const u8, @@ -94,7 +94,7 @@ where Ok(buf as *mut c_void) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_ptr_of_exact( state: &mut OpState, buf: v8::Local, @@ -114,7 +114,7 @@ where Ok(buf.as_ptr() as _) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_ptr_offset( state: &mut OpState, ptr: *mut c_void, @@ -144,7 +144,7 @@ unsafe extern "C" fn noop_deleter_callback( ) { } -#[op2(fast)] +#[op2(fast, stack_trace)] #[bigint] pub fn op_ffi_ptr_value( state: &mut OpState, @@ -159,7 +159,7 @@ where Ok(ptr as usize) } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_get_buf( scope: &mut v8::HandleScope<'scope>, state: &mut OpState, @@ -191,7 +191,7 @@ where Ok(array_buffer) } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_buf_copy_into( state: &mut OpState, src: *mut c_void, @@ -221,7 +221,7 @@ where } } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_cstr_read( scope: &mut v8::HandleScope<'scope>, state: &mut OpState, @@ -246,7 +246,7 @@ where Ok(value) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_bool( state: &mut OpState, ptr: *mut c_void, @@ -266,7 +266,7 @@ where Ok(unsafe { ptr::read_unaligned::(ptr.offset(offset) as *const bool) }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_u8( state: &mut OpState, ptr: *mut c_void, @@ -288,7 +288,7 @@ where }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_i8( state: &mut OpState, ptr: *mut c_void, @@ -310,7 +310,7 @@ where }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_u16( state: &mut OpState, ptr: *mut c_void, @@ -332,7 +332,7 @@ where }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_i16( state: &mut OpState, ptr: *mut c_void, @@ -354,7 +354,7 @@ where }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_u32( state: &mut OpState, ptr: *mut c_void, @@ -374,7 +374,7 @@ where Ok(unsafe { ptr::read_unaligned::(ptr.offset(offset) as *const u32) }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_i32( state: &mut OpState, ptr: *mut c_void, @@ -394,7 +394,7 @@ where Ok(unsafe { ptr::read_unaligned::(ptr.offset(offset) as *const i32) }) } -#[op2(fast)] +#[op2(fast, stack_trace)] #[bigint] pub fn op_ffi_read_u64( state: &mut OpState, @@ -420,7 +420,7 @@ where Ok(value) } -#[op2(fast)] +#[op2(fast, stack_trace)] #[bigint] pub fn op_ffi_read_i64( state: &mut OpState, @@ -446,7 +446,7 @@ where Ok(value) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_f32( state: &mut OpState, ptr: *mut c_void, @@ -466,7 +466,7 @@ where Ok(unsafe { ptr::read_unaligned::(ptr.offset(offset) as *const f32) }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_f64( state: &mut OpState, ptr: *mut c_void, @@ -486,7 +486,7 @@ where Ok(unsafe { ptr::read_unaligned::(ptr.offset(offset) as *const f64) }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_ptr( state: &mut OpState, ptr: *mut c_void, diff --git a/ext/ffi/static.rs b/ext/ffi/static.rs index dec4080ea39ff8..10142ef8141404 100644 --- a/ext/ffi/static.rs +++ b/ext/ffi/static.rs @@ -8,15 +8,15 @@ use deno_core::OpState; use deno_core::ResourceId; use std::ptr; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum StaticError { #[class(inherit)] #[error(transparent)] Dlfcn(#[inherit] super::DlfcnError), - #[class(TYPE)] + #[class(type)] #[error("Invalid FFI static type 'void'")] InvalidTypeVoid, - #[class(TYPE)] + #[class(type)] #[error("Invalid FFI static type 'struct'")] InvalidTypeStruct, #[class(inherit)] diff --git a/ext/fs/30_fs.js b/ext/fs/30_fs.js index c8e19ac7583130..40513e7e0239cb 100644 --- a/ext/fs/30_fs.js +++ b/ext/fs/30_fs.js @@ -346,9 +346,10 @@ const { 0: statStruct, 1: statBuf } = createByteStruct({ mtime: "date", atime: "date", birthtime: "date", + ctime: "date", dev: "u64", ino: "?u64", - mode: "?u64", + mode: "u64", nlink: "?u64", uid: "?u64", gid: "?u64", @@ -377,9 +378,10 @@ function parseFileInfo(response) { birthtime: response.birthtimeSet === true ? new Date(response.birthtime) : null, + ctime: response.ctimeSet === true ? new Date(response.ctime) : null, dev: response.dev, + mode: response.mode, ino: unix ? response.ino : null, - mode: unix ? response.mode : null, nlink: unix ? response.nlink : null, uid: unix ? response.uid : null, gid: unix ? response.gid : null, diff --git a/ext/fs/Cargo.toml b/ext/fs/Cargo.toml index e85f349b155ae9..1d7d5d3d9aabed 100644 --- a/ext/fs/Cargo.toml +++ b/ext/fs/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_fs" -version = "0.87.0" +version = "0.89.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -19,6 +19,7 @@ sync_fs = [] [dependencies] async-trait.workspace = true base32.workspace = true +boxed_error.workspace = true deno_core.workspace = true deno_io.workspace = true deno_path_util.workspace = true diff --git a/ext/fs/in_memory_fs.rs b/ext/fs/in_memory_fs.rs index e29b9d50c6bb44..34b77836d93952 100644 --- a/ext/fs/in_memory_fs.rs +++ b/ext/fs/in_memory_fs.rs @@ -229,6 +229,7 @@ impl FileSystem for InMemoryFs { mtime: None, atime: None, birthtime: None, + ctime: None, dev: 0, ino: 0, mode: 0, @@ -251,6 +252,7 @@ impl FileSystem for InMemoryFs { mtime: None, atime: None, birthtime: None, + ctime: None, dev: 0, ino: 0, mode: 0, diff --git a/ext/fs/lib.rs b/ext/fs/lib.rs index dd852e6be82fd2..aed9a7085fc995 100644 --- a/ext/fs/lib.rs +++ b/ext/fs/lib.rs @@ -15,6 +15,7 @@ pub use crate::interface::FsDirEntry; pub use crate::interface::FsFileType; pub use crate::interface::OpenOptions; pub use crate::ops::FsOpsError; +pub use crate::ops::FsOpsErrorKind; pub use crate::ops::OperationError; pub use crate::std_fs::RealFs; pub use crate::sync::MaybeSend; diff --git a/ext/fs/ops.rs b/ext/fs/ops.rs index 85b1728eb38104..b14ddfe6937964 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -35,10 +35,10 @@ use rand::thread_rng; use rand::Rng; use serde::Serialize; -#[derive(Debug, Boxed, deno_core::JsError)] +#[derive(Debug, Boxed, deno_error::JsError)] pub struct FsOpsError(pub Box); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum FsOpsErrorKind { #[class(inherit)] #[error("{0}")] @@ -55,23 +55,23 @@ pub enum FsOpsErrorKind { #[class("InvalidData")] #[error("File name or path {0:?} is not valid UTF-8")] InvalidUtf8(std::ffi::OsString), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] StripPrefix(#[from] StripPrefixError), #[class(inherit)] #[error("{0}")] Canceled(#[from] #[inherit] deno_core::Canceled), - #[class(TYPE)] + #[class(type)] #[error("Invalid seek mode: {0}")] InvalidSeekMode(i32), - #[class(GENERIC)] + #[class(generic)] #[error("Invalid control character in prefix or suffix: {0:?}")] InvalidControlCharacter(String), - #[class(GENERIC)] + #[class(generic)] #[error("Invalid character in prefix or suffix: {0:?}")] InvalidCharacter(String), #[cfg(windows)] - #[class(GENERIC)] + #[class(generic)] #[error("Invalid trailing character in suffix")] InvalidTrailingCharacter, #[class("NotCapable")] @@ -1670,7 +1670,7 @@ pub async fn op_fs_futime_async( Ok(()) } -#[derive(Debug, deno_core::JsError)] +#[derive(Debug, deno_error::JsError)] #[class(inherit)] pub struct OperationError { operation: &'static str, diff --git a/ext/fs/std_fs.rs b/ext/fs/std_fs.rs index 1a83c97c53a3e7..73439d9bab7897 100644 --- a/ext/fs/std_fs.rs +++ b/ext/fs/std_fs.rs @@ -821,24 +821,46 @@ fn stat_extra( Ok(info.dwVolumeSerialNumber as u64) } + const WINDOWS_TICK: i64 = 10_000; // 100-nanosecond intervals in a millisecond + const SEC_TO_UNIX_EPOCH: i64 = 11_644_473_600; // Seconds between Windows epoch and Unix epoch + + fn windows_time_to_unix_time_msec(windows_time: &i64) -> i64 { + let milliseconds_since_windows_epoch = windows_time / WINDOWS_TICK; + milliseconds_since_windows_epoch - SEC_TO_UNIX_EPOCH * 1000 + } + use windows_sys::Wdk::Storage::FileSystem::FILE_ALL_INFORMATION; + use windows_sys::Win32::Foundation::NTSTATUS; unsafe fn query_file_information( handle: winapi::shared::ntdef::HANDLE, - ) -> std::io::Result { + ) -> Result { use windows_sys::Wdk::Storage::FileSystem::NtQueryInformationFile; + use windows_sys::Win32::Foundation::RtlNtStatusToDosError; + use windows_sys::Win32::Foundation::ERROR_MORE_DATA; + use windows_sys::Win32::System::IO::IO_STATUS_BLOCK; let mut info = std::mem::MaybeUninit::::zeroed(); + let mut io_status_block = + std::mem::MaybeUninit::::zeroed(); let status = NtQueryInformationFile( handle as _, - std::ptr::null_mut(), + io_status_block.as_mut_ptr(), info.as_mut_ptr() as *mut _, std::mem::size_of::() as _, 18, /* FileAllInformation */ ); if status < 0 { - return Err(std::io::Error::last_os_error()); + let converted_status = RtlNtStatusToDosError(status); + + // If error more data is returned, then it means that the buffer is too small to get full filename information + // to have that we should retry. However, since we only use BasicInformation and StandardInformation, it is fine to ignore it + // since struct is populated with other data anyway. + // https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntqueryinformationfile#remarksdd + if converted_status != ERROR_MORE_DATA { + return Err(converted_status as NTSTATUS); + } } Ok(info.assume_init()) @@ -862,10 +884,13 @@ fn stat_extra( } let result = get_dev(file_handle); - CloseHandle(file_handle); fsstat.dev = result?; if let Ok(file_info) = query_file_information(file_handle) { + fsstat.ctime = Some(windows_time_to_unix_time_msec( + &file_info.BasicInformation.ChangeTime, + ) as u64); + if file_info.BasicInformation.FileAttributes & winapi::um::winnt::FILE_ATTRIBUTE_REPARSE_POINT != 0 @@ -898,6 +923,7 @@ fn stat_extra( } } + CloseHandle(file_handle); Ok(()) } } diff --git a/ext/http/00_serve.ts b/ext/http/00_serve.ts index 7bf83e49c3dac1..fcdb87d092c7a0 100644 --- a/ext/http/00_serve.ts +++ b/ext/http/00_serve.ts @@ -42,6 +42,10 @@ const { Uint8Array, Promise, } = primordials; +const { + getAsyncContext, + setAsyncContext, +} = core; import { InnerBody } from "ext:deno_fetch/22_body.js"; import { Event } from "ext:deno_web/02_event.js"; @@ -397,8 +401,10 @@ class CallbackContext { /** @type {Promise | undefined} */ closing; listener; + asyncContext; constructor(signal, args, listener) { + this.asyncContext = getAsyncContext(); // The abort signal triggers a non-graceful shutdown signal?.addEventListener( "abort", @@ -508,82 +514,89 @@ function fastSyncResponseOrStream( */ function mapToCallback(context, callback, onError) { return async function (req) { - // Get the response from the user-provided callback. If that fails, use onError. If that fails, return a fallback - // 500 error. - let innerRequest; - let response; - try { - innerRequest = new InnerRequest(req, context); - const request = fromInnerRequest(innerRequest, "immutable"); - innerRequest.request = request; - response = await callback( - request, - new ServeHandlerInfo(innerRequest), - ); + const asyncContext = getAsyncContext(); + setAsyncContext(context.asyncContext); - // Throwing Error if the handler return value is not a Response class - if (!ObjectPrototypeIsPrototypeOf(ResponsePrototype, response)) { - throw new TypeError( - "Return value from serve handler must be a response or a promise resolving to a response", - ); - } - - if (response.type === "error") { - throw new TypeError( - "Return value from serve handler must not be an error response (like Response.error())", + try { + // Get the response from the user-provided callback. If that fails, use onError. If that fails, return a fallback + // 500 error. + let innerRequest; + let response; + try { + innerRequest = new InnerRequest(req, context); + const request = fromInnerRequest(innerRequest, "immutable"); + innerRequest.request = request; + response = await callback( + request, + new ServeHandlerInfo(innerRequest), ); - } - if (response.bodyUsed) { - throw new TypeError( - "The body of the Response returned from the serve handler has already been consumed", - ); - } - } catch (error) { - try { - response = await onError(error); + // Throwing Error if the handler return value is not a Response class if (!ObjectPrototypeIsPrototypeOf(ResponsePrototype, response)) { throw new TypeError( - "Return value from onError handler must be a response or a promise resolving to a response", + "Return value from serve handler must be a response or a promise resolving to a response", + ); + } + + if (response.type === "error") { + throw new TypeError( + "Return value from serve handler must not be an error response (like Response.error())", + ); + } + + if (response.bodyUsed) { + throw new TypeError( + "The body of the Response returned from the serve handler has already been consumed", ); } } catch (error) { - // deno-lint-ignore no-console - console.error("Exception in onError while handling exception", error); - response = internalServerError(); + try { + response = await onError(error); + if (!ObjectPrototypeIsPrototypeOf(ResponsePrototype, response)) { + throw new TypeError( + "Return value from onError handler must be a response or a promise resolving to a response", + ); + } + } catch (error) { + // deno-lint-ignore no-console + console.error("Exception in onError while handling exception", error); + response = internalServerError(); + } } - } - const inner = toInnerResponse(response); - if (innerRequest?.[_upgraded]) { - // We're done here as the connection has been upgraded during the callback and no longer requires servicing. - if (response !== UPGRADE_RESPONSE_SENTINEL) { - // deno-lint-ignore no-console - console.error("Upgrade response was not returned from callback"); - context.close(); + const inner = toInnerResponse(response); + if (innerRequest?.[_upgraded]) { + // We're done here as the connection has been upgraded during the callback and no longer requires servicing. + if (response !== UPGRADE_RESPONSE_SENTINEL) { + // deno-lint-ignore no-console + console.error("Upgrade response was not returned from callback"); + context.close(); + } + innerRequest?.[_upgraded](); + return; } - innerRequest?.[_upgraded](); - return; - } - // Did everything shut down while we were waiting? - if (context.closed) { - // We're shutting down, so this status shouldn't make it back to the client but "Service Unavailable" seems appropriate - innerRequest?.close(); - op_http_set_promise_complete(req, 503); - return; - } + // Did everything shut down while we were waiting? + if (context.closed) { + // We're shutting down, so this status shouldn't make it back to the client but "Service Unavailable" seems appropriate + innerRequest?.close(); + op_http_set_promise_complete(req, 503); + return; + } - const status = inner.status; - const headers = inner.headerList; - if (headers && headers.length > 0) { - if (headers.length == 1) { - op_http_set_response_header(req, headers[0][0], headers[0][1]); - } else { - op_http_set_response_headers(req, headers); + const status = inner.status; + const headers = inner.headerList; + if (headers && headers.length > 0) { + if (headers.length == 1) { + op_http_set_response_header(req, headers[0][0], headers[0][1]); + } else { + op_http_set_response_headers(req, headers); + } } - } - fastSyncResponseOrStream(req, inner.body, status, innerRequest); + fastSyncResponseOrStream(req, inner.body, status, innerRequest); + } finally { + setAsyncContext(asyncContext); + } }; } diff --git a/ext/http/Cargo.toml b/ext/http/Cargo.toml index ed98fe349c1872..5dc3cd9a7b83c0 100644 --- a/ext/http/Cargo.toml +++ b/ext/http/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_http" -version = "0.175.0" +version = "0.177.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/http/http_next.rs b/ext/http/http_next.rs index 8ff0ef29bbc5e2..fa631d9e8498c0 100644 --- a/ext/http/http_next.rs +++ b/ext/http/http_next.rs @@ -18,6 +18,7 @@ use crate::service::HttpServerState; use crate::service::SignallingRc; use crate::websocket_upgrade::WebSocketUpgrade; use crate::LocalExecutor; +use crate::Options; use cache_control::CacheControl; use deno_core::external; use deno_core::futures::future::poll_fn; @@ -145,7 +146,7 @@ macro_rules! clone_external { }}; } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum HttpNextError { #[class(inherit)] #[error(transparent)] @@ -165,7 +166,7 @@ pub enum HttpNextError { #[class(inherit)] #[error(transparent)] Canceled(#[from] #[inherit] deno_core::Canceled), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] UpgradeUnavailable(#[from] crate::service::UpgradeUnavailableError), #[class(inherit)] @@ -572,6 +573,7 @@ fn is_request_compressible( match accept_encoding.to_str() { // Firefox and Chrome send this -- no need to parse Ok("gzip, deflate, br") => return Compression::Brotli, + Ok("gzip, deflate, br, zstd") => return Compression::Brotli, Ok("gzip") => return Compression::GZip, Ok("br") => return Compression::Brotli, _ => (), @@ -822,10 +824,16 @@ fn serve_http11_unconditional( io: impl HttpServeStream, svc: impl HttpService + 'static, cancel: Rc, + http1_builder_hook: Option http1::Builder>, ) -> impl Future> + 'static { - let conn = http1::Builder::new() - .keep_alive(true) - .writev(*USE_WRITEV) + let mut builder = http1::Builder::new(); + builder.keep_alive(true).writev(*USE_WRITEV); + + if let Some(http1_builder_hook) = http1_builder_hook { + builder = http1_builder_hook(builder); + } + + let conn = builder .serve_connection(TokioIo::new(io), svc) .with_upgrades(); @@ -844,9 +852,17 @@ fn serve_http2_unconditional( io: impl HttpServeStream, svc: impl HttpService + 'static, cancel: Rc, + http2_builder_hook: Option< + fn(http2::Builder) -> http2::Builder, + >, ) -> impl Future> + 'static { - let conn = - http2::Builder::new(LocalExecutor).serve_connection(TokioIo::new(io), svc); + let mut builder = http2::Builder::new(LocalExecutor); + + if let Some(http2_builder_hook) = http2_builder_hook { + builder = http2_builder_hook(builder); + } + + let conn = builder.serve_connection(TokioIo::new(io), svc); async { match conn.or_abort(cancel).await { Err(mut conn) => { @@ -862,15 +878,16 @@ async fn serve_http2_autodetect( io: impl HttpServeStream, svc: impl HttpService + 'static, cancel: Rc, + options: Options, ) -> Result<(), HttpNextError> { let prefix = NetworkStreamPrefixCheck::new(io, HTTP2_PREFIX); let (matches, io) = prefix.match_prefix().await?; if matches { - serve_http2_unconditional(io, svc, cancel) + serve_http2_unconditional(io, svc, cancel, options.http2_builder_hook) .await .map_err(HttpNextError::Hyper) } else { - serve_http11_unconditional(io, svc, cancel) + serve_http11_unconditional(io, svc, cancel, options.http1_builder_hook) .await .map_err(HttpNextError::Hyper) } @@ -881,6 +898,7 @@ fn serve_https( request_info: HttpConnectionProperties, lifetime: HttpLifetime, tx: tokio::sync::mpsc::Sender>, + options: Options, ) -> JoinHandle> { let HttpLifetime { server_state, @@ -892,21 +910,31 @@ fn serve_https( handle_request(req, request_info.clone(), server_state.clone(), tx.clone()) }); spawn( - async { + async move { let handshake = io.handshake().await?; // If the client specifically negotiates a protocol, we will use it. If not, we'll auto-detect // based on the prefix bytes let handshake = handshake.alpn; if Some(TLS_ALPN_HTTP_2) == handshake.as_deref() { - serve_http2_unconditional(io, svc, listen_cancel_handle) - .await - .map_err(HttpNextError::Hyper) + serve_http2_unconditional( + io, + svc, + listen_cancel_handle, + options.http2_builder_hook, + ) + .await + .map_err(HttpNextError::Hyper) } else if Some(TLS_ALPN_HTTP_11) == handshake.as_deref() { - serve_http11_unconditional(io, svc, listen_cancel_handle) - .await - .map_err(HttpNextError::Hyper) + serve_http11_unconditional( + io, + svc, + listen_cancel_handle, + options.http1_builder_hook, + ) + .await + .map_err(HttpNextError::Hyper) } else { - serve_http2_autodetect(io, svc, listen_cancel_handle).await + serve_http2_autodetect(io, svc, listen_cancel_handle, options).await } } .try_or_cancel(connection_cancel_handle), @@ -918,6 +946,7 @@ fn serve_http( request_info: HttpConnectionProperties, lifetime: HttpLifetime, tx: tokio::sync::mpsc::Sender>, + options: Options, ) -> JoinHandle> { let HttpLifetime { server_state, @@ -929,7 +958,7 @@ fn serve_http( handle_request(req, request_info.clone(), server_state.clone(), tx.clone()) }); spawn( - serve_http2_autodetect(io, svc, listen_cancel_handle) + serve_http2_autodetect(io, svc, listen_cancel_handle, options) .try_or_cancel(connection_cancel_handle), ) } @@ -939,6 +968,7 @@ fn serve_http_on( listen_properties: &HttpListenProperties, lifetime: HttpLifetime, tx: tokio::sync::mpsc::Sender>, + options: Options, ) -> JoinHandle> where HTTP: HttpPropertyExtractor, @@ -950,14 +980,14 @@ where match network_stream { NetworkStream::Tcp(conn) => { - serve_http(conn, connection_properties, lifetime, tx) + serve_http(conn, connection_properties, lifetime, tx, options) } NetworkStream::Tls(conn) => { - serve_https(conn, connection_properties, lifetime, tx) + serve_https(conn, connection_properties, lifetime, tx, options) } #[cfg(unix)] NetworkStream::Unix(conn) => { - serve_http(conn, connection_properties, lifetime, tx) + serve_http(conn, connection_properties, lifetime, tx, options) } } } @@ -1045,6 +1075,11 @@ where let lifetime = resource.lifetime(); + let options = { + let state = state.borrow(); + *state.borrow::() + }; + let listen_properties_clone: HttpListenProperties = listen_properties.clone(); let handle = spawn(async move { loop { @@ -1056,6 +1091,7 @@ where &listen_properties_clone, lifetime.clone(), tx.clone(), + options, ); } #[allow(unreachable_code)] @@ -1091,11 +1127,17 @@ where let (tx, rx) = tokio::sync::mpsc::channel(10); let resource: Rc = Rc::new(HttpJoinHandle::new(rx)); + let options = { + let state = state.borrow(); + *state.borrow::() + }; + let handle = serve_http_on::( connection, &listen_properties, resource.lifetime(), tx, + options, ); // Set the handle after we start the future diff --git a/ext/http/lib.rs b/ext/http/lib.rs index 428a730480634a..1efc68f73c7394 100644 --- a/ext/http/lib.rs +++ b/ext/http/lib.rs @@ -40,6 +40,8 @@ use deno_net::raw::NetworkStream; use deno_websocket::ws_create_server_stream; use flate2::write::GzEncoder; use flate2::Compression; +use hyper::server::conn::http1; +use hyper::server::conn::http2; use hyper_util::rt::TokioIo; use hyper_v014::body::Bytes; use hyper_v014::body::HttpBody; @@ -97,6 +99,25 @@ pub use request_properties::HttpRequestProperties; pub use service::UpgradeUnavailableError; pub use websocket_upgrade::WebSocketUpgradeError; +#[derive(Debug, Default, Clone, Copy)] +pub struct Options { + /// By passing a hook function, the caller can customize various configuration + /// options for the HTTP/2 server. + /// See [`http2::Builder`] for what parameters can be customized. + /// + /// If `None`, the default configuration provided by hyper will be used. Note + /// that the default configuration is subject to change in future versions. + pub http2_builder_hook: + Option) -> http2::Builder>, + /// By passing a hook function, the caller can customize various configuration + /// options for the HTTP/1 server. + /// See [`http1::Builder`] for what parameters can be customized. + /// + /// If `None`, the default configuration provided by hyper will be used. Note + /// that the default configuration is subject to change in future versions. + pub http1_builder_hook: Option http1::Builder>, +} + deno_core::extension!( deno_http, deps = [deno_web, deno_net, deno_fetch, deno_websocket], @@ -136,9 +157,15 @@ deno_core::extension!( http_next::op_http_cancel, ], esm = ["00_serve.ts", "01_http.js", "02_websocket.ts"], + options = { + options: Options, + }, + state = |state, options| { + state.put::(options.options); + } ); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum HttpError { #[class(inherit)] #[error(transparent)] @@ -149,13 +176,13 @@ pub enum HttpError { #[class("Http")] #[error("{0}")] HyperV014(#[source] Arc), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] InvalidHeaderName(#[from] hyper_v014::header::InvalidHeaderName), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] InvalidHeaderValue(#[from] hyper_v014::header::InvalidHeaderValue), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] Http(#[from] hyper_v014::http::Error), #[class("Http")] @@ -1114,7 +1141,7 @@ async fn op_http_upgrade_websocket( // Needed so hyper can use non Send futures #[derive(Clone)] -struct LocalExecutor; +pub struct LocalExecutor; impl hyper_v014::rt::Executor for LocalExecutor where diff --git a/ext/http/websocket_upgrade.rs b/ext/http/websocket_upgrade.rs index cc7c48bc32f123..d2e03b7f5e67cf 100644 --- a/ext/http/websocket_upgrade.rs +++ b/ext/http/websocket_upgrade.rs @@ -12,24 +12,24 @@ use memmem::Searcher; use memmem::TwoWaySearcher; use once_cell::sync::OnceCell; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum WebSocketUpgradeError { #[class("Http")] #[error("invalid headers")] InvalidHeaders, - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] HttpParse(#[from] httparse::Error), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] Http(#[from] http::Error), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] Utf8(#[from] std::str::Utf8Error), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] InvalidHeaderName(#[from] http::header::InvalidHeaderName), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] InvalidHeaderValue(#[from] http::header::InvalidHeaderValue), #[class("Http")] diff --git a/ext/io/Cargo.toml b/ext/io/Cargo.toml index 6ef049ff9b087e..52e8b5da912241 100644 --- a/ext/io/Cargo.toml +++ b/ext/io/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_io" -version = "0.87.0" +version = "0.89.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -16,6 +16,7 @@ path = "lib.rs" [dependencies] async-trait.workspace = true deno_core.workspace = true +deno_error.workspace = true filetime.workspace = true fs3.workspace = true log.workspace = true diff --git a/ext/io/fs.rs b/ext/io/fs.rs index d6a052820e3cc9..2a3ec1b8596cb5 100644 --- a/ext/io/fs.rs +++ b/ext/io/fs.rs @@ -15,13 +15,13 @@ use deno_core::ResourceHandleFd; use deno_core::ResourceId; use tokio::task::JoinError; -#[derive(Debug, deno_core::JsError)] +#[derive(Debug, deno_error::JsError)] pub enum FsError { #[class(inherit)] Io(#[inherit] io::Error), #[class("Busy")] FileBusy, - #[class("NotSupported")] + #[class(not_supported)] NotSupported, #[class("NotCapable")] NotCapable(&'static str), @@ -99,6 +99,7 @@ pub struct FsStat { pub mtime: Option, pub atime: Option, pub birthtime: Option, + pub ctime: Option, pub dev: u64, pub ino: u64, @@ -158,6 +159,16 @@ impl FsStat { } } + #[inline(always)] + fn get_ctime(ctime_or_0: i64) -> Option { + if ctime_or_0 > 0 { + // ctime return seconds since epoch, but we need milliseconds + return Some(ctime_or_0 as u64 * 1000); + } + + None + } + Self { is_file: metadata.is_file(), is_directory: metadata.is_dir(), @@ -167,6 +178,7 @@ impl FsStat { mtime: to_msec(metadata.modified()), atime: to_msec(metadata.accessed()), birthtime: to_msec(metadata.created()), + ctime: get_ctime(unix_or_zero!(ctime)), dev: unix_or_zero!(dev), ino: unix_or_zero!(ino), diff --git a/ext/kv/Cargo.toml b/ext/kv/Cargo.toml index 1d7b91770fad33..972aabfbb7cdb7 100644 --- a/ext/kv/Cargo.toml +++ b/ext/kv/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_kv" -version = "0.85.0" +version = "0.87.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -17,6 +17,7 @@ path = "lib.rs" anyhow.workspace = true async-trait.workspace = true base64.workspace = true +boxed_error.workspace = true bytes.workspace = true chrono = { workspace = true, features = ["now"] } deno_core.workspace = true diff --git a/ext/kv/config.rs b/ext/kv/config.rs index 6e2e2c3a1f8b1a..7166bcbcc282a6 100644 --- a/ext/kv/config.rs +++ b/ext/kv/config.rs @@ -1,16 +1,17 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +#[derive(Clone, Copy, Debug)] pub struct KvConfig { - pub(crate) max_write_key_size_bytes: usize, - pub(crate) max_read_key_size_bytes: usize, - pub(crate) max_value_size_bytes: usize, - pub(crate) max_read_ranges: usize, - pub(crate) max_read_entries: usize, - pub(crate) max_checks: usize, - pub(crate) max_mutations: usize, - pub(crate) max_watched_keys: usize, - pub(crate) max_total_mutation_size_bytes: usize, - pub(crate) max_total_key_size_bytes: usize, + pub max_write_key_size_bytes: usize, + pub max_read_key_size_bytes: usize, + pub max_value_size_bytes: usize, + pub max_read_ranges: usize, + pub max_read_entries: usize, + pub max_checks: usize, + pub max_mutations: usize, + pub max_watched_keys: usize, + pub max_total_mutation_size_bytes: usize, + pub max_total_key_size_bytes: usize, } impl KvConfig { diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs index 1f63d57bbcb11a..23a1603409402e 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -116,10 +116,10 @@ impl Resource for DatabaseWatcherResource { } } -#[derive(Debug, Boxed, deno_core::JsError)] +#[derive(Debug, Boxed, deno_error::JsError)] pub struct KvError(pub Box); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum KvErrorKind { #[class(inherit)] #[error(transparent)] @@ -127,55 +127,55 @@ pub enum KvErrorKind { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] deno_core::error::ResourceError), - #[class(TYPE)] + #[class(type)] #[error("Too many ranges (max {0})")] TooManyRanges(usize), - #[class(TYPE)] + #[class(type)] #[error("Too many entries (max {0})")] TooManyEntries(usize), - #[class(TYPE)] + #[class(type)] #[error("Too many checks (max {0})")] TooManyChecks(usize), - #[class(TYPE)] + #[class(type)] #[error("Too many mutations (max {0})")] TooManyMutations(usize), - #[class(TYPE)] + #[class(type)] #[error("Too many keys (max {0})")] TooManyKeys(usize), - #[class(TYPE)] + #[class(type)] #[error("limit must be greater than 0")] InvalidLimit, - #[class(TYPE)] + #[class(type)] #[error("Invalid boundary key")] InvalidBoundaryKey, - #[class(TYPE)] + #[class(type)] #[error("Key too large for read (max {0} bytes)")] KeyTooLargeToRead(usize), - #[class(TYPE)] + #[class(type)] #[error("Key too large for write (max {0} bytes)")] KeyTooLargeToWrite(usize), - #[class(TYPE)] + #[class(type)] #[error("Total mutation size too large (max {0} bytes)")] TotalMutationTooLarge(usize), - #[class(TYPE)] + #[class(type)] #[error("Total key size too large (max {0} bytes)")] TotalKeyTooLarge(usize), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Kv(deno_core::error::AnyError), #[class(inherit)] #[error(transparent)] Io(#[from] #[inherit] std::io::Error), - #[class(TYPE)] + #[class(type)] #[error("Queue message not found")] QueueMessageNotFound, - #[class(TYPE)] + #[class(type)] #[error("Start key is not in the keyspace defined by prefix")] StartKeyNotInKeyspace, - #[class(TYPE)] + #[class(type)] #[error("End key is not in the keyspace defined by prefix")] EndKeyNotInKeyspace, - #[class(TYPE)] + #[class(type)] #[error("Start key is greater than end key")] StartKeyGreaterThanEndKey, #[class(inherit)] @@ -187,22 +187,22 @@ pub enum KvErrorKind { #[class(inherit)] #[error("Invalid enqueue")] InvalidEnqueue(#[source] #[inherit] std::io::Error), - #[class(TYPE)] + #[class(type)] #[error("key cannot be empty")] EmptyKey, - #[class(TYPE)] + #[class(type)] #[error("Value too large (max {0} bytes)")] ValueTooLarge(usize), - #[class(TYPE)] + #[class(type)] #[error("enqueue payload too large (max {0} bytes)")] EnqueuePayloadTooLarge(usize), - #[class(TYPE)] + #[class(type)] #[error("invalid cursor")] InvalidCursor, - #[class(TYPE)] + #[class(type)] #[error("cursor out of bounds")] CursorOutOfBounds, - #[class(TYPE)] + #[class(type)] #[error("Invalid range")] InvalidRange, } @@ -597,9 +597,9 @@ where Ok(()) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum KvCheckError { - #[class(TYPE)] + #[class(type)] #[error("invalid versionstamp")] InvalidVersionstamp, #[class(inherit)] @@ -628,18 +628,18 @@ fn check_from_v8(value: V8KvCheck) -> Result { }) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum KvMutationError { - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] BigInt(#[from] num_bigint::TryFromBigIntError), #[class(inherit)] #[error(transparent)] Io(#[from] #[inherit] std::io::Error), - #[class(TYPE)] + #[class(type)] #[error("Invalid mutation '{0}' with value")] InvalidMutationWithValue(String), - #[class(TYPE)] + #[class(type)] #[error("Invalid mutation '{0}' without value")] InvalidMutationWithoutValue(String), } diff --git a/ext/kv/remote.rs b/ext/kv/remote.rs index 9e3c4e23bbb24a..bceae105a6d0f9 100644 --- a/ext/kv/remote.rs +++ b/ext/kv/remote.rs @@ -196,6 +196,7 @@ impl DatabaseHandler root_cert_store: options.root_cert_store()?, ca_certs: vec![], proxy: options.proxy.clone(), + dns_resolver: Default::default(), unsafely_ignore_certificate_errors: options .unsafely_ignore_certificate_errors .clone(), @@ -208,6 +209,7 @@ impl DatabaseHandler pool_idle_timeout: None, http1: false, http2: true, + client_builder_hook: None, }, ).map_err(JsNativeError::from_err)?; let fetch_client = FetchClient(client); diff --git a/ext/kv/sqlite.rs b/ext/kv/sqlite.rs index 4a3476e0b5b613..31451cda0e8215 100644 --- a/ext/kv/sqlite.rs +++ b/ext/kv/sqlite.rs @@ -83,7 +83,7 @@ impl SqliteDbHandler

{ } } -deno_core::js_error_wrapper!(SqliteBackendError, JsSqliteBackendError, "TypeError"); +deno_error::js_error_wrapper!(SqliteBackendError, JsSqliteBackendError, "TypeError"); #[async_trait(?Send)] impl DatabaseHandler for SqliteDbHandler

{ diff --git a/ext/napi/Cargo.toml b/ext/napi/Cargo.toml index df3ec0287b936c..d94141901064b1 100644 --- a/ext/napi/Cargo.toml +++ b/ext/napi/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_napi" -version = "0.108.0" +version = "0.110.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -15,6 +15,7 @@ path = "lib.rs" [dependencies] deno_core.workspace = true +deno_error.workspace = true deno_permissions.workspace = true libc.workspace = true libloading = { version = "0.7" } diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index e18c80a24bb3dc..6f91fba3b07d29 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -53,15 +53,15 @@ pub use value::napi_value; pub mod function; mod value; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum NApiError { - #[class(TYPE)] + #[class(type)] #[error("Invalid path")] InvalidPath, - #[class(TYPE)] + #[class(type)] #[error(transparent)] LibLoading(#[from] libloading::Error), - #[class(TYPE)] + #[class(type)] #[error("Unable to find register Node-API module at {}", .0.display())] ModuleNotFound(PathBuf), #[class(inherit)] @@ -534,7 +534,7 @@ static NAPI_LOADED_MODULES: std::sync::LazyLock< RwLock>, > = std::sync::LazyLock::new(|| RwLock::new(HashMap::new())); -#[op2(reentrant)] +#[op2(reentrant, stack_trace)] fn op_napi_open( scope: &mut v8::HandleScope<'scope>, isolate: *mut v8::Isolate, diff --git a/ext/napi/node_api.rs b/ext/napi/node_api.rs index 186ae42c48cfc4..2ca5c8d0b4fac6 100644 --- a/ext/napi/node_api.rs +++ b/ext/napi/node_api.rs @@ -140,7 +140,6 @@ fn napi_fatal_exception(env: &mut Env, err: napi_value) -> napi_status { } #[napi_sym] -#[allow(clippy::print_stderr)] fn napi_fatal_error( location: *const c_char, location_len: usize, @@ -173,9 +172,9 @@ fn napi_fatal_error( }; if let Some(location) = location { - eprintln!("NODE API FATAL ERROR: {} {}", location, message); + log::error!("NODE API FATAL ERROR: {} {}", location, message); } else { - eprintln!("NODE API FATAL ERROR: {}", message); + log::error!("NODE API FATAL ERROR: {}", message); } std::process::abort(); diff --git a/ext/napi/sym/Cargo.toml b/ext/napi/sym/Cargo.toml index 7c13a9165c8205..74d7b450ba67a0 100644 --- a/ext/napi/sym/Cargo.toml +++ b/ext/napi/sym/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "napi_sym" -version = "0.107.0" +version = "0.109.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/napi/uv.rs b/ext/napi/uv.rs index 6f728a92b33705..ea6b5396659a59 100644 --- a/ext/napi/uv.rs +++ b/ext/napi/uv.rs @@ -5,10 +5,9 @@ use deno_core::parking_lot::Mutex; use std::mem::MaybeUninit; use std::ptr::addr_of_mut; -#[allow(clippy::print_stderr)] fn assert_ok(res: c_int) -> c_int { if res != 0 { - eprintln!("bad result in uv polyfill: {res}"); + log::error!("bad result in uv polyfill: {res}"); // don't panic because that might unwind into // c/c++ std::process::abort(); diff --git a/ext/net/Cargo.toml b/ext/net/Cargo.toml index 245deedd2da091..f729f35eedec73 100644 --- a/ext/net/Cargo.toml +++ b/ext/net/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_net" -version = "0.169.0" +version = "0.171.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -15,10 +15,11 @@ path = "lib.rs" [dependencies] deno_core.workspace = true +deno_error.workspace = true deno_permissions.workspace = true deno_tls.workspace = true hickory-proto = "0.24" -hickory-resolver = { version = "0.24", features = ["tokio-runtime", "serde-config"] } +hickory-resolver.workspace = true pin-project.workspace = true rustls-tokio-stream.workspace = true serde.workspace = true diff --git a/ext/net/io.rs b/ext/net/io.rs index 9a0e4870d7c188..475879f3ada69f 100644 --- a/ext/net/io.rs +++ b/ext/net/io.rs @@ -91,12 +91,12 @@ where } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum MapError { #[class(inherit)] #[error("{0}")] Io(#[inherit] std::io::Error), - #[class(GENERIC)] + #[class(generic)] #[error("Unable to get resources")] NoResources, } diff --git a/ext/net/lib.rs b/ext/net/lib.rs index 9cc58ad11161c3..7430d703774253 100644 --- a/ext/net/lib.rs +++ b/ext/net/lib.rs @@ -7,7 +7,7 @@ pub mod ops_tls; pub mod ops_unix; pub mod raw; pub mod resolve_addr; -mod tcp; +pub mod tcp; use deno_core::OpState; use deno_permissions::PermissionCheckError; diff --git a/ext/net/ops.rs b/ext/net/ops.rs index fab589bf692c60..5c625fe7fa9459 100644 --- a/ext/net/ops.rs +++ b/ext/net/ops.rs @@ -65,7 +65,7 @@ impl From for IpAddr { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum NetError { #[class("BadResource")] #[error("Listener has been closed")] @@ -94,10 +94,10 @@ pub enum NetError { #[class(inherit)] #[error("{0}")] Resource(#[from] #[inherit] deno_core::error::ResourceError), - #[class(GENERIC)] + #[class(generic)] #[error("No resolved address found")] NoResolvedAddress, - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] AddrParse(#[from] std::net::AddrParseError), #[class(inherit)] @@ -115,7 +115,7 @@ pub enum NetError { #[class("TimedOut")] #[error("{0}")] DnsTimedOut(ResolveError), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] Dns(#[from] ResolveError), #[class("NotSupported")] @@ -124,16 +124,16 @@ pub enum NetError { #[class("InvalidData")] #[error("File name or path {0:?} is not valid UTF-8")] InvalidUtf8(std::ffi::OsString), - #[class(GENERIC)] + #[class(generic)] #[error("unexpected key type")] UnexpectedKeyType, - #[class(TYPE)] + #[class(type)] #[error("Invalid hostname: '{0}'")] InvalidHostname(String), #[class("Busy")] #[error("TCP stream is currently in use")] TcpStreamBusy, - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] Rustls(#[from] deno_tls::rustls::Error), #[class(inherit)] @@ -145,7 +145,7 @@ pub enum NetError { #[class(inherit)] #[error("{0}")] RootCertStore(#[inherit] deno_core::error::JsNativeError), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] Reunite(tokio::net::tcp::ReuniteError), } @@ -209,7 +209,7 @@ pub async fn op_net_recv_udp( Ok((nread, IpAddr::from(remote_addr))) } -#[op2(async)] +#[op2(async, stack_trace)] #[number] pub async fn op_net_send_udp( state: Rc>, @@ -370,7 +370,7 @@ pub async fn op_net_set_multi_ttl_udp( Ok(()) } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub async fn op_net_connect_tcp( state: Rc>, @@ -428,7 +428,7 @@ impl Resource for UdpSocketResource { } } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_net_listen_tcp( state: &mut OpState, @@ -528,7 +528,7 @@ where Ok((rid, IpAddr::from(local_addr))) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_net_listen_udp( state: &mut OpState, @@ -543,7 +543,7 @@ where net_listen_udp::(state, addr, reuse_address, loopback) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_node_unstable_net_listen_udp( state: &mut OpState, @@ -628,7 +628,7 @@ pub struct NameServer { port: u16, } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub async fn op_dns_resolve( state: Rc>, diff --git a/ext/net/ops_tls.rs b/ext/net/ops_tls.rs index 9b967722f02a12..bde0c721dc4718 100644 --- a/ext/net/ops_tls.rs +++ b/ext/net/ops_tls.rs @@ -252,7 +252,7 @@ pub fn op_tls_cert_resolver_resolve_error( lookup.resolve(sni, Err(error)) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_tls_start( state: Rc>, @@ -341,7 +341,7 @@ where Ok((rid, IpAddr::from(local_addr), IpAddr::from(remote_addr))) } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub async fn op_net_connect_tls( state: Rc>, @@ -446,7 +446,7 @@ pub struct ListenTlsArgs { load_balanced: bool, } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_net_listen_tls( state: &mut OpState, diff --git a/ext/net/ops_unix.rs b/ext/net/ops_unix.rs index 04ae84906fba3f..483dc99b400c58 100644 --- a/ext/net/ops_unix.rs +++ b/ext/net/ops_unix.rs @@ -85,7 +85,7 @@ pub async fn op_net_accept_unix( Ok((rid, local_addr_path, remote_addr_path)) } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub async fn op_net_connect_unix( state: Rc>, @@ -118,7 +118,7 @@ where Ok((rid, local_addr_path, remote_addr_path)) } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub async fn op_net_recv_unixpacket( state: Rc>, @@ -140,7 +140,7 @@ pub async fn op_net_recv_unixpacket( Ok((nread, path)) } -#[op2(async)] +#[op2(async, stack_trace)] #[number] pub async fn op_net_send_unixpacket( state: Rc>, @@ -171,7 +171,7 @@ where Ok(nwritten) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_net_listen_unix( state: &mut OpState, @@ -222,7 +222,7 @@ where Ok((rid, pathname)) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_net_listen_unixpacket( state: &mut OpState, @@ -235,7 +235,7 @@ where net_listen_unixpacket::(state, path) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_node_unstable_net_listen_unixpacket( state: &mut OpState, diff --git a/ext/net/raw.rs b/ext/net/raw.rs index 732ebb965dad48..604878f6aa65c3 100644 --- a/ext/net/raw.rs +++ b/ext/net/raw.rs @@ -320,7 +320,7 @@ impl From for NetworkStreamAddress { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum TakeNetworkStreamError { #[class("Busy")] #[error("TCP stream is currently in use")] @@ -332,11 +332,11 @@ pub enum TakeNetworkStreamError { #[class("Busy")] #[error("Unix socket is currently in use")] UnixBusy, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] ReuniteTcp(#[from] tokio::net::tcp::ReuniteError), #[cfg(unix)] - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] ReuniteUnix(#[from] tokio::net::unix::ReuniteError), #[class(inherit)] diff --git a/ext/node/Cargo.toml b/ext/node/Cargo.toml index 9e1a3495b555fd..5e47a74e1dc352 100644 --- a/ext/node/Cargo.toml +++ b/ext/node/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_node" -version = "0.114.0" +version = "0.116.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -22,6 +22,7 @@ aes.workspace = true async-trait.workspace = true base64.workspace = true blake2 = "0.10.6" +boxed_error.workspace = true brotli.workspace = true bytes.workspace = true cbc.workspace = true @@ -53,7 +54,7 @@ http.workspace = true http-body-util.workspace = true hyper.workspace = true hyper-util.workspace = true -idna = "0.3.0" +idna = "1.0.3" indexmap.workspace = true ipnetwork = "0.20.0" k256 = "0.13.1" @@ -94,6 +95,7 @@ spki.workspace = true stable_deref_trait = "1.2.0" thiserror.workspace = true tokio.workspace = true +tokio-eld = "0.2" url.workspace = true webpki-root-certs.workspace = true winapi.workspace = true diff --git a/ext/node/ops/blocklist.rs b/ext/node/ops/blocklist.rs index 373779e1ce8153..04d32eb8af971c 100644 --- a/ext/node/ops/blocklist.rs +++ b/ext/node/ops/blocklist.rs @@ -24,8 +24,8 @@ impl deno_core::GarbageCollected for BlockListResource {} #[derive(Serialize)] struct SocketAddressSerialization(String, String); -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(GENERIC)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(generic)] pub enum BlocklistError { #[error("{0}")] AddrParse(#[from] std::net::AddrParseError), diff --git a/ext/node/ops/crypto/cipher.rs b/ext/node/ops/crypto/cipher.rs index df114d8a0c18b1..bf51ad489c59c1 100644 --- a/ext/node/ops/crypto/cipher.rs +++ b/ext/node/ops/crypto/cipher.rs @@ -47,9 +47,9 @@ pub struct DecipherContext { decipher: Rc>, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CipherContextError { - #[class(TYPE)] + #[class(type)] #[error("Cipher context is already in use")] ContextInUse, #[class(inherit)] @@ -97,9 +97,9 @@ impl CipherContext { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum DecipherContextError { - #[class(TYPE)] + #[class(type)] #[error("Decipher context is already in use")] ContextInUse, #[class(inherit)] @@ -156,21 +156,21 @@ impl Resource for DecipherContext { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CipherError { - #[class(TYPE)] + #[class(type)] #[error("IV length must be 12 bytes")] InvalidIvLength, - #[class(RANGE)] + #[class(range)] #[error("Invalid key length")] InvalidKeyLength, - #[class(TYPE)] + #[class(type)] #[error("Invalid initialization vector")] InvalidInitializationVector, - #[class(TYPE)] + #[class(type)] #[error("Cannot pad the input data")] CannotPadInputData, - #[class(TYPE)] + #[class(type)] #[error("Unknown cipher {0}")] UnknownCipher(String), } @@ -371,30 +371,30 @@ impl Cipher { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum DecipherError { - #[class(TYPE)] + #[class(type)] #[error("IV length must be 12 bytes")] InvalidIvLength, - #[class(RANGE)] + #[class(range)] #[error("Invalid key length")] InvalidKeyLength, - #[class(TYPE)] + #[class(type)] #[error("Invalid initialization vector")] InvalidInitializationVector, - #[class(TYPE)] + #[class(type)] #[error("Cannot unpad the input data")] CannotUnpadInputData, - #[class(TYPE)] + #[class(type)] #[error("Failed to authenticate data")] DataAuthenticationFailed, - #[class(TYPE)] + #[class(type)] #[error("setAutoPadding(false) not supported for Aes128Gcm yet")] SetAutoPaddingFalseAes128GcmUnsupported, - #[class(TYPE)] + #[class(type)] #[error("setAutoPadding(false) not supported for Aes256Gcm yet")] SetAutoPaddingFalseAes256GcmUnsupported, - #[class(TYPE)] + #[class(type)] #[error("Unknown cipher {0}")] UnknownCipher(String), } diff --git a/ext/node/ops/crypto/digest.rs b/ext/node/ops/crypto/digest.rs index 1e966758813690..5ab7a48f69106b 100644 --- a/ext/node/ops/crypto/digest.rs +++ b/ext/node/ops/crypto/digest.rs @@ -182,8 +182,8 @@ pub enum Hash { use Hash::*; -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(GENERIC)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(generic)] pub enum HashError { #[error("Output length mismatch for non-extendable algorithm")] OutputLengthMismatch, diff --git a/ext/node/ops/crypto/keys.rs b/ext/node/ops/crypto/keys.rs index bbe6869cae4da8..ccb2938e051973 100644 --- a/ext/node/ops/crypto/keys.rs +++ b/ext/node/ops/crypto/keys.rs @@ -364,72 +364,72 @@ impl<'a> TryFrom> for RsaPssParameters<'a> { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum X509PublicKeyError { - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] X509(#[from] X509Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Rsa(#[from] rsa::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Asn1(#[from] x509_parser::der_parser::asn1_rs::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Ec(#[from] elliptic_curve::Error), - #[class(TYPE)] + #[class(type)] #[error("unsupported ec named curve")] UnsupportedEcNamedCurve, - #[class(TYPE)] + #[class(type)] #[error("missing ec parameters")] MissingEcParameters, - #[class(TYPE)] + #[class(type)] #[error("malformed DSS public key")] MalformedDssPublicKey, - #[class(TYPE)] + #[class(type)] #[error("unsupported x509 public key type")] UnsupportedX509KeyType, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum RsaJwkError { - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Base64(#[from] base64::DecodeError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Rsa(#[from] rsa::Error), - #[class(TYPE)] + #[class(type)] #[error("missing RSA private component")] MissingRsaPrivateComponent, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum EcJwkError { - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Ec(#[from] elliptic_curve::Error), - #[class(TYPE)] + #[class(type)] #[error("unsupported curve: {0}")] UnsupportedCurve(String), } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum EdRawError { - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Ed25519Signature(#[from] ed25519_dalek::SignatureError), - #[class(TYPE)] + #[class(type)] #[error("invalid Ed25519 key")] InvalidEd25519Key, - #[class(TYPE)] + #[class(type)] #[error("unsupported curve")] UnsupportedCurve, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum AsymmetricPrivateKeyError { #[error("invalid PEM private key: not valid utf8 starting at byte {0}")] InvalidPemPrivateKeyInvalidUtf8(usize), @@ -480,84 +480,84 @@ pub enum AsymmetricPrivateKeyError { UnsupportedPrivateKeyOid, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum AsymmetricPublicKeyError { - #[class(TYPE)] + #[class(type)] #[error("invalid PEM private key: not valid utf8 starting at byte {0}")] InvalidPemPrivateKeyInvalidUtf8(usize), - #[class(TYPE)] + #[class(type)] #[error("invalid PEM public key")] InvalidPemPublicKey, - #[class(TYPE)] + #[class(type)] #[error("invalid PKCS#1 public key")] InvalidPkcs1PublicKey, #[class(inherit)] #[error(transparent)] AsymmetricPrivateKey(#[from] #[inherit] AsymmetricPrivateKeyError), - #[class(TYPE)] + #[class(type)] #[error("invalid x509 certificate")] InvalidX509Certificate, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] X509(#[from] x509_parser::nom::Err), #[class(inherit)] #[error(transparent)] X509PublicKey(#[from] #[inherit] X509PublicKeyError), - #[class(TYPE)] + #[class(type)] #[error("unsupported PEM label: {0}")] UnsupportedPemLabel(String), - #[class(TYPE)] + #[class(type)] #[error("invalid SPKI public key")] InvalidSpkiPublicKey, - #[class(TYPE)] + #[class(type)] #[error("unsupported key type: {0}")] UnsupportedKeyType(String), - #[class(TYPE)] + #[class(type)] #[error("unsupported key format: {0}")] UnsupportedKeyFormat(String), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Spki(#[from] spki::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Pkcs1(#[from] rsa::pkcs1::Error), #[class(inherit)] #[error(transparent)] RsaPssParamsParse(#[from] #[inherit] RsaPssParamsParseError), - #[class(TYPE)] + #[class(type)] #[error("malformed DSS public key")] MalformedDssPublicKey, - #[class(TYPE)] + #[class(type)] #[error("malformed or missing named curve in ec parameters")] MalformedOrMissingNamedCurveInEcParameters, - #[class(TYPE)] + #[class(type)] #[error("malformed or missing public key in ec spki")] MalformedOrMissingPublicKeyInEcSpki, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Ec(#[from] elliptic_curve::Error), - #[class(TYPE)] + #[class(type)] #[error("unsupported ec named curve")] UnsupportedEcNamedCurve, - #[class(TYPE)] + #[class(type)] #[error("malformed or missing public key in x25519 spki")] MalformedOrMissingPublicKeyInX25519Spki, - #[class(TYPE)] + #[class(type)] #[error("x25519 public key is too short")] X25519PublicKeyIsTooShort, - #[class(TYPE)] + #[class(type)] #[error("invalid Ed25519 public key")] InvalidEd25519PublicKey, - #[class(TYPE)] + #[class(type)] #[error("missing dh parameters")] MissingDhParameters, - #[class(TYPE)] + #[class(type)] #[error("malformed dh parameters")] MalformedDhParameters, - #[class(TYPE)] + #[class(type)] #[error("malformed or missing public key in dh spki")] MalformedOrMissingPublicKeyInDhSpki, - #[class(TYPE)] + #[class(type)] #[error("unsupported private key oid")] UnsupportedPrivateKeyOid, } @@ -1076,8 +1076,8 @@ impl KeyObjectHandle { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum RsaPssParamsParseError { #[error("malformed pss private key parameters")] MalformedPssPrivateKeyParameters, @@ -1152,8 +1152,8 @@ fn bytes_to_b64(bytes: &[u8]) -> String { BASE64_URL_SAFE_NO_PAD.encode(bytes) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum AsymmetricPublicKeyJwkError { #[error("key is not an asymmetric public key")] KeyIsNotAsymmetricPublicKey, @@ -1163,8 +1163,8 @@ pub enum AsymmetricPublicKeyJwkError { JwkExportNotImplementedForKeyType, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum AsymmetricPublicKeyDerError { #[error("key is not an asymmetric public key")] KeyIsNotAsymmetricPublicKey, @@ -1349,8 +1349,8 @@ impl AsymmetricPublicKey { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum AsymmetricPrivateKeyDerError { #[error("key is not an asymmetric private key")] KeyIsNotAsymmetricPrivateKey, @@ -1362,7 +1362,7 @@ pub enum AsymmetricPrivateKeyDerError { InvalidEcPrivateKey, #[error("exporting non-EC private key as SEC1 is not supported")] ExportingNonEcPrivateKeyAsSec1Unsupported, - #[class(TYPE)] + #[class(type)] #[error("exporting RSA-PSS private key as PKCS#8 is not supported yet")] ExportingNonRsaPssPrivateKeyAsPkcs8Unsupported, #[error("invalid DSA private key")] @@ -1874,8 +1874,8 @@ pub async fn op_node_generate_rsa_key_async( .unwrap() } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] #[error("digest not allowed for RSA-PSS keys{}", .0.as_ref().map(|digest| format!(": {digest}")).unwrap_or_default())] pub struct GenerateRsaPssError(Option); @@ -2290,15 +2290,15 @@ pub fn op_node_export_public_key_jwk( public_key.export_jwk() } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ExportPublicKeyPemError { #[class(inherit)] #[error(transparent)] AsymmetricPublicKeyDer(#[from] #[inherit] AsymmetricPublicKeyDerError), - #[class(TYPE)] + #[class(type)] #[error("very large data")] VeryLargeData, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Der(#[from] der::Error), } @@ -2343,15 +2343,15 @@ pub fn op_node_export_public_key_der( public_key.export_der(typ) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ExportPrivateKeyPemError { #[class(inherit)] #[error(transparent)] AsymmetricPublicKeyDer(#[from] #[inherit] AsymmetricPrivateKeyDerError), - #[class(TYPE)] + #[class(type)] #[error("very large data")] VeryLargeData, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Der(#[from] der::Error), } diff --git a/ext/node/ops/crypto/mod.rs b/ext/node/ops/crypto/mod.rs index 7225886e474395..5dc30933be2930 100644 --- a/ext/node/ops/crypto/mod.rs +++ b/ext/node/ops/crypto/mod.rs @@ -140,21 +140,21 @@ pub fn op_node_hash_clone( hasher.clone_inner(output_length.map(|l| l as usize)) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum PrivateEncryptDecryptError { - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Pkcs8(#[from] pkcs8::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Spki(#[from] spki::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Utf8(#[from] std::str::Utf8Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Rsa(#[from] rsa::Error), - #[class(TYPE)] + #[class(type)] #[error("Unknown padding")] UnknownPadding, } @@ -407,9 +407,9 @@ pub fn op_node_verify( ) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum Pbkdf2Error { - #[class(TYPE)] + #[class(type)] #[error("unsupported digest: {0}")] UnsupportedDigest(String), #[class(inherit)] @@ -481,15 +481,15 @@ pub async fn op_node_fill_random_async(#[smi] len: i32) -> ToJsBuffer { .unwrap() } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum HkdfError { - #[class(TYPE)] + #[class(type)] #[error("expected secret key")] ExpectedSecretKey, - #[class(TYPE)] + #[class(type)] #[error("HKDF-Expand failed")] HkdfExpandFailed, - #[class(TYPE)] + #[class(type)] #[error("Unsupported digest: {0}")] UnsupportedDigest(String), #[class(inherit)] @@ -630,7 +630,7 @@ pub fn op_node_scrypt_sync( ) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ScryptAsyncError { #[class(inherit)] #[error(transparent)] @@ -670,15 +670,15 @@ pub async fn op_node_scrypt_async( .await? } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum EcdhEncodePubKey { - #[class(TYPE)] + #[class(type)] #[error("Invalid public key")] InvalidPublicKey, - #[class(TYPE)] + #[class(type)] #[error("Unsupported curve")] UnsupportedCurve, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Sec1(#[from] sec1::Error), } @@ -928,8 +928,8 @@ pub async fn op_node_gen_prime_async( spawn_blocking(move || gen_prime(size)).await } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum DiffieHellmanError { #[error("Expected private key")] ExpectedPrivateKey, @@ -1021,8 +1021,8 @@ pub fn op_node_diffie_hellman( Ok(res) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum SignEd25519Error { #[error("Expected private key")] ExpectedPrivateKey, @@ -1054,8 +1054,8 @@ pub fn op_node_sign_ed25519( Ok(()) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum VerifyEd25519Error { #[error("Expected public key")] ExpectedPublicKey, diff --git a/ext/node/ops/crypto/sign.rs b/ext/node/ops/crypto/sign.rs index ee7644c222f31a..93d5cc55254c8f 100644 --- a/ext/node/ops/crypto/sign.rs +++ b/ext/node/ops/crypto/sign.rs @@ -39,8 +39,8 @@ where } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(TYPE)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum KeyObjectHandlePrehashedSignAndVerifyError { #[error("invalid DSA signature encoding")] InvalidDsaSignatureEncoding, @@ -48,12 +48,12 @@ pub enum KeyObjectHandlePrehashedSignAndVerifyError { KeyIsNotPrivate, #[error("digest not allowed for RSA signature: {0}")] DigestNotAllowedForRsaSignature(String), - #[class(GENERIC)] + #[class(generic)] #[error("failed to sign digest with RSA")] FailedToSignDigestWithRsa, #[error("digest not allowed for RSA-PSS signature: {0}")] DigestNotAllowedForRsaPssSignature(String), - #[class(GENERIC)] + #[class(generic)] #[error("failed to sign digest with RSA-PSS")] FailedToSignDigestWithRsaPss, #[error("failed to sign digest with DSA")] diff --git a/ext/node/ops/crypto/x509.rs b/ext/node/ops/crypto/x509.rs index 8ffc380f08ec05..96fd1612f7b07d 100644 --- a/ext/node/ops/crypto/x509.rs +++ b/ext/node/ops/crypto/x509.rs @@ -61,7 +61,7 @@ impl<'a> Deref for CertificateView<'a> { } } -deno_core::js_error_wrapper!(X509Error, JsX509Error, "Error"); +deno_error::js_error_wrapper!(X509Error, JsX509Error, "Error"); #[op2] #[cppgc] diff --git a/ext/node/ops/fs.rs b/ext/node/ops/fs.rs index d0e54a6195244f..7ab00a4747d735 100644 --- a/ext/node/ops/fs.rs +++ b/ext/node/ops/fs.rs @@ -10,7 +10,7 @@ use serde::Serialize; use crate::NodePermissions; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum FsError { #[class(inherit)] #[error(transparent)] @@ -19,11 +19,11 @@ pub enum FsError { #[error("{0}")] Io(#[from] #[inherit] std::io::Error), #[cfg(windows)] - #[class(GENERIC)] + #[class(generic)] #[error("Path has no root.")] PathHasNoRoot, #[cfg(not(any(unix, windows)))] - #[class(GENERIC)] + #[class(generic)] #[error("Unsupported platform.")] UnsupportedPlatform, #[class(inherit)] @@ -31,7 +31,7 @@ pub enum FsError { Fs(#[from] #[inherit] deno_io::fs::FsError), } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_node_fs_exists_sync

( state: &mut OpState, #[string] path: String, @@ -46,7 +46,7 @@ where Ok(fs.exists_sync(&path)) } -#[op2(async)] +#[op2(async, stack_trace)] pub async fn op_node_fs_exists

( state: Rc>, #[string] path: String, @@ -65,7 +65,7 @@ where Ok(fs.exists_async(path).await?) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_node_cp_sync

( state: &mut OpState, #[string] path: &str, @@ -86,7 +86,7 @@ where Ok(()) } -#[op2(async)] +#[op2(async, stack_trace)] pub async fn op_node_cp

( state: Rc>, #[string] path: String, @@ -122,7 +122,7 @@ pub struct StatFs { pub ffree: u64, } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_node_statfs

( state: Rc>, @@ -263,7 +263,7 @@ where } } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_node_lutimes_sync

( state: &mut OpState, #[string] path: &str, @@ -284,7 +284,7 @@ where Ok(()) } -#[op2(async)] +#[op2(async, stack_trace)] pub async fn op_node_lutimes

( state: Rc>, #[string] path: String, @@ -310,7 +310,7 @@ where Ok(()) } -#[op2] +#[op2(stack_trace)] pub fn op_node_lchown_sync

( state: &mut OpState, #[string] path: String, @@ -328,7 +328,7 @@ where Ok(()) } -#[op2(async)] +#[op2(async, stack_trace)] pub async fn op_node_lchown

( state: Rc>, #[string] path: String, diff --git a/ext/node/ops/http.rs b/ext/node/ops/http.rs index 604892c60fa5f4..ae482484410dc3 100644 --- a/ext/node/ops/http.rs +++ b/ext/node/ops/http.rs @@ -50,7 +50,7 @@ use deno_core::error::JsNativeError; use tokio::io::AsyncReadExt; use tokio::io::AsyncWriteExt; -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_node_http_request

( state: &mut OpState, diff --git a/ext/node/ops/http2.rs b/ext/node/ops/http2.rs index 4022aa18a719b9..0f0e240f651e69 100644 --- a/ext/node/ops/http2.rs +++ b/ext/node/ops/http2.rs @@ -110,7 +110,7 @@ impl Resource for Http2ServerSendResponse { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum Http2Error { #[class(inherit)] #[error(transparent)] @@ -118,7 +118,7 @@ pub enum Http2Error { #[class(inherit)] #[error(transparent)] UrlParse(#[from] #[inherit] url::ParseError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] H2(#[from] h2::Error), #[class(inherit)] diff --git a/ext/node/ops/idna.rs b/ext/node/ops/idna.rs index 0a38625fc7978f..f7642e2010f531 100644 --- a/ext/node/ops/idna.rs +++ b/ext/node/ops/idna.rs @@ -9,20 +9,20 @@ use std::borrow::Cow; const PUNY_PREFIX: &str = "xn--"; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum IdnaError { - #[class(RANGE)] + #[class(range)] #[error("Invalid input")] InvalidInput, - #[class(GENERIC)] + #[class(generic)] #[error("Input would take more than 63 characters to encode")] InputTooLong, - #[class(RANGE)] + #[class(range)] #[error("Illegal input >= 0x80 (not a basic code point)")] IllegalInput, } -deno_core::js_error_wrapper!(idna::Errors, JsIdnaErrors, "Error"); +deno_error::js_error_wrapper!(idna::Errors, JsIdnaErrors, "Error"); /// map a domain by mapping each label with the given function fn map_domain( diff --git a/ext/node/ops/inspector.rs b/ext/node/ops/inspector.rs index 78a57ea4e3dc79..ebe332e1b7a031 100644 --- a/ext/node/ops/inspector.rs +++ b/ext/node/ops/inspector.rs @@ -84,12 +84,12 @@ struct JSInspectorSession { impl GarbageCollected for JSInspectorSession {} -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum InspectorConnectError { #[class(inherit)] #[error(transparent)] Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), - #[class(GENERIC)] + #[class(generic)] #[error("connectToMainThread not supported")] ConnectToMainThreadUnsupported, } diff --git a/ext/node/ops/ipc.rs b/ext/node/ops/ipc.rs index e372787caa9fe9..bfd0b06c7610c0 100644 --- a/ext/node/ops/ipc.rs +++ b/ext/node/ops/ipc.rs @@ -179,7 +179,7 @@ mod impl_ { )) } - #[derive(Debug, thiserror::Error, deno_core::JsError)] + #[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum IpcError { #[class(inherit)] #[error(transparent)] @@ -473,12 +473,12 @@ mod impl_ { } } - #[derive(Debug, thiserror::Error, deno_core::JsError)] + #[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum IpcJsonStreamError { #[class(inherit)] #[error("{0}")] Io(#[source] #[inherit] std::io::Error), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] SimdJson(#[source] simd_json::Error), } diff --git a/ext/node/ops/mod.rs b/ext/node/ops/mod.rs index b53f19dc23c548..e5ea8b41722161 100644 --- a/ext/node/ops/mod.rs +++ b/ext/node/ops/mod.rs @@ -10,6 +10,7 @@ pub mod idna; pub mod inspector; pub mod ipc; pub mod os; +pub mod perf_hooks; pub mod process; pub mod require; pub mod tls; diff --git a/ext/node/ops/os/mod.rs b/ext/node/ops/os/mod.rs index f97e3b7e5f6b5d..1917798a63a02a 100644 --- a/ext/node/ops/os/mod.rs +++ b/ext/node/ops/os/mod.rs @@ -10,7 +10,7 @@ use deno_permissions::PermissionCheckError; mod cpus; pub mod priority; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum OsError { #[class(inherit)] #[error(transparent)] @@ -18,7 +18,7 @@ pub enum OsError { #[class(inherit)] #[error(transparent)] Permission(#[from] #[inherit] PermissionCheckError), - #[class(TYPE)] + #[class(type)] #[error("Failed to get cpu info")] FailedToGetCpuInfo, #[class(inherit)] @@ -26,7 +26,7 @@ pub enum OsError { FailedToGetUserInfo(#[source] #[inherit] std::io::Error), } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_node_os_get_priority

( state: &mut OpState, pid: u32, @@ -42,7 +42,7 @@ where priority::get_priority(pid).map_err(OsError::Priority) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_node_os_set_priority

( state: &mut OpState, pid: u32, @@ -198,7 +198,7 @@ fn get_user_info(_uid: u32) -> Result { }) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_node_os_user_info

( state: &mut OpState, @@ -217,7 +217,7 @@ where get_user_info(uid) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_geteuid

( state: &mut OpState, ) -> Result @@ -238,7 +238,7 @@ where Ok(euid) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_getegid

( state: &mut OpState, ) -> Result @@ -259,7 +259,7 @@ where Ok(egid) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_cpus

(state: &mut OpState) -> Result, OsError> where @@ -273,7 +273,7 @@ where cpus::cpu_info().ok_or(OsError::FailedToGetCpuInfo) } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_homedir

( state: &mut OpState, diff --git a/ext/node/ops/os/priority.rs b/ext/node/ops/os/priority.rs index 9c89dfbcb69e73..75068a8ef36d72 100644 --- a/ext/node/ops/os/priority.rs +++ b/ext/node/ops/os/priority.rs @@ -2,13 +2,13 @@ pub use impl_::*; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum PriorityError { #[class(inherit)] #[error("{0}")] Io(#[from] #[inherit] std::io::Error), #[cfg(windows)] - #[class(TYPE)] + #[class(type)] #[error("Invalid priority")] InvalidPriority, } diff --git a/ext/node/ops/perf_hooks.rs b/ext/node/ops/perf_hooks.rs new file mode 100644 index 00000000000000..636d0b2adbb6b0 --- /dev/null +++ b/ext/node/ops/perf_hooks.rs @@ -0,0 +1,135 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +use deno_core::op2; +use deno_core::GarbageCollected; + +use std::cell::Cell; + +#[derive(Debug, thiserror::Error)] +pub enum PerfHooksError { + #[error(transparent)] + TokioEld(#[from] tokio_eld::Error), +} + +pub struct EldHistogram { + eld: tokio_eld::EldHistogram, + started: Cell, +} + +impl GarbageCollected for EldHistogram {} + +#[op2] +impl EldHistogram { + // Creates an interval EldHistogram object that samples and reports the event + // loop delay over time. + // + // The delays will be reported in nanoseconds. + #[constructor] + #[cppgc] + pub fn new(#[smi] resolution: u32) -> Result { + Ok(EldHistogram { + eld: tokio_eld::EldHistogram::new(resolution as usize)?, + started: Cell::new(false), + }) + } + + // Disables the update interval timer. + // + // Returns true if the timer was stopped, false if it was already stopped. + #[fast] + fn enable(&self) -> bool { + if self.started.get() { + return false; + } + + self.eld.start(); + self.started.set(true); + + true + } + + // Enables the update interval timer. + // + // Returns true if the timer was started, false if it was already started. + #[fast] + fn disable(&self) -> bool { + if !self.started.get() { + return false; + } + + self.eld.stop(); + self.started.set(false); + + true + } + + // Returns the value at the given percentile. + // + // `percentile` ∈ (0, 100] + #[fast] + #[number] + fn percentile(&self, percentile: f64) -> u64 { + self.eld.value_at_percentile(percentile) + } + + // Returns the value at the given percentile as a bigint. + #[fast] + #[bigint] + fn percentile_big_int(&self, percentile: f64) -> u64 { + self.eld.value_at_percentile(percentile) + } + + // The number of samples recorded by the histogram. + #[getter] + #[number] + fn count(&self) -> u64 { + self.eld.len() + } + + // The number of samples recorded by the histogram as a bigint. + #[getter] + #[bigint] + fn count_big_int(&self) -> u64 { + self.eld.len() + } + + // The maximum recorded event loop delay. + #[getter] + #[number] + fn max(&self) -> u64 { + self.eld.max() + } + + // The maximum recorded event loop delay as a bigint. + #[getter] + #[bigint] + fn max_big_int(&self) -> u64 { + self.eld.max() + } + + // The mean of the recorded event loop delays. + #[getter] + fn mean(&self) -> f64 { + self.eld.mean() + } + + // The minimum recorded event loop delay. + #[getter] + #[number] + fn min(&self) -> u64 { + self.eld.min() + } + + // The minimum recorded event loop delay as a bigint. + #[getter] + #[bigint] + fn min_big_int(&self) -> u64 { + self.eld.min() + } + + // The standard deviation of the recorded event loop delays. + #[getter] + fn stddev(&self) -> f64 { + self.eld.stdev() + } +} diff --git a/ext/node/ops/process.rs b/ext/node/ops/process.rs index cd6ce70803ec49..f1680fdc8f1af3 100644 --- a/ext/node/ops/process.rs +++ b/ext/node/ops/process.rs @@ -45,7 +45,7 @@ fn kill(pid: i32, _sig: i32) -> i32 { } } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_node_process_kill( state: &mut OpState, #[smi] pid: i32, diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index 6f458021a0dd3c..73c8a8eb2415cc 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -42,10 +42,10 @@ where loader.ensure_read_permission(permissions, file_path) } -#[derive(Debug, Boxed, deno_core::JsError)] +#[derive(Debug, Boxed, deno_error::JsError)] pub struct RequireError(pub Box); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum RequireErrorKind { #[class(inherit)] #[error(transparent)] @@ -53,26 +53,26 @@ pub enum RequireErrorKind { #[class(inherit)] #[error(transparent)] Permission(#[from] #[inherit] PermissionCheckError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] PackageExportsResolve( #[from] node_resolver::errors::PackageExportsResolveError, ), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] PackageJsonLoad(#[from] node_resolver::errors::PackageJsonLoadError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] ClosestPkgJson(#[from] node_resolver::errors::ClosestPkgJsonError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] PackageImportsResolve( #[from] node_resolver::errors::PackageImportsResolveError, ), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] FilePathConversion(#[from] deno_path_util::UrlToFilePathError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] UrlConversion(#[from] deno_path_util::PathToUrlError), #[class(inherit)] @@ -582,7 +582,7 @@ where })) } -deno_core::js_error_wrapper!(node_resolver::errors::ClosestPkgJsonError, JsClosestPkgJsonError, "Error"); +deno_error::js_error_wrapper!(node_resolver::errors::ClosestPkgJsonError, JsClosestPkgJsonError, "Error"); #[op2(fast)] pub fn op_require_is_maybe_cjs( diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index 4136bc56e70af4..1223a04cabc685 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -24,7 +24,7 @@ where loader.ensure_read_permission(permissions, file_path) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum WorkerThreadsFilenameError { #[class(inherit)] #[error(transparent)] @@ -32,19 +32,19 @@ pub enum WorkerThreadsFilenameError { #[class(inherit)] #[error("{0}")] UrlParse(#[from] #[inherit] url::ParseError), - #[class(GENERIC)] + #[class(generic)] #[error("Relative path entries must start with '.' or '..'")] InvalidRelativeUrl, - #[class(GENERIC)] + #[class(generic)] #[error("URL from Path-String")] UrlFromPathString, - #[class(GENERIC)] + #[class(generic)] #[error("URL to Path-String")] UrlToPathString, - #[class(GENERIC)] + #[class(generic)] #[error("URL to Path")] UrlToPath, - #[class(GENERIC)] + #[class(generic)] #[error("File not found [{0:?}]")] FileNotFound(PathBuf), #[class(inherit)] @@ -53,7 +53,7 @@ pub enum WorkerThreadsFilenameError { } // todo(dsherret): we should remove this and do all this work inside op_create_worker -#[op2] +#[op2(stack_trace)] #[string] pub fn op_worker_threads_filename

( state: &mut OpState, diff --git a/ext/node/ops/zlib/brotli.rs b/ext/node/ops/zlib/brotli.rs index 45cb89944a0a07..b8a2630f92ef4d 100644 --- a/ext/node/ops/zlib/brotli.rs +++ b/ext/node/ops/zlib/brotli.rs @@ -17,15 +17,15 @@ use deno_core::ToJsBuffer; use std::cell::RefCell; use std::io::Read; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum BrotliError { - #[class(TYPE)] + #[class(type)] #[error("Invalid encoder mode")] InvalidEncoderMode, - #[class(TYPE)] + #[class(type)] #[error("Failed to compress")] CompressFailed, - #[class(TYPE)] + #[class(type)] #[error("Failed to decompress")] DecompressFailed, #[class(inherit)] diff --git a/ext/node/ops/zlib/mod.rs b/ext/node/ops/zlib/mod.rs index 0b0a2ba12c064e..cba3b449c1953d 100644 --- a/ext/node/ops/zlib/mod.rs +++ b/ext/node/ops/zlib/mod.rs @@ -1,6 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use deno_core::op2; +use libc::c_ulong; use std::borrow::Cow; use std::cell::RefCell; use deno_core::error::JsNativeError; @@ -257,9 +258,9 @@ pub fn op_zlib_new(#[smi] mode: i32) -> Result { }) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ZlibError { - #[class(TYPE)] + #[class(type)] #[error("zlib not initialized")] NotInitialized, #[class(inherit)] @@ -385,6 +386,15 @@ pub fn op_zlib_close_if_pending( Ok(()) } +#[op2(fast)] +#[smi] +pub fn op_zlib_crc32(#[buffer] data: &[u8], #[smi] value: u32) -> u32 { + // SAFETY: `data` is a valid buffer. + unsafe { + zlib::crc32(value as c_ulong, data.as_ptr(), data.len() as u32) as u32 + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/ext/node/ops/zlib/mode.rs b/ext/node/ops/zlib/mode.rs index ecd9bc300a2d87..c35ee3b8764229 100644 --- a/ext/node/ops/zlib/mode.rs +++ b/ext/node/ops/zlib/mode.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(GENERIC)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(generic)] #[error("bad argument")] pub struct ModeError; diff --git a/ext/node/polyfills/01_require.js b/ext/node/polyfills/01_require.js index d818bb57278b50..df73cad6b7ddc2 100644 --- a/ext/node/polyfills/01_require.js +++ b/ext/node/polyfills/01_require.js @@ -11,6 +11,7 @@ import { op_require_can_parse_as_esm, op_require_init_paths, op_require_is_deno_dir_package, + op_require_is_maybe_cjs, op_require_is_request_relative, op_require_node_module_paths, op_require_package_imports_resolve, @@ -19,7 +20,6 @@ import { op_require_path_is_absolute, op_require_path_resolve, op_require_proxy_path, - op_require_read_closest_package_json, op_require_read_file, op_require_read_package_scope, op_require_real_path, @@ -1061,44 +1061,38 @@ Module.prototype._compile = function (content, filename, format) { }; Module._extensions[".js"] = function (module, filename) { - const content = op_require_read_file(filename); - - let format; - if (StringPrototypeEndsWith(filename, ".js")) { - const pkg = op_require_read_closest_package_json(filename); - if (pkg?.type === "module") { - format = "module"; - } else if (pkg?.type === "commonjs") { - format = "commonjs"; - } + // We don't define everything on Module.extensions in + // order to prevent probing for these files + if ( + StringPrototypeEndsWith(filename, ".js") || + StringPrototypeEndsWith(filename, ".ts") || + StringPrototypeEndsWith(filename, ".jsx") || + StringPrototypeEndsWith(filename, ".tsx") + ) { + return loadMaybeCjs(module, filename); + } else if (StringPrototypeEndsWith(filename, ".mts")) { + return loadESMFromCJS(module, filename); + } else if (StringPrototypeEndsWith(filename, ".cts")) { + return loadCjs(module, filename); + } else { + return loadMaybeCjs(module, filename); } - - module._compile(content, filename, format); }; -Module._extensions[".ts"] = - Module._extensions[".jsx"] = - Module._extensions[".tsx"] = - function (module, filename) { - const content = op_require_read_file(filename); - - let format; - const pkg = op_require_read_closest_package_json(filename); - if (pkg?.type === "module") { - format = "module"; - } else if (pkg?.type === "commonjs") { - format = "commonjs"; - } +Module._extensions[".cjs"] = loadCjs; +Module._extensions[".mjs"] = loadESMFromCJS; +Module._extensions[".wasm"] = loadESMFromCJS; - module._compile(content, filename, format); - }; +function loadMaybeCjs(module, filename) { + const content = op_require_read_file(filename); + const format = op_require_is_maybe_cjs(filename) ? undefined : "module"; + module._compile(content, filename, format); +} -Module._extensions[".cjs"] = - Module._extensions[".cts"] = - function (module, filename) { - const content = op_require_read_file(filename); - module._compile(content, filename, "commonjs"); - }; +function loadCjs(module, filename) { + const content = op_require_read_file(filename); + module._compile(content, filename, "commonjs"); +} function loadESMFromCJS(module, filename, code) { const namespace = op_import_sync( @@ -1109,13 +1103,6 @@ function loadESMFromCJS(module, filename, code) { module.exports = namespace; } -Module._extensions[".mjs"] = Module._extensions[".mts"] = function ( - module, - filename, -) { - loadESMFromCJS(module, filename); -}; - function stripBOM(content) { if (StringPrototypeCharCodeAt(content, 0) === 0xfeff) { content = StringPrototypeSlice(content, 1); @@ -1233,6 +1220,24 @@ function isBuiltin(moduleName) { !StringPrototypeStartsWith(moduleName, "internal/"); } +function getBuiltinModule(id) { + if (!isBuiltin(id)) { + return undefined; + } + + if (StringPrototypeStartsWith(id, "node:")) { + // Slice 'node:' prefix + id = StringPrototypeSlice(id, 5); + } + + const mod = loadNativeModule(id, id); + if (mod) { + return mod.exports; + } + + return undefined; +} + Module.isBuiltin = isBuiltin; Module.createRequire = createRequire; @@ -1327,7 +1332,7 @@ export function register(_specifier, _parentUrl, _options) { return undefined; } -export { builtinModules, createRequire, isBuiltin, Module }; +export { builtinModules, createRequire, getBuiltinModule, isBuiltin, Module }; export const _cache = Module._cache; export const _extensions = Module._extensions; export const _findPath = Module._findPath; diff --git a/ext/node/polyfills/_fs/_fs_readFile.ts b/ext/node/polyfills/_fs/_fs_readFile.ts index cf7e0305d82100..029e57c5029e0c 100644 --- a/ext/node/polyfills/_fs/_fs_readFile.ts +++ b/ext/node/polyfills/_fs/_fs_readFile.ts @@ -88,7 +88,7 @@ export function readFile( } const buffer = maybeDecode(data, encoding); (cb as BinaryCallback)(null, buffer); - }, (err) => cb && cb(denoErrorToNodeError(err))); + }, (err) => cb && cb(denoErrorToNodeError(err, { path, syscall: "open" }))); } } @@ -122,7 +122,7 @@ export function readFileSync( try { data = Deno.readFileSync(path); } catch (err) { - throw denoErrorToNodeError(err); + throw denoErrorToNodeError(err, { path, syscall: "open" }); } const encoding = getEncoding(opt); if (encoding && encoding !== "binary") { diff --git a/ext/node/polyfills/_fs/_fs_stat.ts b/ext/node/polyfills/_fs/_fs_stat.ts index d00c81ffb69888..507cb05eaf52f3 100644 --- a/ext/node/polyfills/_fs/_fs_stat.ts +++ b/ext/node/polyfills/_fs/_fs_stat.ts @@ -290,8 +290,8 @@ export function convertFileInfoToStats(origin: Deno.FileInfo): Stats { isFIFO: () => false, isCharacterDevice: () => false, isSocket: () => false, - ctime: origin.mtime, - ctimeMs: origin.mtime?.getTime() || null, + ctime: origin.ctime, + ctimeMs: origin.ctime?.getTime() || null, }); return stats; @@ -336,9 +336,9 @@ export function convertFileInfoToBigIntStats( isFIFO: () => false, isCharacterDevice: () => false, isSocket: () => false, - ctime: origin.mtime, - ctimeMs: origin.mtime ? BigInt(origin.mtime.getTime()) : null, - ctimeNs: origin.mtime ? BigInt(origin.mtime.getTime()) * 1000000n : null, + ctime: origin.ctime, + ctimeMs: origin.ctime ? BigInt(origin.ctime.getTime()) : null, + ctimeNs: origin.ctime ? BigInt(origin.ctime.getTime()) * 1000000n : null, }); return stats; } diff --git a/ext/node/polyfills/_utils.ts b/ext/node/polyfills/_utils.ts index b50c113e14f3eb..79d84e00f0c874 100644 --- a/ext/node/polyfills/_utils.ts +++ b/ext/node/polyfills/_utils.ts @@ -17,6 +17,7 @@ const { import { TextDecoder, TextEncoder } from "ext:deno_web/08_text_encoding.js"; import { errorMap } from "ext:deno_node/internal_binding/uv.ts"; import { codes } from "ext:deno_node/internal/error_codes.ts"; +import { ERR_NOT_IMPLEMENTED } from "ext:deno_node/internal/errors.ts"; export type BinaryEncodings = "binary"; @@ -34,8 +35,7 @@ export type TextEncodings = export type Encodings = BinaryEncodings | TextEncodings; export function notImplemented(msg: string): never { - const message = msg ? `Not implemented: ${msg}` : "Not implemented"; - throw new Error(message); + throw new ERR_NOT_IMPLEMENTED(msg); } export function warnNotImplemented(msg?: string) { diff --git a/ext/node/polyfills/internal/crypto/keygen.ts b/ext/node/polyfills/internal/crypto/keygen.ts index 44bfd832776ef2..b023ab1060c010 100644 --- a/ext/node/polyfills/internal/crypto/keygen.ts +++ b/ext/node/polyfills/internal/crypto/keygen.ts @@ -30,6 +30,7 @@ import { import { Buffer } from "node:buffer"; import { KeyFormat, KeyType } from "ext:deno_node/internal/crypto/types.ts"; import process from "node:process"; +import { promisify } from "node:util"; import { op_node_generate_dh_group_key, @@ -570,7 +571,15 @@ export function generateKeyPair( privateKey: any, ) => void, ) { - createJob(kAsync, type, options).then((pair) => { + _generateKeyPair(type, options) + .then( + (res) => callback(null, res.publicKey, res.privateKey), + (err) => callback(err, null, null), + ); +} + +function _generateKeyPair(type: string, options: unknown) { + return createJob(kAsync, type, options).then((pair) => { const privateKeyHandle = op_node_get_private_key_from_pair(pair); const publicKeyHandle = op_node_get_public_key_from_pair(pair); @@ -589,12 +598,15 @@ export function generateKeyPair( } } - callback(null, publicKey, privateKey); - }).catch((err) => { - callback(err, null, null); + return { publicKey, privateKey }; }); } +Object.defineProperty(generateKeyPair, promisify.custom, { + enumerable: false, + value: _generateKeyPair, +}); + export interface KeyPairKeyObjectResult { publicKey: KeyObject; privateKey: KeyObject; diff --git a/ext/node/polyfills/internal/errors.ts b/ext/node/polyfills/internal/errors.ts index 5a3d4437a177dd..61b53fa968f1fc 100644 --- a/ext/node/polyfills/internal/errors.ts +++ b/ext/node/polyfills/internal/errors.ts @@ -18,7 +18,7 @@ */ import { primordials } from "ext:core/mod.js"; -const { JSONStringify, SymbolFor } = primordials; +const { JSONStringify, SafeArrayIterator, SymbolFor } = primordials; import { format, inspect } from "ext:deno_node/internal/util/inspect.mjs"; import { codes } from "ext:deno_node/internal/error_codes.ts"; import { @@ -1874,6 +1874,11 @@ export class ERR_SOCKET_CLOSED extends NodeError { super("ERR_SOCKET_CLOSED", `Socket is closed`); } } +export class ERR_SOCKET_CONNECTION_TIMEOUT extends NodeError { + constructor() { + super("ERR_SOCKET_CONNECTION_TIMEOUT", `Socket connection timeout`); + } +} export class ERR_SOCKET_DGRAM_IS_CONNECTED extends NodeError { constructor() { super("ERR_SOCKET_DGRAM_IS_CONNECTED", `Already connected`); @@ -2385,6 +2390,15 @@ export class ERR_INVALID_RETURN_VALUE extends NodeTypeError { } } +export class ERR_NOT_IMPLEMENTED extends NodeError { + constructor(message?: string) { + super( + "ERR_NOT_IMPLEMENTED", + message ? `Not implemented: ${message}` : "Not implemented", + ); + } +} + export class ERR_INVALID_URL extends NodeTypeError { input: string; constructor(input: string) { @@ -2633,11 +2647,30 @@ export function aggregateTwoErrors( } return innerError || outerError; } + +export class NodeAggregateError extends AggregateError { + code: string; + constructor(errors, message) { + super(new SafeArrayIterator(errors), message); + this.code = errors[0]?.code; + } + + get [kIsNodeError]() { + return true; + } + + // deno-lint-ignore adjacent-overload-signatures + get ["constructor"]() { + return AggregateError; + } +} + codes.ERR_IPC_CHANNEL_CLOSED = ERR_IPC_CHANNEL_CLOSED; codes.ERR_INVALID_ARG_TYPE = ERR_INVALID_ARG_TYPE; codes.ERR_INVALID_ARG_VALUE = ERR_INVALID_ARG_VALUE; codes.ERR_OUT_OF_RANGE = ERR_OUT_OF_RANGE; codes.ERR_SOCKET_BAD_PORT = ERR_SOCKET_BAD_PORT; +codes.ERR_SOCKET_CONNECTION_TIMEOUT = ERR_SOCKET_CONNECTION_TIMEOUT; codes.ERR_BUFFER_OUT_OF_BOUNDS = ERR_BUFFER_OUT_OF_BOUNDS; codes.ERR_UNKNOWN_ENCODING = ERR_UNKNOWN_ENCODING; codes.ERR_PARSE_ARGS_INVALID_OPTION_VALUE = ERR_PARSE_ARGS_INVALID_OPTION_VALUE; @@ -2838,6 +2871,7 @@ export default { ERR_INVALID_SYNC_FORK_INPUT, ERR_INVALID_THIS, ERR_INVALID_TUPLE, + ERR_NOT_IMPLEMENTED, ERR_INVALID_URI, ERR_INVALID_URL, ERR_INVALID_URL_SCHEME, diff --git a/ext/node/polyfills/internal/net.ts b/ext/node/polyfills/internal/net.ts index 144612626f7f1b..a3dcb3ed2159b1 100644 --- a/ext/node/polyfills/internal/net.ts +++ b/ext/node/polyfills/internal/net.ts @@ -95,4 +95,5 @@ export function makeSyncWrite(fd: number) { }; } +export const kReinitializeHandle = Symbol("kReinitializeHandle"); export const normalizedArgsSymbol = Symbol("normalizedArgs"); diff --git a/ext/node/polyfills/internal_binding/uv.ts b/ext/node/polyfills/internal_binding/uv.ts index aa468a0a583b07..6cd70a7e85288e 100644 --- a/ext/node/polyfills/internal_binding/uv.ts +++ b/ext/node/polyfills/internal_binding/uv.ts @@ -530,10 +530,12 @@ export function mapSysErrnoToUvErrno(sysErrno: number): number { export const UV_EAI_MEMORY = codeMap.get("EAI_MEMORY")!; export const UV_EBADF = codeMap.get("EBADF")!; +export const UV_ECANCELED = codeMap.get("ECANCELED")!; export const UV_EEXIST = codeMap.get("EEXIST"); export const UV_EINVAL = codeMap.get("EINVAL")!; export const UV_ENOENT = codeMap.get("ENOENT"); export const UV_ENOTSOCK = codeMap.get("ENOTSOCK")!; +export const UV_ETIMEDOUT = codeMap.get("ETIMEDOUT")!; export const UV_UNKNOWN = codeMap.get("UNKNOWN")!; export function errname(errno: number): string { diff --git a/ext/node/polyfills/net.ts b/ext/node/polyfills/net.ts index 48e1d0de8778f7..2b011251905212 100644 --- a/ext/node/polyfills/net.ts +++ b/ext/node/polyfills/net.ts @@ -31,6 +31,7 @@ import { isIP, isIPv4, isIPv6, + kReinitializeHandle, normalizedArgsSymbol, } from "ext:deno_node/internal/net.ts"; import { Duplex } from "node:stream"; @@ -50,9 +51,11 @@ import { ERR_SERVER_ALREADY_LISTEN, ERR_SERVER_NOT_RUNNING, ERR_SOCKET_CLOSED, + ERR_SOCKET_CONNECTION_TIMEOUT, errnoException, exceptionWithHostPort, genericNodeError, + NodeAggregateError, uvExceptionWithHostPort, } from "ext:deno_node/internal/errors.ts"; import type { ErrnoException } from "ext:deno_node/internal/errors.ts"; @@ -80,6 +83,7 @@ import { Buffer } from "node:buffer"; import type { LookupOneOptions } from "ext:deno_node/internal/dns/utils.ts"; import { validateAbortSignal, + validateBoolean, validateFunction, validateInt32, validateNumber, @@ -100,13 +104,25 @@ import { ShutdownWrap } from "ext:deno_node/internal_binding/stream_wrap.ts"; import { assert } from "ext:deno_node/_util/asserts.ts"; import { isWindows } from "ext:deno_node/_util/os.ts"; import { ADDRCONFIG, lookup as dnsLookup } from "node:dns"; -import { codeMap } from "ext:deno_node/internal_binding/uv.ts"; +import { + codeMap, + UV_ECANCELED, + UV_ETIMEDOUT, +} from "ext:deno_node/internal_binding/uv.ts"; import { guessHandleType } from "ext:deno_node/internal_binding/util.ts"; import { debuglog } from "ext:deno_node/internal/util/debuglog.ts"; import type { DuplexOptions } from "ext:deno_node/_stream.d.ts"; import type { BufferEncoding } from "ext:deno_node/_global.d.ts"; import type { Abortable } from "ext:deno_node/_events.d.ts"; import { channel } from "node:diagnostics_channel"; +import { primordials } from "ext:core/mod.js"; + +const { + ArrayPrototypeIncludes, + ArrayPrototypePush, + FunctionPrototypeBind, + MathMax, +} = primordials; let debug = debuglog("net", (fn) => { debug = fn; @@ -120,6 +136,9 @@ const kBytesWritten = Symbol("kBytesWritten"); const DEFAULT_IPV4_ADDR = "0.0.0.0"; const DEFAULT_IPV6_ADDR = "::"; +let autoSelectFamilyDefault = true; +let autoSelectFamilyAttemptTimeoutDefault = 250; + type Handle = TCP | Pipe; interface HandleOptions { @@ -214,6 +233,8 @@ interface TcpSocketConnectOptions extends ConnectOptions { hints?: number; family?: number; lookup?: LookupFunction; + autoSelectFamily?: boolean | undefined; + autoSelectFamilyAttemptTimeout?: number | undefined; } interface IpcSocketConnectOptions extends ConnectOptions { @@ -316,12 +337,6 @@ export function _normalizeArgs(args: unknown[]): NormalizedArgs { return arr; } -function _isTCPConnectWrap( - req: TCPConnectWrap | PipeConnectWrap, -): req is TCPConnectWrap { - return "localAddress" in req && "localPort" in req; -} - function _afterConnect( status: number, // deno-lint-ignore no-explicit-any @@ -372,7 +387,7 @@ function _afterConnect( socket.connecting = false; let details; - if (_isTCPConnectWrap(req)) { + if (req.localAddress && req.localPort) { details = req.localAddress + ":" + req.localPort; } @@ -384,7 +399,7 @@ function _afterConnect( details, ); - if (_isTCPConnectWrap(req)) { + if (details) { ex.localAddress = req.localAddress; ex.localPort = req.localPort; } @@ -393,6 +408,107 @@ function _afterConnect( } } +function _createConnectionError(req, status) { + let details; + + if (req.localAddress && req.localPort) { + details = req.localAddress + ":" + req.localPort; + } + + const ex = exceptionWithHostPort( + status, + "connect", + req.address, + req.port, + details, + ); + if (details) { + ex.localAddress = req.localAddress; + ex.localPort = req.localPort; + } + + return ex; +} + +function _afterConnectMultiple( + context, + current, + status, + handle, + req, + readable, + writable, +) { + debug( + "connect/multiple: connection attempt to %s:%s completed with status %s", + req.address, + req.port, + status, + ); + + // Make sure another connection is not spawned + clearTimeout(context[kTimeout]); + + // One of the connection has completed and correctly dispatched but after timeout, ignore this one + if (status === 0 && current !== context.current - 1) { + debug( + "connect/multiple: ignoring successful but timedout connection to %s:%s", + req.address, + req.port, + ); + handle.close(); + return; + } + + const self = context.socket; + + // Some error occurred, add to the list of exceptions + if (status !== 0) { + const ex = _createConnectionError(req, status); + ArrayPrototypePush(context.errors, ex); + + self.emit( + "connectionAttemptFailed", + req.address, + req.port, + req.addressType, + ex, + ); + + // Try the next address, unless we were aborted + if (context.socket.connecting) { + _internalConnectMultiple(context, status === UV_ECANCELED); + } + + return; + } + + _afterConnect(status, self._handle, req, readable, writable); +} + +function _internalConnectMultipleTimeout(context, req, handle) { + debug( + "connect/multiple: connection to %s:%s timed out", + req.address, + req.port, + ); + context.socket.emit( + "connectionAttemptTimeout", + req.address, + req.port, + req.addressType, + ); + + req.oncomplete = undefined; + ArrayPrototypePush(context.errors, _createConnectionError(req, UV_ETIMEDOUT)); + handle.close(); + + // Try the next address, unless we were aborted + if (context.socket.connecting) { + _internalConnectMultiple(context); + } +} + function _checkBindError(err: number, port: number, handle: TCP) { // EADDRINUSE may not be reported until we call `listen()` or `connect()`. // To complicate matters, a failed `bind()` followed by `listen()` or `connect()` @@ -495,6 +611,131 @@ function _internalConnect( } } +function _internalConnectMultiple(context, canceled?: boolean) { + clearTimeout(context[kTimeout]); + const self = context.socket; + + // We were requested to abort. Stop all operations + if (self._aborted) { + return; + } + + // All connections have been tried without success, destroy with error + if (canceled || context.current === context.addresses.length) { + if (context.errors.length === 0) { + self.destroy(new ERR_SOCKET_CONNECTION_TIMEOUT()); + return; + } + + self.destroy(new NodeAggregateError(context.errors)); + return; + } + + assert(self.connecting); + + const current = context.current++; + + if (current > 0) { + self[kReinitializeHandle](new TCP(TCPConstants.SOCKET)); + } + + const { localPort, port, flags } = context; + const { address, family: addressType } = context.addresses[current]; + let localAddress; + let err; + + if (localPort) { + if (addressType === 4) { + localAddress = DEFAULT_IPV4_ADDR; + err = self._handle.bind(localAddress, localPort); + } else { // addressType === 6 + localAddress = DEFAULT_IPV6_ADDR; + err = self._handle.bind6(localAddress, localPort, flags); + } + + debug( + "connect/multiple: binding to localAddress: %s and localPort: %d (addressType: %d)", + localAddress, + localPort, + addressType, + ); + + err = _checkBindError(err, localPort, self._handle); + if (err) { + ArrayPrototypePush( + context.errors, + exceptionWithHostPort(err, "bind", localAddress, localPort), + ); + _internalConnectMultiple(context); + return; + } + } + + debug( + "connect/multiple: attempting to connect to %s:%d (addressType: %d)", + address, + port, + addressType, + ); + self.emit("connectionAttempt", address, port, addressType); + + const req = new TCPConnectWrap(); + req.oncomplete = FunctionPrototypeBind( + _afterConnectMultiple, + undefined, + context, + current, + ); + req.address = address; + req.port = port; + req.localAddress = localAddress; + req.localPort = localPort; + req.addressType = addressType; + + ArrayPrototypePush( + self.autoSelectFamilyAttemptedAddresses, + `${address}:${port}`, + ); + + if (addressType === 4) { + err = self._handle.connect(req, address, port); + } else { + err = self._handle.connect6(req, address, port); + } + + if (err) { + const sockname = self._getsockname(); + let details; + + if (sockname) { + details = sockname.address + ":" + sockname.port; + } + + const ex = exceptionWithHostPort(err, "connect", address, port, details); + ArrayPrototypePush(context.errors, ex); + + self.emit("connectionAttemptFailed", address, port, addressType, ex); + _internalConnectMultiple(context); + return; + } + + if (current < context.addresses.length - 1) { + debug( + "connect/multiple: setting the attempt timeout to %d ms", + context.timeout, + ); + + // If the attempt has not returned an error, start the connection timer + context[kTimeout] = setTimeout( + _internalConnectMultipleTimeout, + context.timeout, + context, + req, + self._handle, + ); + } +} + // Provide a better error message when we call end() as a result // of the other side sending a FIN. The standard "write after end" // is overly vague, and makes it seem like the user's code is to blame. @@ -597,7 +838,7 @@ function _lookupAndConnect( ) { const { localAddress, localPort } = options; const host = options.host || "localhost"; - let { port } = options; + let { port, autoSelectFamilyAttemptTimeout, autoSelectFamily } = options; if (localAddress && !isIP(localAddress)) { throw new ERR_INVALID_IP_ADDRESS(localAddress); @@ -621,6 +862,22 @@ function _lookupAndConnect( port |= 0; + if (autoSelectFamily != null) { + validateBoolean(autoSelectFamily, "options.autoSelectFamily"); + } else { + autoSelectFamily = autoSelectFamilyDefault; + } + + if (autoSelectFamilyAttemptTimeout !== undefined) { + validateInt32(autoSelectFamilyAttemptTimeout); + + if (autoSelectFamilyAttemptTimeout < 10) { + autoSelectFamilyAttemptTimeout = 10; + } + } else { + autoSelectFamilyAttemptTimeout = autoSelectFamilyAttemptTimeoutDefault; + } + // If host is an IP, skip performing a lookup const addressType = isIP(host); if (addressType) { @@ -649,6 +906,7 @@ function _lookupAndConnect( const dnsOpts = { family: options.family, hints: options.hints || 0, + all: false, }; if ( @@ -665,6 +923,31 @@ function _lookupAndConnect( self._host = host; const lookup = options.lookup || dnsLookup; + if ( + dnsOpts.family !== 4 && dnsOpts.family !== 6 && !localAddress && + autoSelectFamily + ) { + debug("connect: autodetecting"); + + dnsOpts.all = true; + defaultTriggerAsyncIdScope(self[asyncIdSymbol], function () { + _lookupAndConnectMultiple( + self, + asyncIdSymbol, + lookup, + host, + options, + dnsOpts, + port, + localAddress, + localPort, + autoSelectFamilyAttemptTimeout, + ); + }); + + return; + } + defaultTriggerAsyncIdScope(self[asyncIdSymbol], function () { lookup( host, @@ -719,6 +1002,143 @@ function _lookupAndConnect( }); } +function _lookupAndConnectMultiple( + self: Socket, + asyncIdSymbol: number, + // deno-lint-ignore no-explicit-any + lookup: any, + host: string, + options: TcpSocketConnectOptions, + dnsopts, + port: number, + localAddress: string, + localPort: number, + timeout: number | undefined, +) { + defaultTriggerAsyncIdScope(self[asyncIdSymbol], function emitLookup() { + lookup(host, dnsopts, function emitLookup(err, addresses) { + // It's possible we were destroyed while looking this up. + // XXX it would be great if we could cancel the promise returned by + // the look up. + if (!self.connecting) { + return; + } else if (err) { + self.emit("lookup", err, undefined, undefined, host); + + // net.createConnection() creates a net.Socket object and immediately + // calls net.Socket.connect() on it (that's us). There are no event + // listeners registered yet so defer the error event to the next tick. + nextTick(_connectErrorNT, self, err); + return; + } + + // Filter addresses by only keeping the one which are either IPv4 or IPV6. + // The first valid address determines which group has preference on the + // alternate family sorting which happens later. + const validAddresses = [[], []]; + const validIps = [[], []]; + let destinations; + for (let i = 0, l = addresses.length; i < l; i++) { + const address = addresses[i]; + const { address: ip, family: addressType } = address; + self.emit("lookup", err, ip, addressType, host); + // It's possible we were destroyed while looking this up. + if (!self.connecting) { + return; + } + if (isIP(ip) && (addressType === 4 || addressType === 6)) { + destinations ||= addressType === 6 ? { 6: 0, 4: 1 } : { 4: 0, 6: 1 }; + + const destination = destinations[addressType]; + + // Only try an address once + if (!ArrayPrototypeIncludes(validIps[destination], ip)) { + ArrayPrototypePush(validAddresses[destination], address); + ArrayPrototypePush(validIps[destination], ip); + } + } + } + + // When no AAAA or A records are available, fail on the first one + if (!validAddresses[0].length && !validAddresses[1].length) { + const { address: firstIp, family: firstAddressType } = addresses[0]; + + if (!isIP(firstIp)) { + err = new ERR_INVALID_IP_ADDRESS(firstIp); + nextTick(_connectErrorNT, self, err); + } else if (firstAddressType !== 4 && firstAddressType !== 6) { + err = new ERR_INVALID_ADDRESS_FAMILY( + firstAddressType, + options.host, + options.port, + ); + nextTick(_connectErrorNT, self, err); + } + + return; + } + + // Sort addresses alternating families + const toAttempt = []; + for ( + let i = 0, + l = MathMax(validAddresses[0].length, validAddresses[1].length); + i < l; + i++ + ) { + if (i in validAddresses[0]) { + ArrayPrototypePush(toAttempt, validAddresses[0][i]); + } + if (i in validAddresses[1]) { + ArrayPrototypePush(toAttempt, validAddresses[1][i]); + } + } + + if (toAttempt.length === 1) { + debug( + "connect/multiple: only one address found, switching back to single connection", + ); + const { address: ip, family: addressType } = toAttempt[0]; + + self._unrefTimer(); + defaultTriggerAsyncIdScope( + self[asyncIdSymbol], + _internalConnect, + self, + ip, + port, + addressType, + localAddress, + localPort, + ); + + return; + } + + self.autoSelectFamilyAttemptedAddresses = []; + debug("connect/multiple: will try the following addresses", toAttempt); + + const context = { + socket: self, + addresses: toAttempt, + current: 0, + port, + localPort, + timeout, + [kTimeout]: null, + errors: [], + }; + + self._unrefTimer(); + defaultTriggerAsyncIdScope( + self[asyncIdSymbol], + _internalConnectMultiple, + context, + ); + }); + }); +} + function _afterShutdown(this: ShutdownWrap) { // deno-lint-ignore no-explicit-any const self: any = this.handle[ownerSymbol]; @@ -777,6 +1197,7 @@ export class Socket extends Duplex { _host: string | null = null; // deno-lint-ignore no-explicit-any _parent: any = null; + autoSelectFamilyAttemptedAddresses: AddressInfo[] | undefined = undefined; constructor(options: SocketOptions | number) { if (typeof options === "number") { @@ -1546,6 +1967,16 @@ export class Socket extends Duplex { set _handle(v: Handle | null) { this[kHandle] = v; } + + // deno-lint-ignore no-explicit-any + [kReinitializeHandle](handle: any) { + this._handle?.close(); + + this._handle = handle; + this._handle[ownerSymbol] = this; + + _initSocketHandle(this); + } } export const Stream = Socket; @@ -1593,6 +2024,33 @@ export function connect(...args: unknown[]) { export const createConnection = connect; +/** https://docs.deno.com/api/node/net/#namespace_getdefaultautoselectfamily */ +export function getDefaultAutoSelectFamily() { + return autoSelectFamilyDefault; +} + +/** https://docs.deno.com/api/node/net/#namespace_setdefaultautoselectfamily */ +export function setDefaultAutoSelectFamily(value: boolean) { + validateBoolean(value, "value"); + autoSelectFamilyDefault = value; +} + +/** https://docs.deno.com/api/node/net/#namespace_getdefaultautoselectfamilyattempttimeout */ +export function getDefaultAutoSelectFamilyAttemptTimeout() { + return autoSelectFamilyAttemptTimeoutDefault; +} + +/** https://docs.deno.com/api/node/net/#namespace_setdefaultautoselectfamilyattempttimeout */ +export function setDefaultAutoSelectFamilyAttemptTimeout(value: number) { + validateInt32(value, "value", 1); + + if (value < 10) { + value = 10; + } + + autoSelectFamilyAttemptTimeoutDefault = value; +} + export interface ListenOptions extends Abortable { fd?: number; port?: number | undefined; @@ -2478,15 +2936,19 @@ export { BlockList, isIP, isIPv4, isIPv6, SocketAddress }; export default { _createServerHandle, _normalizeArgs, - isIP, - isIPv4, - isIPv6, BlockList, - SocketAddress, connect, createConnection, createServer, + getDefaultAutoSelectFamily, + getDefaultAutoSelectFamilyAttemptTimeout, + isIP, + isIPv4, + isIPv6, Server, + setDefaultAutoSelectFamily, + setDefaultAutoSelectFamilyAttemptTimeout, Socket, + SocketAddress, Stream, }; diff --git a/ext/node/polyfills/perf_hooks.ts b/ext/node/polyfills/perf_hooks.ts index d92b925b5feefc..ec76b3ce2d89c9 100644 --- a/ext/node/polyfills/perf_hooks.ts +++ b/ext/node/polyfills/perf_hooks.ts @@ -8,6 +8,7 @@ import { performance as shimPerformance, PerformanceEntry, } from "ext:deno_web/15_performance.js"; +import { EldHistogram } from "ext:core/ops"; class PerformanceObserver { static supportedEntryTypes: string[] = []; @@ -89,10 +90,11 @@ const performance: ) => shimPerformance.dispatchEvent(...args), }; -const monitorEventLoopDelay = () => - notImplemented( - "monitorEventLoopDelay from performance", - ); +function monitorEventLoopDelay(options = {}) { + const { resolution = 10 } = options; + + return new EldHistogram(resolution); +} export default { performance, diff --git a/ext/node/polyfills/process.ts b/ext/node/polyfills/process.ts index 2605fa6d1ad743..647376d5cf0147 100644 --- a/ext/node/polyfills/process.ts +++ b/ext/node/polyfills/process.ts @@ -15,7 +15,7 @@ import { import { warnNotImplemented } from "ext:deno_node/_utils.ts"; import { EventEmitter } from "node:events"; -import Module from "node:module"; +import Module, { getBuiltinModule } from "node:module"; import { report } from "ext:deno_node/internal/process/report.ts"; import { validateString } from "ext:deno_node/internal/validators.mjs"; import { @@ -38,7 +38,15 @@ import { versions, } from "ext:deno_node/_process/process.ts"; import { _exiting } from "ext:deno_node/_process/exiting.ts"; -export { _nextTick as nextTick, chdir, cwd, env, version, versions }; +export { + _nextTick as nextTick, + chdir, + cwd, + env, + getBuiltinModule, + version, + versions, +}; import { createWritableStdioStream, initStdin, @@ -728,6 +736,8 @@ Process.prototype.getegid = getegid; /** This method is removed on Windows */ Process.prototype.geteuid = geteuid; +Process.prototype.getBuiltinModule = getBuiltinModule; + // TODO(kt3k): Implement this when we added -e option to node compat mode Process.prototype._eval = undefined; @@ -909,7 +919,7 @@ Object.defineProperty(argv, "1", { if (Deno.mainModule?.startsWith("file:")) { return pathFromURL(new URL(Deno.mainModule)); } else { - return join(Deno.cwd(), "$deno$node.js"); + return join(Deno.cwd(), "$deno$node.mjs"); } }, }); diff --git a/ext/node/polyfills/timers.ts b/ext/node/polyfills/timers.ts index 02f69466eef615..e826416ed83d5e 100644 --- a/ext/node/polyfills/timers.ts +++ b/ext/node/polyfills/timers.ts @@ -15,10 +15,16 @@ import { setUnrefTimeout, Timeout, } from "ext:deno_node/internal/timers.mjs"; -import { validateFunction } from "ext:deno_node/internal/validators.mjs"; +import { + validateAbortSignal, + validateBoolean, + validateFunction, + validateObject, +} from "ext:deno_node/internal/validators.mjs"; import { promisify } from "ext:deno_node/internal/util.mjs"; export { setUnrefTimeout } from "ext:deno_node/internal/timers.mjs"; import * as timers from "ext:deno_web/02_timers.js"; +import { AbortError } from "ext:deno_node/internal/errors.ts"; const clearTimeout_ = timers.clearTimeout; const clearInterval_ = timers.clearInterval; @@ -89,10 +95,88 @@ export function clearImmediate(immediate: Immediate) { clearTimeout_(immediate._immediateId); } +async function* setIntervalAsync( + after: number, + value: number, + options: { signal?: AbortSignal; ref?: boolean } = { __proto__: null }, +) { + validateObject(options, "options"); + + if (typeof options?.signal !== "undefined") { + validateAbortSignal(options.signal, "options.signal"); + } + + if (typeof options?.ref !== "undefined") { + validateBoolean(options.ref, "options.ref"); + } + + const { signal, ref = true } = options; + + if (signal?.aborted) { + throw new AbortError(undefined, { cause: signal?.reason }); + } + + let onCancel: (() => void) | undefined = undefined; + let interval: Timeout | undefined = undefined; + try { + let notYielded = 0; + let callback: ((value?: object) => void) | undefined = undefined; + let rejectCallback: ((message?: string) => void) | undefined = undefined; + interval = new Timeout( + () => { + notYielded++; + if (callback) { + callback(); + callback = undefined; + rejectCallback = undefined; + } + }, + after, + [], + true, + ref, + ); + if (signal) { + onCancel = () => { + clearInterval(interval); + if (rejectCallback) { + rejectCallback(signal.reason); + callback = undefined; + rejectCallback = undefined; + } + }; + signal.addEventListener("abort", onCancel, { once: true }); + } + while (!signal?.aborted) { + if (notYielded === 0) { + await new Promise((resolve: () => void, reject: () => void) => { + callback = resolve; + rejectCallback = reject; + }); + } + for (; notYielded > 0; notYielded--) { + yield value; + } + } + } catch (error) { + if (signal?.aborted) { + throw new AbortError(undefined, { cause: signal?.reason }); + } + throw error; + } finally { + if (interval) { + clearInterval(interval); + } + if (onCancel) { + signal?.removeEventListener("abort", onCancel); + } + } +} + export const promises = { setTimeout: promisify(setTimeout), setImmediate: promisify(setImmediate), - setInterval: promisify(setInterval), + setInterval: setIntervalAsync, }; promises.scheduler = { diff --git a/ext/node/polyfills/zlib.ts b/ext/node/polyfills/zlib.ts index 3fe5f8bbd9d3a3..6e5d02b5be9bfb 100644 --- a/ext/node/polyfills/zlib.ts +++ b/ext/node/polyfills/zlib.ts @@ -40,6 +40,58 @@ import { createBrotliCompress, createBrotliDecompress, } from "ext:deno_node/_brotli.js"; +import { ERR_INVALID_ARG_TYPE } from "ext:deno_node/internal/errors.ts"; +import { validateUint32 } from "ext:deno_node/internal/validators.mjs"; +import { op_zlib_crc32 } from "ext:core/ops"; +import { core, primordials } from "ext:core/mod.js"; +import { TextEncoder } from "ext:deno_web/08_text_encoding.js"; +const { + Uint8Array, + TypedArrayPrototypeGetBuffer, + TypedArrayPrototypeGetByteLength, + TypedArrayPrototypeGetByteOffset, + DataViewPrototypeGetBuffer, + DataViewPrototypeGetByteLength, + DataViewPrototypeGetByteOffset, +} = primordials; +const { isTypedArray, isDataView } = core; + +const enc = new TextEncoder(); +const toU8 = (input) => { + if (typeof input === "string") { + return enc.encode(input); + } + + if (isTypedArray(input)) { + return new Uint8Array( + TypedArrayPrototypeGetBuffer(input), + TypedArrayPrototypeGetByteOffset(input), + TypedArrayPrototypeGetByteLength(input), + ); + } else if (isDataView(input)) { + return new Uint8Array( + DataViewPrototypeGetBuffer(input), + DataViewPrototypeGetByteOffset(input), + DataViewPrototypeGetByteLength(input), + ); + } + + return input; +}; + +export function crc32(data, value = 0) { + if (typeof data !== "string" && !isArrayBufferView(data)) { + throw new ERR_INVALID_ARG_TYPE("data", [ + "Buffer", + "TypedArray", + "DataView", + "string", + ], data); + } + validateUint32(value, "value"); + + return op_zlib_crc32(toU8(data), value); +} export class Options { constructor() { @@ -87,6 +139,7 @@ export default { BrotliOptions, codes, constants, + crc32, createBrotliCompress, createBrotliDecompress, createDeflate, diff --git a/ext/tls/Cargo.toml b/ext/tls/Cargo.toml index 943fc8413e8842..49d6e892527a1c 100644 --- a/ext/tls/Cargo.toml +++ b/ext/tls/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_tls" -version = "0.164.0" +version = "0.166.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -15,6 +15,7 @@ path = "lib.rs" [dependencies] deno_core.workspace = true +deno_error.workspace = true deno_native_certs = "0.3.0" rustls.workspace = true rustls-pemfile.workspace = true diff --git a/ext/tls/lib.rs b/ext/tls/lib.rs index 60fa8a874dda78..930e428556f45d 100644 --- a/ext/tls/lib.rs +++ b/ext/tls/lib.rs @@ -31,9 +31,9 @@ use deno_core::error::JsNativeError; mod tls_key; pub use tls_key::*; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum TlsError { - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Rustls(#[from] rustls::Error), #[class(inherit)] diff --git a/ext/url/Cargo.toml b/ext/url/Cargo.toml index 557a4669e6aa59..a47fc50a8cd6f4 100644 --- a/ext/url/Cargo.toml +++ b/ext/url/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_url" -version = "0.177.0" +version = "0.179.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -15,6 +15,7 @@ path = "lib.rs" [dependencies] deno_core.workspace = true +deno_error.workspace = true thiserror.workspace = true urlpattern = "0.3.0" diff --git a/ext/url/urlpattern.rs b/ext/url/urlpattern.rs index 711b82a3739128..a36e24ff426ffc 100644 --- a/ext/url/urlpattern.rs +++ b/ext/url/urlpattern.rs @@ -7,7 +7,7 @@ use urlpattern::quirks::MatchInput; use urlpattern::quirks::StringOrInit; use urlpattern::quirks::UrlPattern; -deno_core::js_error_wrapper!(urlpattern::Error, UrlPatternError, "TypeError"); +deno_error::js_error_wrapper!(urlpattern::Error, UrlPatternError, "TypeError"); #[op2] #[serde] diff --git a/ext/web/06_streams.js b/ext/web/06_streams.js index a4f2275c521acc..f29e5f204009be 100644 --- a/ext/web/06_streams.js +++ b/ext/web/06_streams.js @@ -70,7 +70,6 @@ const { String, Symbol, SymbolAsyncIterator, - SymbolIterator, SymbolFor, TypeError, TypedArrayPrototypeGetBuffer, @@ -5084,34 +5083,6 @@ function initializeCountSizeFunction(globalObject) { WeakMapPrototypeSet(countSizeFunctionWeakMap, globalObject, size); } -// Ref: https://tc39.es/ecma262/#sec-getiterator -function getAsyncOrSyncIterator(obj) { - let iterator; - if (obj[SymbolAsyncIterator] != null) { - iterator = obj[SymbolAsyncIterator](); - if (!isObject(iterator)) { - throw new TypeError( - "[Symbol.asyncIterator] returned a non-object value", - ); - } - } else if (obj[SymbolIterator] != null) { - iterator = obj[SymbolIterator](); - if (!isObject(iterator)) { - throw new TypeError("[Symbol.iterator] returned a non-object value"); - } - } else { - throw new TypeError("No iterator found"); - } - if (typeof iterator.next !== "function") { - throw new TypeError("iterator.next is not a function"); - } - return iterator; -} - -function isObject(x) { - return (typeof x === "object" && x != null) || typeof x === "function"; -} - const _resourceBacking = Symbol("[[resourceBacking]]"); // This distinction exists to prevent unrefable streams being used in // regular fast streams that are unaware of refability @@ -5197,21 +5168,22 @@ class ReadableStream { } static from(asyncIterable) { + const prefix = "Failed to execute 'ReadableStream.from'"; webidl.requiredArguments( arguments.length, 1, - "Failed to execute 'ReadableStream.from'", + prefix, ); - asyncIterable = webidl.converters.any(asyncIterable); - - const iterator = getAsyncOrSyncIterator(asyncIterable); + asyncIterable = webidl.converters["async iterable"]( + asyncIterable, + prefix, + "Argument 1", + ); + const iter = asyncIterable.open(); const stream = createReadableStream(noop, async () => { // deno-lint-ignore prefer-primordials - const res = await iterator.next(); - if (!isObject(res)) { - throw new TypeError("iterator.next value is not an object"); - } + const res = await iter.next(); if (res.done) { readableStreamDefaultControllerClose(stream[_controller]); } else { @@ -5221,17 +5193,8 @@ class ReadableStream { ); } }, async (reason) => { - if (iterator.return == null) { - return undefined; - } else { - // deno-lint-ignore prefer-primordials - const res = await iterator.return(reason); - if (!isObject(res)) { - throw new TypeError("iterator.return value is not an object"); - } else { - return undefined; - } - } + // deno-lint-ignore prefer-primordials + await iter.return(reason); }, 0); return stream; } @@ -6892,6 +6855,10 @@ webidl.converters.StreamPipeOptions = webidl { key: "signal", converter: webidl.converters.AbortSignal }, ]); +webidl.converters["async iterable"] = webidl.createAsyncIterableConverter( + webidl.converters.any, +); + internals.resourceForReadableStream = resourceForReadableStream; export { diff --git a/ext/web/Cargo.toml b/ext/web/Cargo.toml index db28d0e5786493..fd64c8f7ec1e8b 100644 --- a/ext/web/Cargo.toml +++ b/ext/web/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_web" -version = "0.208.0" +version = "0.210.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -18,6 +18,7 @@ async-trait.workspace = true base64-simd = "0.8" bytes.workspace = true deno_core.workspace = true +deno_error.workspace = true deno_permissions.workspace = true encoding_rs.workspace = true flate2 = { workspace = true, features = ["default"] } diff --git a/ext/web/blob.rs b/ext/web/blob.rs index 3ba6216e862973..bad8f95e507059 100644 --- a/ext/web/blob.rs +++ b/ext/web/blob.rs @@ -17,18 +17,18 @@ use serde::Deserialize; use serde::Serialize; use uuid::Uuid; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum BlobError { - #[class(TYPE)] + #[class(type)] #[error("Blob part not found")] BlobPartNotFound, - #[class(TYPE)] + #[class(type)] #[error("start + len can not be larger than blob part size")] SizeLargerThanBlobPart, - #[class(TYPE)] + #[class(type)] #[error("Blob URLs are not supported in this context")] BlobURLsNotSupported, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Url(#[from] deno_core::url::ParseError), } diff --git a/ext/web/compression.rs b/ext/web/compression.rs index f21835adbb0649..7feca8d36e4355 100644 --- a/ext/web/compression.rs +++ b/ext/web/compression.rs @@ -11,15 +11,15 @@ use flate2::Compression; use std::cell::RefCell; use std::io::Write; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CompressionError { - #[class(TYPE)] + #[class(type)] #[error("Unsupported format")] UnsupportedFormat, - #[class(TYPE)] + #[class(type)] #[error("resource is closed")] ResourceClosed, - #[class(TYPE)] + #[class(type)] #[error(transparent)] IoTypeError(std::io::Error), #[class(inherit)] diff --git a/ext/web/lib.rs b/ext/web/lib.rs index d6c9fe5b56588f..3316df5c0e708a 100644 --- a/ext/web/lib.rs +++ b/ext/web/lib.rs @@ -129,27 +129,27 @@ deno_core::extension!(deno_web, } ); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum WebError { #[class("DOMExceptionInvalidCharacterError")] #[error("Failed to decode base64")] Base64Decode, - #[class(RANGE)] + #[class(range)] #[error("The encoding label provided ('{0}') is invalid.")] InvalidEncodingLabel(String), - #[class(TYPE)] + #[class(type)] #[error("buffer exceeds maximum length")] BufferTooLong, - #[class(RANGE)] + #[class(range)] #[error("Value too large to decode")] ValueTooLarge, - #[class(RANGE)] + #[class(range)] #[error("Provided buffer too small")] BufferTooSmall, - #[class(TYPE)] + #[class(type)] #[error("The encoded data is not valid")] DataInvalid, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] DataError(#[from] v8::DataError), } diff --git a/ext/web/message_port.rs b/ext/web/message_port.rs index 459ea2496ef835..3a842bf43348f3 100644 --- a/ext/web/message_port.rs +++ b/ext/web/message_port.rs @@ -21,15 +21,15 @@ use tokio::sync::mpsc::unbounded_channel; use tokio::sync::mpsc::UnboundedReceiver; use tokio::sync::mpsc::UnboundedSender; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum MessagePortError { - #[class(TYPE)] + #[class(type)] #[error("Invalid message port transfer")] InvalidTransfer, - #[class(TYPE)] + #[class(type)] #[error("Message port is not ready for transfer")] NotReady, - #[class(TYPE)] + #[class(type)] #[error("Can not transfer self message port")] TransferSelf, #[class(inherit)] diff --git a/ext/web/stream_resource.rs b/ext/web/stream_resource.rs index b544bce343a595..fd55bbb05232a3 100644 --- a/ext/web/stream_resource.rs +++ b/ext/web/stream_resource.rs @@ -30,12 +30,12 @@ use std::task::Context; use std::task::Poll; use std::task::Waker; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum StreamResourceError { #[class(inherit)] #[error(transparent)] Canceled(#[from] #[inherit] deno_core::Canceled), - #[class(TYPE)] + #[class(type)] #[error("{0}")] Js(String), } diff --git a/ext/webgpu/01_webgpu.js b/ext/webgpu/01_webgpu.js index 719877750b8a6a..cab5cbbdbc9c5c 100644 --- a/ext/webgpu/01_webgpu.js +++ b/ext/webgpu/01_webgpu.js @@ -6982,6 +6982,12 @@ webidl.converters.GPUComputePassEncoder = webidl.createInterfaceConverter( GPUComputePassEncoder.prototype, ); +// INTERFACE: GPUQuerySet +webidl.converters.GPUQuerySet = webidl.createInterfaceConverter( + "GPUQuerySet", + GPUQuerySet.prototype, +); + // DICTIONARY: GPUComputePassTimestampWrites webidl.converters["GPUComputePassTimestampWrites"] = webidl .createDictionaryConverter( @@ -7154,12 +7160,6 @@ webidl.converters["GPURenderPassDepthStencilAttachment"] = webidl dictMembersGPURenderPassDepthStencilAttachment, ); -// INTERFACE: GPUQuerySet -webidl.converters.GPUQuerySet = webidl.createInterfaceConverter( - "GPUQuerySet", - GPUQuerySet.prototype, -); - // DICTIONARY: GPURenderPassTimestampWrites webidl.converters["GPURenderPassTimestampWrites"] = webidl .createDictionaryConverter( diff --git a/ext/webgpu/Cargo.toml b/ext/webgpu/Cargo.toml index f23bb8371e9c18..16a443f48ad11a 100644 --- a/ext/webgpu/Cargo.toml +++ b/ext/webgpu/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_webgpu" -version = "0.144.0" +version = "0.146.0" authors = ["the Deno authors"] edition.workspace = true license = "MIT" @@ -21,6 +21,7 @@ vulkan-portability = [] # so the whole workspace can built as wasm. [target.'cfg(not(target_arch = "wasm32"))'.dependencies] deno_core.workspace = true +deno_error.workspace = true serde = { workspace = true, features = ["derive"] } tokio = { workspace = true, features = ["full"] } wgpu-types = { workspace = true, features = ["serde"] } diff --git a/ext/webgpu/buffer.rs b/ext/webgpu/buffer.rs index d73d52538a5dd5..ab5b91290898f2 100644 --- a/ext/webgpu/buffer.rs +++ b/ext/webgpu/buffer.rs @@ -13,12 +13,12 @@ use std::time::Duration; use super::error::WebGpuResult; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum BufferError { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] deno_core::error::ResourceError), - #[class(TYPE)] + #[class(type)] #[error("usage is not valid")] InvalidUsage, #[class("DOMExceptionOperationError")] diff --git a/ext/webgpu/bundle.rs b/ext/webgpu/bundle.rs index 0b57bc3b37892f..2420c128183c93 100644 --- a/ext/webgpu/bundle.rs +++ b/ext/webgpu/bundle.rs @@ -12,12 +12,12 @@ use std::rc::Rc; use super::error::WebGpuResult; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum BundleError { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] ResourceError), - #[class(TYPE)] + #[class(type)] #[error("size must be larger than 0")] InvalidSize, } diff --git a/ext/webgpu/byow.rs b/ext/webgpu/byow.rs index c76f2f4f4044b1..b60a7ce3c0b87b 100644 --- a/ext/webgpu/byow.rs +++ b/ext/webgpu/byow.rs @@ -13,23 +13,23 @@ use std::ffi::c_void; use std::ptr::NonNull; use crate::surface::WebGpuSurface; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ByowError { - #[class(TYPE)] + #[class(type)] #[error("Cannot create surface outside of WebGPU context. Did you forget to call `navigator.gpu.requestAdapter()`?")] WebGPUNotInitiated, - #[class(TYPE)] + #[class(type)] #[error("Invalid parameters")] InvalidParameters, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] CreateSurface(wgpu_core::instance::CreateSurfaceError), #[cfg(target_os = "windows")] - #[class(TYPE)] + #[class(type)] #[error("Invalid system on Windows")] InvalidSystem, #[cfg(target_os = "macos")] - #[class(TYPE)] + #[class(type)] #[error("Invalid system on macOS")] InvalidSystem, #[cfg(any( @@ -37,7 +37,7 @@ pub enum ByowError { target_os = "freebsd", target_os = "openbsd" ))] - #[class(TYPE)] + #[class(type)] #[error("Invalid system on Linux/BSD")] InvalidSystem, #[cfg(any( @@ -46,7 +46,7 @@ pub enum ByowError { target_os = "freebsd", target_os = "openbsd" ))] - #[class(TYPE)] + #[class(type)] #[error("window is null")] NullWindow, #[cfg(any( @@ -54,11 +54,11 @@ pub enum ByowError { target_os = "freebsd", target_os = "openbsd" ))] - #[class(TYPE)] + #[class(type)] #[error("display is null")] NullDisplay, #[cfg(target_os = "macos")] - #[class(TYPE)] + #[class(type)] #[error("ns_view is null")] NSViewDisplay, } diff --git a/ext/webgpu/lib.rs b/ext/webgpu/lib.rs index e376b81c55d06c..a01f0025cb38d8 100644 --- a/ext/webgpu/lib.rs +++ b/ext/webgpu/lib.rs @@ -83,18 +83,18 @@ pub mod shader; pub mod surface; pub mod texture; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum InitError { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] deno_core::error::ResourceError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] InvalidAdapter(wgpu_core::instance::InvalidAdapter), #[class("DOMExceptionOperationError")] #[error(transparent)] RequestDevice(wgpu_core::instance::RequestDeviceError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] InvalidDevice(wgpu_core::device::InvalidDevice), } diff --git a/ext/webgpu/render_pass.rs b/ext/webgpu/render_pass.rs index a0b19d5dd42a3d..5042c77d7701e0 100644 --- a/ext/webgpu/render_pass.rs +++ b/ext/webgpu/render_pass.rs @@ -11,12 +11,12 @@ use std::cell::RefCell; use super::error::WebGpuResult; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum RenderPassError { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] ResourceError), - #[class(TYPE)] + #[class(type)] #[error("size must be larger than 0")] InvalidSize, } diff --git a/ext/webgpu/surface.rs b/ext/webgpu/surface.rs index 0a85dfff2a4408..e7f63b2bcdf52a 100644 --- a/ext/webgpu/surface.rs +++ b/ext/webgpu/surface.rs @@ -11,15 +11,15 @@ use std::borrow::Cow; use std::rc::Rc; use wgpu_types::SurfaceStatus; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum SurfaceError { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] ResourceError), - #[class(GENERIC)] + #[class(generic)] #[error("Invalid Surface Status")] InvalidStatus, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Surface(wgpu_core::present::SurfaceError), } diff --git a/ext/webidl/00_webidl.js b/ext/webidl/00_webidl.js index 1d05aae5fa96ba..eb18cbcc3e4152 100644 --- a/ext/webidl/00_webidl.js +++ b/ext/webidl/00_webidl.js @@ -26,6 +26,7 @@ const { Float32Array, Float64Array, FunctionPrototypeBind, + FunctionPrototypeCall, Int16Array, Int32Array, Int8Array, @@ -77,6 +78,7 @@ const { StringPrototypeToWellFormed, Symbol, SymbolIterator, + SymbolAsyncIterator, SymbolToStringTag, TypedArrayPrototypeGetBuffer, TypedArrayPrototypeGetSymbolToStringTag, @@ -920,6 +922,127 @@ function createSequenceConverter(converter) { }; } +function isAsyncIterable(obj) { + if (obj[SymbolAsyncIterator] === undefined) { + if (obj[SymbolIterator] === undefined) { + return false; + } + } + + return true; +} + +const AsyncIterable = Symbol("[[asyncIterable]]"); + +function createAsyncIterableConverter(converter) { + return function ( + V, + prefix = undefined, + context = undefined, + opts = { __proto__: null }, + ) { + if (type(V) !== "Object") { + throw makeException( + TypeError, + "can not be converted to async iterable.", + prefix, + context, + ); + } + + let isAsync = true; + let method = V[SymbolAsyncIterator]; + if (method === undefined) { + method = V[SymbolIterator]; + + if (method === undefined) { + throw makeException( + TypeError, + "is not iterable.", + prefix, + context, + ); + } + + isAsync = false; + } + + return { + value: V, + [AsyncIterable]: AsyncIterable, + open(context) { + const iter = FunctionPrototypeCall(method, V); + if (type(iter) !== "Object") { + throw new TypeError( + `${context} could not be iterated because iterator method did not return object, but ${ + type(iter) + }.`, + ); + } + + let asyncIterator = iter; + + if (!isAsync) { + asyncIterator = { + // deno-lint-ignore require-await + async next() { + // deno-lint-ignore prefer-primordials + return iter.next(); + }, + }; + } + + return { + async next() { + // deno-lint-ignore prefer-primordials + const iterResult = await asyncIterator.next(); + if (type(iterResult) !== "Object") { + throw TypeError( + `${context} failed to iterate next value because the next() method did not return an object, but ${ + type(iterResult) + }.`, + ); + } + + if (iterResult.done) { + return { done: true }; + } + + const iterValue = converter( + iterResult.value, + `${context} failed to iterate next value`, + `The value returned from the next() method`, + opts, + ); + + return { done: false, value: iterValue }; + }, + async return(reason) { + if (asyncIterator.return === undefined) { + return undefined; + } + + // deno-lint-ignore prefer-primordials + const returnPromiseResult = await asyncIterator.return(reason); + if (type(returnPromiseResult) !== "Object") { + throw TypeError( + `${context} failed to close iterator because the return() method did not return an object, but ${ + type(returnPromiseResult) + }.`, + ); + } + + return undefined; + }, + [SymbolAsyncIterator]() { + return this; + }, + }; + }, + }; + }; +} + function createRecordConverter(keyConverter, valueConverter) { return (V, prefix, context, opts) => { if (type(V) !== "Object") { @@ -1302,9 +1425,11 @@ function setlike(obj, objPrototype, readonly) { export { assertBranded, + AsyncIterable, brand, configureInterface, converters, + createAsyncIterableConverter, createBranded, createDictionaryConverter, createEnumConverter, @@ -1315,6 +1440,7 @@ export { createSequenceConverter, illegalConstructor, invokeCallbackFunction, + isAsyncIterable, makeException, mixinPairIterable, requiredArguments, diff --git a/ext/webidl/Cargo.toml b/ext/webidl/Cargo.toml index 8c3f6f6128839e..9bf65335c04871 100644 --- a/ext/webidl/Cargo.toml +++ b/ext/webidl/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_webidl" -version = "0.177.0" +version = "0.179.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/webidl/internal.d.ts b/ext/webidl/internal.d.ts index 1ce45463ecc37e..375d548d3220ae 100644 --- a/ext/webidl/internal.d.ts +++ b/ext/webidl/internal.d.ts @@ -438,6 +438,27 @@ declare module "ext:deno_webidl/00_webidl.js" { opts?: any, ) => T[]; + /** + * Create a converter that converts an async iterable of the inner type. + */ + function createAsyncIterableConverter( + converter: ( + v: V, + prefix?: string, + context?: string, + opts?: any, + ) => T, + ): ( + v: any, + prefix?: string, + context?: string, + opts?: any, + ) => ConvertedAsyncIterable; + + interface ConvertedAsyncIterable extends AsyncIterableIterator { + value: V; + } + /** * Create a converter that converts a Promise of the inner type. */ @@ -559,4 +580,9 @@ declare module "ext:deno_webidl/00_webidl.js" { | "Symbol" | "BigInt" | "Object"; + + /** + * Check whether a value is an async iterable. + */ + function isAsyncIterable(v: any): boolean; } diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js index 58f4773101bc62..78572f5f002fab 100644 --- a/ext/websocket/01_websocket.js +++ b/ext/websocket/01_websocket.js @@ -28,6 +28,7 @@ const { ArrayPrototypePush, ArrayPrototypeShift, ArrayPrototypeSome, + Error, ErrorPrototypeToString, ObjectDefineProperties, ObjectPrototypeIsPrototypeOf, @@ -329,10 +330,14 @@ class WebSocket extends EventTarget { webidl.requiredArguments(arguments.length, 1, prefix); data = webidl.converters.WebSocketSend(data, prefix, "Argument 1"); - if (this[_readyState] !== OPEN) { + if (this[_readyState] === CONNECTING) { throw new DOMException("'readyState' not OPEN", "InvalidStateError"); } + if (this[_readyState] !== OPEN) { + return; + } + if (this[_sendQueue].length === 0) { // Fast path if the send queue is empty, for example when only synchronous // data is being sent. @@ -488,8 +493,11 @@ class WebSocket extends EventTarget { /* error */ this[_readyState] = CLOSED; + const message = op_ws_get_error(rid); + const error = new Error(message); const errorEv = new ErrorEvent("error", { - message: op_ws_get_error(rid), + error, + message, }); this.dispatchEvent(errorEv); diff --git a/ext/websocket/Cargo.toml b/ext/websocket/Cargo.toml index 61f1f5959c4ae8..676bc5e4c34329 100644 --- a/ext/websocket/Cargo.toml +++ b/ext/websocket/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_websocket" -version = "0.182.0" +version = "0.184.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -16,6 +16,7 @@ path = "lib.rs" [dependencies] bytes.workspace = true deno_core.workspace = true +deno_error.workspace = true deno_net.workspace = true deno_permissions.workspace = true deno_tls.workspace = true diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index 36b8992d7bc8e0..cbef273fee318b 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -72,7 +72,7 @@ static USE_WRITEV: Lazy = Lazy::new(|| { false }); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum WebsocketError { #[class(inherit)] #[error(transparent)] @@ -83,13 +83,13 @@ pub enum WebsocketError { #[class(inherit)] #[error(transparent)] Resource(#[from] #[inherit] deno_core::error::ResourceError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Uri(#[from] http::uri::InvalidUri), #[class(inherit)] #[error("{0}")] Io(#[from] #[inherit] std::io::Error), - #[class(TYPE)] + #[class(type)] #[error(transparent)] WebSocket(#[from] fastwebsockets::WebSocketError), #[class("DOMExceptionNetworkError")] @@ -157,7 +157,7 @@ impl Resource for WsCancelResource { // This op is needed because creating a WS instance in JavaScript is a sync // operation and should throw error when permissions are not fulfilled, // but actual op that connects WS is async. -#[op2] +#[op2(stack_trace)] #[smi] pub fn op_ws_check_permission_and_cancel_handle( state: &mut OpState, @@ -191,33 +191,33 @@ pub struct CreateResponse { extensions: String, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum HandshakeError { - #[class(TYPE)] + #[class(type)] #[error("Missing path in url")] MissingPath, - #[class(GENERIC)] + #[class(generic)] #[error("Invalid status code {0}")] InvalidStatusCode(StatusCode), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Http(#[from] http::Error), - #[class(TYPE)] + #[class(type)] #[error(transparent)] WebSocket(#[from] fastwebsockets::WebSocketError), - #[class(GENERIC)] + #[class(generic)] #[error("Didn't receive h2 alpn, aborting connection")] NoH2Alpn, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Rustls(#[from] deno_tls::rustls::Error), #[class(inherit)] #[error(transparent)] Io(#[from] #[inherit] std::io::Error), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] H2(#[from] h2::Error), - #[class(TYPE)] + #[class(type)] #[error("Invalid hostname: '{0}'")] InvalidHostname(String), #[class(inherit)] @@ -226,10 +226,10 @@ pub enum HandshakeError { #[class(inherit)] #[error(transparent)] Tls(#[inherit] deno_tls::TlsError), - #[class(TYPE)] + #[class(type)] #[error(transparent)] HeaderName(#[from] http::header::InvalidHeaderName), - #[class(TYPE)] + #[class(type)] #[error(transparent)] HeaderValue(#[from] http::header::InvalidHeaderValue), } @@ -465,7 +465,7 @@ fn populate_common_request_headers( Ok(request) } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub async fn op_ws_create( state: Rc>, diff --git a/ext/webstorage/Cargo.toml b/ext/webstorage/Cargo.toml index 01e23ab839a643..49918f53979b84 100644 --- a/ext/webstorage/Cargo.toml +++ b/ext/webstorage/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_webstorage" -version = "0.172.0" +version = "0.174.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -15,6 +15,7 @@ path = "lib.rs" [dependencies] deno_core.workspace = true +deno_error.workspace = true deno_web.workspace = true rusqlite.workspace = true thiserror.workspace = true diff --git a/ext/webstorage/lib.rs b/ext/webstorage/lib.rs index 035ab32c594468..1f92223d8ea29d 100644 --- a/ext/webstorage/lib.rs +++ b/ext/webstorage/lib.rs @@ -11,12 +11,12 @@ use std::path::PathBuf; pub use rusqlite; -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum WebStorageError { #[class("DOMExceptionNotSupportedError")] #[error("LocalStorage is not supported in this context.")] ContextNotSupported, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Sqlite(#[from] rusqlite::Error), #[class(inherit)] diff --git a/resolvers/deno/Cargo.toml b/resolvers/deno/Cargo.toml index 24d50587b3daf6..b2c4bd2384ccb7 100644 --- a/resolvers/deno/Cargo.toml +++ b/resolvers/deno/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_resolver" -version = "0.9.0" +version = "0.11.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -16,12 +16,16 @@ path = "lib.rs" [dependencies] anyhow.workspace = true base32.workspace = true +boxed_error.workspace = true +dashmap.workspace = true +deno_config.workspace = true deno_media_type.workspace = true deno_package_json.workspace = true deno_package_json.features = ["sync"] deno_path_util.workspace = true deno_semver.workspace = true node_resolver.workspace = true +node_resolver.features = ["sync"] thiserror.workspace = true url.workspace = true diff --git a/resolvers/deno/cjs.rs b/resolvers/deno/cjs.rs new file mode 100644 index 00000000000000..dbcbd8b6bf64ee --- /dev/null +++ b/resolvers/deno/cjs.rs @@ -0,0 +1,272 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +use std::sync::Arc; + +use dashmap::DashMap; +use deno_media_type::MediaType; +use node_resolver::env::NodeResolverEnv; +use node_resolver::errors::ClosestPkgJsonError; +use node_resolver::InNpmPackageChecker; +use node_resolver::NodeModuleKind; +use node_resolver::PackageJsonResolver; +use url::Url; + +/// Keeps track of what module specifiers were resolved as CJS. +/// +/// Modules that are `.js`, `.ts`, `.jsx`, and `tsx` are only known to +/// be CJS or ESM after they're loaded based on their contents. So these +/// files will be "maybe CJS" until they're loaded. +#[derive(Debug)] +pub struct CjsTracker { + is_cjs_resolver: IsCjsResolver, + known: DashMap, +} + +impl CjsTracker { + pub fn new( + in_npm_pkg_checker: Arc, + pkg_json_resolver: Arc>, + options: IsCjsResolverOptions, + ) -> Self { + Self { + is_cjs_resolver: IsCjsResolver::new( + in_npm_pkg_checker, + pkg_json_resolver, + options, + ), + known: Default::default(), + } + } + + /// Checks whether the file might be treated as CJS, but it's not for sure + /// yet because the source hasn't been loaded to see whether it contains + /// imports or exports. + pub fn is_maybe_cjs( + &self, + specifier: &Url, + media_type: MediaType, + ) -> Result { + self.treat_as_cjs_with_is_script(specifier, media_type, None) + } + + /// Gets whether the file is CJS. If true, this is for sure + /// cjs because `is_script` is provided. + /// + /// `is_script` should be `true` when the contents of the file at the + /// provided specifier are known to be a script and not an ES module. + pub fn is_cjs_with_known_is_script( + &self, + specifier: &Url, + media_type: MediaType, + is_script: bool, + ) -> Result { + self.treat_as_cjs_with_is_script(specifier, media_type, Some(is_script)) + } + + fn treat_as_cjs_with_is_script( + &self, + specifier: &Url, + media_type: MediaType, + is_script: Option, + ) -> Result { + let kind = match self + .get_known_kind_with_is_script(specifier, media_type, is_script) + { + Some(kind) => kind, + None => self.is_cjs_resolver.check_based_on_pkg_json(specifier)?, + }; + Ok(kind == NodeModuleKind::Cjs) + } + + /// Gets the referrer for the specified module specifier. + /// + /// Generally the referrer should already be tracked by calling + /// `is_cjs_with_known_is_script` before calling this method. + pub fn get_referrer_kind(&self, specifier: &Url) -> NodeModuleKind { + if specifier.scheme() != "file" { + return NodeModuleKind::Esm; + } + self + .get_known_kind(specifier, MediaType::from_specifier(specifier)) + .unwrap_or(NodeModuleKind::Esm) + } + + fn get_known_kind( + &self, + specifier: &Url, + media_type: MediaType, + ) -> Option { + self.get_known_kind_with_is_script(specifier, media_type, None) + } + + fn get_known_kind_with_is_script( + &self, + specifier: &Url, + media_type: MediaType, + is_script: Option, + ) -> Option { + self.is_cjs_resolver.get_known_kind_with_is_script( + specifier, + media_type, + is_script, + &self.known, + ) + } +} + +#[derive(Debug)] +pub struct IsCjsResolverOptions { + pub detect_cjs: bool, + pub is_node_main: bool, +} + +/// Resolves whether a module is CJS or ESM. +#[derive(Debug)] +pub struct IsCjsResolver { + in_npm_pkg_checker: Arc, + pkg_json_resolver: Arc>, + options: IsCjsResolverOptions, +} + +impl IsCjsResolver { + pub fn new( + in_npm_pkg_checker: Arc, + pkg_json_resolver: Arc>, + options: IsCjsResolverOptions, + ) -> Self { + Self { + in_npm_pkg_checker, + pkg_json_resolver, + options, + } + } + + /// Gets the referrer kind for a script in the LSP. + pub fn get_lsp_referrer_kind( + &self, + specifier: &Url, + is_script: Option, + ) -> NodeModuleKind { + if specifier.scheme() != "file" { + return NodeModuleKind::Esm; + } + match MediaType::from_specifier(specifier) { + MediaType::Mts | MediaType::Mjs | MediaType::Dmts => NodeModuleKind::Esm, + MediaType::Cjs | MediaType::Cts | MediaType::Dcts => NodeModuleKind::Cjs, + MediaType::Dts => { + // dts files are always determined based on the package.json because + // they contain imports/exports even when considered CJS + self.check_based_on_pkg_json(specifier).unwrap_or(NodeModuleKind::Esm) + } + MediaType::Wasm | + MediaType::Json => NodeModuleKind::Esm, + MediaType::JavaScript + | MediaType::Jsx + | MediaType::TypeScript + | MediaType::Tsx + // treat these as unknown + | MediaType::Css + | MediaType::SourceMap + | MediaType::Unknown => { + match is_script { + Some(true) => self.check_based_on_pkg_json(specifier).unwrap_or(NodeModuleKind::Esm), + Some(false) | None => NodeModuleKind::Esm, + } + } + } + } + + fn get_known_kind_with_is_script( + &self, + specifier: &Url, + media_type: MediaType, + is_script: Option, + known_cache: &DashMap, + ) -> Option { + if specifier.scheme() != "file" { + return Some(NodeModuleKind::Esm); + } + + match media_type { + MediaType::Mts | MediaType::Mjs | MediaType::Dmts => Some(NodeModuleKind::Esm), + MediaType::Cjs | MediaType::Cts | MediaType::Dcts => Some(NodeModuleKind::Cjs), + MediaType::Dts => { + // dts files are always determined based on the package.json because + // they contain imports/exports even when considered CJS + if let Some(value) = known_cache.get(specifier).map(|v| *v) { + Some(value) + } else { + let value = self.check_based_on_pkg_json(specifier).ok(); + if let Some(value) = value { + known_cache.insert(specifier.clone(), value); + } + Some(value.unwrap_or(NodeModuleKind::Esm)) + } + } + MediaType::Wasm | + MediaType::Json => Some(NodeModuleKind::Esm), + MediaType::JavaScript + | MediaType::Jsx + | MediaType::TypeScript + | MediaType::Tsx + // treat these as unknown + | MediaType::Css + | MediaType::SourceMap + | MediaType::Unknown => { + if let Some(value) = known_cache.get(specifier).map(|v| *v) { + if value == NodeModuleKind::Cjs && is_script == Some(false) { + // we now know this is actually esm + known_cache.insert(specifier.clone(), NodeModuleKind::Esm); + Some(NodeModuleKind::Esm) + } else { + Some(value) + } + } else if is_script == Some(false) { + // we know this is esm + known_cache.insert(specifier.clone(), NodeModuleKind::Esm); + Some(NodeModuleKind::Esm) + } else { + None + } + } + } + } + + fn check_based_on_pkg_json( + &self, + specifier: &Url, + ) -> Result { + if self.in_npm_pkg_checker.in_npm_package(specifier) { + if let Some(pkg_json) = + self.pkg_json_resolver.get_closest_package_json(specifier)? + { + let is_file_location_cjs = pkg_json.typ != "module"; + Ok(if is_file_location_cjs { + NodeModuleKind::Cjs + } else { + NodeModuleKind::Esm + }) + } else { + Ok(NodeModuleKind::Cjs) + } + } else if self.options.detect_cjs || self.options.is_node_main { + if let Some(pkg_json) = + self.pkg_json_resolver.get_closest_package_json(specifier)? + { + let is_cjs_type = pkg_json.typ == "commonjs" + || self.options.is_node_main && pkg_json.typ == "none"; + Ok(if is_cjs_type { + NodeModuleKind::Cjs + } else { + NodeModuleKind::Esm + }) + } else if self.options.is_node_main { + Ok(NodeModuleKind::Cjs) + } else { + Ok(NodeModuleKind::Esm) + } + } else { + Ok(NodeModuleKind::Esm) + } + } +} diff --git a/resolvers/deno/fs.rs b/resolvers/deno/fs.rs index 44495fa7c2474a..4929f4508e9773 100644 --- a/resolvers/deno/fs.rs +++ b/resolvers/deno/fs.rs @@ -12,6 +12,7 @@ pub struct DirEntry { pub trait DenoResolverFs { fn read_to_string_lossy(&self, path: &Path) -> std::io::Result; fn realpath_sync(&self, path: &Path) -> std::io::Result; + fn exists_sync(&self, path: &Path) -> bool; fn is_dir_sync(&self, path: &Path) -> bool; fn read_dir_sync(&self, dir_path: &Path) -> std::io::Result>; } diff --git a/resolvers/deno/lib.rs b/resolvers/deno/lib.rs index 57fa67512ab200..303a8271026816 100644 --- a/resolvers/deno/lib.rs +++ b/resolvers/deno/lib.rs @@ -1,5 +1,418 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +#![deny(clippy::print_stderr)] +#![deny(clippy::print_stdout)] + +use std::path::PathBuf; +use std::sync::Arc; + +use boxed_error::Boxed; +use deno_config::workspace::MappedResolution; +use deno_config::workspace::MappedResolutionDiagnostic; +use deno_config::workspace::MappedResolutionError; +use deno_config::workspace::WorkspaceResolvePkgJsonFolderError; +use deno_config::workspace::WorkspaceResolver; +use deno_package_json::PackageJsonDepValue; +use deno_package_json::PackageJsonDepValueParseError; +use deno_semver::npm::NpmPackageReqReference; +use fs::DenoResolverFs; +use node_resolver::env::NodeResolverEnv; +use node_resolver::errors::NodeResolveError; +use node_resolver::errors::PackageSubpathResolveError; +use node_resolver::InNpmPackageChecker; +use node_resolver::NodeModuleKind; +use node_resolver::NodeResolution; +use node_resolver::NodeResolutionMode; +use node_resolver::NodeResolver; +use npm::MissingPackageNodeModulesFolderError; +use npm::NodeModulesOutOfDateError; +use npm::NpmReqResolver; +use npm::ResolveIfForNpmPackageErrorKind; +use npm::ResolvePkgFolderFromDenoReqError; +use npm::ResolveReqWithSubPathErrorKind; +use sloppy_imports::SloppyImportResolverFs; +use sloppy_imports::SloppyImportsResolutionMode; +use sloppy_imports::SloppyImportsResolver; +use thiserror::Error; +use url::Url; + +pub mod cjs; pub mod fs; pub mod npm; pub mod sloppy_imports; + +#[derive(Debug, Clone)] +pub struct DenoResolution { + pub url: Url, + pub maybe_diagnostic: Option>, + pub found_package_json_dep: bool, +} + +#[derive(Debug, Boxed)] +pub struct DenoResolveError(pub Box); + +#[derive(Debug, Error)] +pub enum DenoResolveErrorKind { + #[error("Importing from the vendor directory is not permitted. Use a remote specifier instead or disable vendoring.")] + InvalidVendorFolderImport, + #[error(transparent)] + MappedResolution(#[from] MappedResolutionError), + #[error(transparent)] + MissingPackageNodeModulesFolder(#[from] MissingPackageNodeModulesFolderError), + #[error(transparent)] + Node(#[from] NodeResolveError), + #[error(transparent)] + NodeModulesOutOfDate(#[from] NodeModulesOutOfDateError), + #[error(transparent)] + PackageJsonDepValueParse(#[from] PackageJsonDepValueParseError), + #[error(transparent)] + PackageJsonDepValueUrlParse(url::ParseError), + #[error(transparent)] + PackageSubpathResolve(#[from] PackageSubpathResolveError), + #[error(transparent)] + ResolvePkgFolderFromDenoReq(#[from] ResolvePkgFolderFromDenoReqError), + #[error(transparent)] + WorkspaceResolvePkgJsonFolder(#[from] WorkspaceResolvePkgJsonFolderError), +} + +#[derive(Debug)] +pub struct NodeAndNpmReqResolver< + Fs: DenoResolverFs, + TNodeResolverEnv: NodeResolverEnv, +> { + pub node_resolver: Arc>, + pub npm_req_resolver: Arc>, +} + +pub struct DenoResolverOptions< + 'a, + Fs: DenoResolverFs, + TNodeResolverEnv: NodeResolverEnv, + TSloppyImportResolverFs: SloppyImportResolverFs, +> { + pub in_npm_pkg_checker: Arc, + pub node_and_req_resolver: + Option>, + pub sloppy_imports_resolver: + Option>>, + pub workspace_resolver: Arc, + /// Whether "bring your own node_modules" is enabled where Deno does not + /// setup the node_modules directories automatically, but instead uses + /// what already exists on the file system. + pub is_byonm: bool, + pub maybe_vendor_dir: Option<&'a PathBuf>, +} + +/// A resolver that takes care of resolution, taking into account loaded +/// import map, JSX settings. +#[derive(Debug)] +pub struct DenoResolver< + Fs: DenoResolverFs, + TNodeResolverEnv: NodeResolverEnv, + TSloppyImportResolverFs: SloppyImportResolverFs, +> { + in_npm_pkg_checker: Arc, + node_and_npm_resolver: Option>, + sloppy_imports_resolver: + Option>>, + workspace_resolver: Arc, + is_byonm: bool, + maybe_vendor_specifier: Option, +} + +impl< + Fs: DenoResolverFs, + TNodeResolverEnv: NodeResolverEnv, + TSloppyImportResolverFs: SloppyImportResolverFs, + > DenoResolver +{ + pub fn new( + options: DenoResolverOptions, + ) -> Self { + Self { + in_npm_pkg_checker: options.in_npm_pkg_checker, + node_and_npm_resolver: options.node_and_req_resolver, + sloppy_imports_resolver: options.sloppy_imports_resolver, + workspace_resolver: options.workspace_resolver, + is_byonm: options.is_byonm, + maybe_vendor_specifier: options + .maybe_vendor_dir + .and_then(|v| deno_path_util::url_from_directory_path(v).ok()), + } + } + + pub fn resolve( + &self, + raw_specifier: &str, + referrer: &Url, + referrer_kind: NodeModuleKind, + mode: NodeResolutionMode, + ) -> Result { + let mut found_package_json_dep = false; + let mut maybe_diagnostic = None; + // Use node resolution if we're in an npm package + if let Some(node_and_npm_resolver) = self.node_and_npm_resolver.as_ref() { + let node_resolver = &node_and_npm_resolver.node_resolver; + if referrer.scheme() == "file" + && self.in_npm_pkg_checker.in_npm_package(referrer) + { + return node_resolver + .resolve(raw_specifier, referrer, referrer_kind, mode) + .map(|res| DenoResolution { + url: res.into_url(), + found_package_json_dep, + maybe_diagnostic, + }) + .map_err(|e| e.into()); + } + } + + // Attempt to resolve with the workspace resolver + let result: Result<_, DenoResolveError> = self + .workspace_resolver + .resolve(raw_specifier, referrer) + .map_err(|err| err.into()); + let result = match result { + Ok(resolution) => match resolution { + MappedResolution::Normal { + specifier, + maybe_diagnostic: current_diagnostic, + } + | MappedResolution::ImportMap { + specifier, + maybe_diagnostic: current_diagnostic, + } => { + maybe_diagnostic = current_diagnostic; + // do sloppy imports resolution if enabled + if let Some(sloppy_imports_resolver) = &self.sloppy_imports_resolver { + Ok( + sloppy_imports_resolver + .resolve( + &specifier, + match mode { + NodeResolutionMode::Execution => { + SloppyImportsResolutionMode::Execution + } + NodeResolutionMode::Types => { + SloppyImportsResolutionMode::Types + } + }, + ) + .map(|s| s.into_specifier()) + .unwrap_or(specifier), + ) + } else { + Ok(specifier) + } + } + MappedResolution::WorkspaceJsrPackage { specifier, .. } => { + Ok(specifier) + } + MappedResolution::WorkspaceNpmPackage { + target_pkg_json: pkg_json, + sub_path, + .. + } => self + .node_and_npm_resolver + .as_ref() + .unwrap() + .node_resolver + .resolve_package_subpath_from_deno_module( + pkg_json.dir_path(), + sub_path.as_deref(), + Some(referrer), + referrer_kind, + mode, + ) + .map_err(|e| e.into()), + MappedResolution::PackageJson { + dep_result, + alias, + sub_path, + .. + } => { + // found a specifier in the package.json, so mark that + // we need to do an "npm install" later + found_package_json_dep = true; + + dep_result + .as_ref() + .map_err(|e| { + DenoResolveErrorKind::PackageJsonDepValueParse(e.clone()) + .into_box() + }) + .and_then(|dep| match dep { + // todo(dsherret): it seems bad that we're converting this + // to a url because the req might not be a valid url. + PackageJsonDepValue::Req(req) => Url::parse(&format!( + "npm:{}{}", + req, + sub_path.map(|s| format!("/{}", s)).unwrap_or_default() + )) + .map_err(|e| { + DenoResolveErrorKind::PackageJsonDepValueUrlParse(e).into_box() + }), + PackageJsonDepValue::Workspace(version_req) => self + .workspace_resolver + .resolve_workspace_pkg_json_folder_for_pkg_json_dep( + alias, + version_req, + ) + .map_err(|e| { + DenoResolveErrorKind::WorkspaceResolvePkgJsonFolder(e) + .into_box() + }) + .and_then(|pkg_folder| { + self + .node_and_npm_resolver + .as_ref() + .unwrap() + .node_resolver + .resolve_package_subpath_from_deno_module( + pkg_folder, + sub_path.as_deref(), + Some(referrer), + referrer_kind, + mode, + ) + .map_err(|e| { + DenoResolveErrorKind::PackageSubpathResolve(e).into_box() + }) + }), + }) + } + }, + Err(err) => Err(err), + }; + + // When the user is vendoring, don't allow them to import directly from the vendor/ directory + // as it might cause them confusion or duplicate dependencies. Additionally, this folder has + // special treatment in the language server so it will definitely cause issues/confusion there + // if they do this. + if let Some(vendor_specifier) = &self.maybe_vendor_specifier { + if let Ok(specifier) = &result { + if specifier.as_str().starts_with(vendor_specifier.as_str()) { + return Err( + DenoResolveErrorKind::InvalidVendorFolderImport.into_box(), + ); + } + } + } + + let Some(NodeAndNpmReqResolver { + node_resolver, + npm_req_resolver, + }) = &self.node_and_npm_resolver + else { + return Ok(DenoResolution { + url: result?, + maybe_diagnostic, + found_package_json_dep, + }); + }; + + match result { + Ok(specifier) => { + if let Ok(npm_req_ref) = + NpmPackageReqReference::from_specifier(&specifier) + { + // check if the npm specifier resolves to a workspace member + if let Some(pkg_folder) = self + .workspace_resolver + .resolve_workspace_pkg_json_folder_for_npm_specifier( + npm_req_ref.req(), + ) + { + return node_resolver + .resolve_package_subpath_from_deno_module( + pkg_folder, + npm_req_ref.sub_path(), + Some(referrer), + referrer_kind, + mode, + ) + .map(|url| DenoResolution { + url, + maybe_diagnostic, + found_package_json_dep, + }) + .map_err(|e| e.into()); + } + + // do npm resolution for byonm + if self.is_byonm { + return npm_req_resolver + .resolve_req_reference( + &npm_req_ref, + referrer, + referrer_kind, + mode, + ) + .map(|url| DenoResolution { + url, + maybe_diagnostic, + found_package_json_dep, + }) + .map_err(|err| { + match err.into_kind() { + ResolveReqWithSubPathErrorKind::MissingPackageNodeModulesFolder( + err, + ) => err.into(), + ResolveReqWithSubPathErrorKind::ResolvePkgFolderFromDenoReq( + err, + ) => err.into(), + ResolveReqWithSubPathErrorKind::PackageSubpathResolve(err) => { + err.into() + } + } + }); + } + } + + Ok(DenoResolution { + url: node_resolver + .handle_if_in_node_modules(&specifier) + .unwrap_or(specifier), + maybe_diagnostic, + found_package_json_dep, + }) + } + Err(err) => { + // If byonm, check if the bare specifier resolves to an npm package + if self.is_byonm && referrer.scheme() == "file" { + let maybe_resolution = npm_req_resolver + .resolve_if_for_npm_pkg( + raw_specifier, + referrer, + referrer_kind, + mode, + ) + .map_err(|e| match e.into_kind() { + ResolveIfForNpmPackageErrorKind::NodeResolve(e) => { + DenoResolveErrorKind::Node(e).into_box() + } + ResolveIfForNpmPackageErrorKind::NodeModulesOutOfDate(e) => { + e.into() + } + })?; + if let Some(res) = maybe_resolution { + match res { + NodeResolution::Module(url) => { + return Ok(DenoResolution { + url, + maybe_diagnostic, + found_package_json_dep, + }) + } + NodeResolution::BuiltIn(_) => { + // don't resolve bare specifiers for built-in modules via node resolution + } + } + } + } + + Err(err) + } + } + } +} diff --git a/resolvers/deno/npm/byonm.rs b/resolvers/deno/npm/byonm.rs index b85117052c75f8..e9182d47a1fdb4 100644 --- a/resolvers/deno/npm/byonm.rs +++ b/resolvers/deno/npm/byonm.rs @@ -16,7 +16,7 @@ use node_resolver::errors::PackageFolderResolveIoError; use node_resolver::errors::PackageJsonLoadError; use node_resolver::errors::PackageNotFoundError; use node_resolver::InNpmPackageChecker; -use node_resolver::NpmResolver; +use node_resolver::NpmPackageFolderResolver; use node_resolver::PackageJsonResolverRc; use thiserror::Error; use url::Url; @@ -24,6 +24,8 @@ use url::Url; use crate::fs::DenoResolverFs; use super::local::normalize_pkg_name_for_node_modules_deno_folder; +use super::CliNpmReqResolver; +use super::ResolvePkgFolderFromDenoReqError; #[derive(Debug, Error)] pub enum ByonmResolvePkgFolderFromDenoReqError { @@ -303,7 +305,24 @@ impl ByonmNpmResolver { impl< Fs: DenoResolverFs + Send + Sync + std::fmt::Debug, TEnv: NodeResolverEnv, - > NpmResolver for ByonmNpmResolver + > CliNpmReqResolver for ByonmNpmResolver +{ + fn resolve_pkg_folder_from_deno_module_req( + &self, + req: &PackageReq, + referrer: &Url, + ) -> Result { + ByonmNpmResolver::resolve_pkg_folder_from_deno_module_req( + self, req, referrer, + ) + .map_err(ResolvePkgFolderFromDenoReqError::Byonm) + } +} + +impl< + Fs: DenoResolverFs + Send + Sync + std::fmt::Debug, + TEnv: NodeResolverEnv, + > NpmPackageFolderResolver for ByonmNpmResolver { fn resolve_package_folder_from_package( &self, diff --git a/resolvers/deno/npm/mod.rs b/resolvers/deno/npm/mod.rs index 45e2341c78b25f..09e35b15c352cc 100644 --- a/resolvers/deno/npm/mod.rs +++ b/resolvers/deno/npm/mod.rs @@ -1,10 +1,274 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -mod byonm; -mod local; +use std::fmt::Debug; +use std::path::PathBuf; +use std::sync::Arc; + +use boxed_error::Boxed; +use deno_semver::npm::NpmPackageReqReference; +use deno_semver::package::PackageReq; +use node_resolver::env::NodeResolverEnv; +use node_resolver::errors::NodeResolveError; +use node_resolver::errors::NodeResolveErrorKind; +use node_resolver::errors::PackageFolderResolveErrorKind; +use node_resolver::errors::PackageFolderResolveIoError; +use node_resolver::errors::PackageNotFoundError; +use node_resolver::errors::PackageResolveErrorKind; +use node_resolver::errors::PackageSubpathResolveError; +use node_resolver::InNpmPackageChecker; +use node_resolver::NodeModuleKind; +use node_resolver::NodeResolution; +use node_resolver::NodeResolutionMode; +use node_resolver::NodeResolver; +use thiserror::Error; +use url::Url; + +use crate::fs::DenoResolverFs; pub use byonm::ByonmInNpmPackageChecker; pub use byonm::ByonmNpmResolver; pub use byonm::ByonmNpmResolverCreateOptions; pub use byonm::ByonmResolvePkgFolderFromDenoReqError; pub use local::normalize_pkg_name_for_node_modules_deno_folder; + +mod byonm; +mod local; + +#[derive(Debug, Error)] +#[error("Could not resolve \"{}\", but found it in a package.json. Deno expects the node_modules/ directory to be up to date. Did you forget to run `deno install`?", specifier)] +pub struct NodeModulesOutOfDateError { + pub specifier: String, +} + +#[derive(Debug, Error)] +#[error("Could not find '{}'. Deno expects the node_modules/ directory to be up to date. Did you forget to run `deno install`?", package_json_path.display())] +pub struct MissingPackageNodeModulesFolderError { + pub package_json_path: PathBuf, +} + +#[derive(Debug, Boxed)] +pub struct ResolveIfForNpmPackageError( + pub Box, +); + +#[derive(Debug, Error)] +pub enum ResolveIfForNpmPackageErrorKind { + #[error(transparent)] + NodeResolve(#[from] NodeResolveError), + #[error(transparent)] + NodeModulesOutOfDate(#[from] NodeModulesOutOfDateError), +} + +#[derive(Debug, Boxed)] +pub struct ResolveReqWithSubPathError(pub Box); + +#[derive(Debug, Error)] +pub enum ResolveReqWithSubPathErrorKind { + #[error(transparent)] + MissingPackageNodeModulesFolder(#[from] MissingPackageNodeModulesFolderError), + #[error(transparent)] + ResolvePkgFolderFromDenoReq(#[from] ResolvePkgFolderFromDenoReqError), + #[error(transparent)] + PackageSubpathResolve(#[from] PackageSubpathResolveError), +} + +#[derive(Debug, Error)] +pub enum ResolvePkgFolderFromDenoReqError { + // todo(dsherret): don't use anyhow here + #[error(transparent)] + Managed(anyhow::Error), + #[error(transparent)] + Byonm(#[from] ByonmResolvePkgFolderFromDenoReqError), +} + +// todo(dsherret): a temporary trait until we extract +// out the CLI npm resolver into here +pub trait CliNpmReqResolver: Debug + Send + Sync { + fn resolve_pkg_folder_from_deno_module_req( + &self, + req: &PackageReq, + referrer: &Url, + ) -> Result; +} + +pub struct NpmReqResolverOptions< + Fs: DenoResolverFs, + TNodeResolverEnv: NodeResolverEnv, +> { + /// The resolver when "bring your own node_modules" is enabled where Deno + /// does not setup the node_modules directories automatically, but instead + /// uses what already exists on the file system. + pub byonm_resolver: Option>>, + pub fs: Fs, + pub in_npm_pkg_checker: Arc, + pub node_resolver: Arc>, + pub npm_req_resolver: Arc, +} + +#[derive(Debug)] +pub struct NpmReqResolver +{ + byonm_resolver: Option>>, + fs: Fs, + in_npm_pkg_checker: Arc, + node_resolver: Arc>, + npm_resolver: Arc, +} + +impl + NpmReqResolver +{ + pub fn new(options: NpmReqResolverOptions) -> Self { + Self { + byonm_resolver: options.byonm_resolver, + fs: options.fs, + in_npm_pkg_checker: options.in_npm_pkg_checker, + node_resolver: options.node_resolver, + npm_resolver: options.npm_req_resolver, + } + } + + pub fn resolve_req_reference( + &self, + req_ref: &NpmPackageReqReference, + referrer: &Url, + referrer_kind: NodeModuleKind, + mode: NodeResolutionMode, + ) -> Result { + self.resolve_req_with_sub_path( + req_ref.req(), + req_ref.sub_path(), + referrer, + referrer_kind, + mode, + ) + } + + pub fn resolve_req_with_sub_path( + &self, + req: &PackageReq, + sub_path: Option<&str>, + referrer: &Url, + referrer_kind: NodeModuleKind, + mode: NodeResolutionMode, + ) -> Result { + let package_folder = self + .npm_resolver + .resolve_pkg_folder_from_deno_module_req(req, referrer)?; + let resolution_result = + self.node_resolver.resolve_package_subpath_from_deno_module( + &package_folder, + sub_path, + Some(referrer), + referrer_kind, + mode, + ); + match resolution_result { + Ok(url) => Ok(url), + Err(err) => { + if self.byonm_resolver.is_some() { + let package_json_path = package_folder.join("package.json"); + if !self.fs.exists_sync(&package_json_path) { + return Err( + MissingPackageNodeModulesFolderError { package_json_path }.into(), + ); + } + } + Err(err.into()) + } + } + } + + pub fn resolve_if_for_npm_pkg( + &self, + specifier: &str, + referrer: &Url, + referrer_kind: NodeModuleKind, + mode: NodeResolutionMode, + ) -> Result, ResolveIfForNpmPackageError> { + let resolution_result = + self + .node_resolver + .resolve(specifier, referrer, referrer_kind, mode); + match resolution_result { + Ok(res) => Ok(Some(res)), + Err(err) => { + let err = err.into_kind(); + match err { + NodeResolveErrorKind::RelativeJoin(_) + | NodeResolveErrorKind::PackageImportsResolve(_) + | NodeResolveErrorKind::UnsupportedEsmUrlScheme(_) + | NodeResolveErrorKind::DataUrlReferrer(_) + | NodeResolveErrorKind::TypesNotFound(_) + | NodeResolveErrorKind::FinalizeResolution(_) => Err( + ResolveIfForNpmPackageErrorKind::NodeResolve(err.into()).into_box(), + ), + NodeResolveErrorKind::PackageResolve(err) => { + let err = err.into_kind(); + match err { + PackageResolveErrorKind::ClosestPkgJson(_) + | PackageResolveErrorKind::InvalidModuleSpecifier(_) + | PackageResolveErrorKind::ExportsResolve(_) + | PackageResolveErrorKind::SubpathResolve(_) => Err( + ResolveIfForNpmPackageErrorKind::NodeResolve( + NodeResolveErrorKind::PackageResolve(err.into()).into(), + ) + .into_box(), + ), + PackageResolveErrorKind::PackageFolderResolve(err) => { + match err.as_kind() { + PackageFolderResolveErrorKind::Io( + PackageFolderResolveIoError { package_name, .. }, + ) + | PackageFolderResolveErrorKind::PackageNotFound( + PackageNotFoundError { package_name, .. }, + ) => { + if self.in_npm_pkg_checker.in_npm_package(referrer) { + return Err( + ResolveIfForNpmPackageErrorKind::NodeResolve( + NodeResolveErrorKind::PackageResolve(err.into()) + .into(), + ) + .into_box(), + ); + } + if let Some(byonm_npm_resolver) = &self.byonm_resolver { + if byonm_npm_resolver + .find_ancestor_package_json_with_dep( + package_name, + referrer, + ) + .is_some() + { + return Err( + ResolveIfForNpmPackageErrorKind::NodeModulesOutOfDate( + NodeModulesOutOfDateError { + specifier: specifier.to_string(), + }, + ).into_box(), + ); + } + } + Ok(None) + } + PackageFolderResolveErrorKind::ReferrerNotFound(_) => { + if self.in_npm_pkg_checker.in_npm_package(referrer) { + return Err( + ResolveIfForNpmPackageErrorKind::NodeResolve( + NodeResolveErrorKind::PackageResolve(err.into()) + .into(), + ) + .into_box(), + ); + } + Ok(None) + } + } + } + } + } + } + } + } + } +} diff --git a/resolvers/node/Cargo.toml b/resolvers/node/Cargo.toml index 6c2407ad9fb3bf..fb302705730a04 100644 --- a/resolvers/node/Cargo.toml +++ b/resolvers/node/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "node_resolver" -version = "0.16.0" +version = "0.18.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -19,6 +19,7 @@ sync = ["deno_package_json/sync"] [dependencies] anyhow.workspace = true async-trait.workspace = true +boxed_error.workspace = true deno_media_type.workspace = true deno_package_json.workspace = true deno_path_util.workspace = true diff --git a/resolvers/node/analyze.rs b/resolvers/node/analyze.rs index c7415933d74094..9126890805d41c 100644 --- a/resolvers/node/analyze.rs +++ b/resolvers/node/analyze.rs @@ -23,7 +23,7 @@ use crate::npm::InNpmPackageCheckerRc; use crate::resolution::NodeResolverRc; use crate::NodeModuleKind; use crate::NodeResolutionMode; -use crate::NpmResolverRc; +use crate::NpmPackageFolderResolverRc; use crate::PackageJsonResolverRc; use crate::PathClean; @@ -66,7 +66,7 @@ pub struct NodeCodeTranslator< env: TNodeResolverEnv, in_npm_pkg_checker: InNpmPackageCheckerRc, node_resolver: NodeResolverRc, - npm_resolver: NpmResolverRc, + npm_resolver: NpmPackageFolderResolverRc, pkg_json_resolver: PackageJsonResolverRc, } @@ -78,7 +78,7 @@ impl env: TNodeResolverEnv, in_npm_pkg_checker: InNpmPackageCheckerRc, node_resolver: NodeResolverRc, - npm_resolver: NpmResolverRc, + npm_resolver: NpmPackageFolderResolverRc, pkg_json_resolver: PackageJsonResolverRc, ) -> Self { Self { diff --git a/resolvers/node/errors.rs b/resolvers/node/errors.rs index aacbecefb4b638..0f332d2c931685 100644 --- a/resolvers/node/errors.rs +++ b/resolvers/node/errors.rs @@ -4,39 +4,13 @@ use std::borrow::Cow; use std::fmt::Write; use std::path::PathBuf; +use boxed_error::Boxed; use thiserror::Error; use url::Url; use crate::NodeModuleKind; use crate::NodeResolutionMode; -macro_rules! kinded_err { - ($name:ident, $kind_name:ident) => { - #[derive(Error, Debug)] - #[error(transparent)] - pub struct $name(pub Box<$kind_name>); - - impl $name { - pub fn as_kind(&self) -> &$kind_name { - &self.0 - } - - pub fn into_kind(self) -> $kind_name { - *self.0 - } - } - - impl From for $name - where - $kind_name: From, - { - fn from(err: E) -> Self { - $name(Box::new($kind_name::from(err))) - } - } - }; -} - #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[allow(non_camel_case_types)] pub enum NodeJsErrorCode { @@ -102,7 +76,8 @@ impl NodeJsErrorCoded for InvalidModuleSpecifierError { } } -kinded_err!(LegacyResolveError, LegacyResolveErrorKind); +#[derive(Debug, Boxed)] +pub struct LegacyResolveError(pub Box); #[derive(Debug, Error)] pub enum LegacyResolveErrorKind { @@ -121,8 +96,6 @@ impl NodeJsErrorCoded for LegacyResolveError { } } -kinded_err!(PackageFolderResolveError, PackageFolderResolveErrorKind); - #[derive(Debug, Error)] #[error( "Could not find package '{}' from referrer '{}'{}.", @@ -186,6 +159,9 @@ impl NodeJsErrorCoded for PackageFolderResolveError { } } +#[derive(Debug, Boxed)] +pub struct PackageFolderResolveError(pub Box); + #[derive(Debug, Error)] pub enum PackageFolderResolveErrorKind { #[error(transparent)] @@ -196,8 +172,6 @@ pub enum PackageFolderResolveErrorKind { Io(#[from] PackageFolderResolveIoError), } -kinded_err!(PackageSubpathResolveError, PackageSubpathResolveErrorKind); - impl NodeJsErrorCoded for PackageSubpathResolveError { fn code(&self) -> NodeJsErrorCode { match self.as_kind() { @@ -208,6 +182,9 @@ impl NodeJsErrorCoded for PackageSubpathResolveError { } } +#[derive(Debug, Boxed)] +pub struct PackageSubpathResolveError(pub Box); + #[derive(Debug, Error)] pub enum PackageSubpathResolveErrorKind { #[error(transparent)] @@ -252,8 +229,6 @@ impl NodeJsErrorCoded for PackageTargetNotFoundError { } } -kinded_err!(PackageTargetResolveError, PackageTargetResolveErrorKind); - impl NodeJsErrorCoded for PackageTargetResolveError { fn code(&self) -> NodeJsErrorCode { match self.as_kind() { @@ -266,6 +241,9 @@ impl NodeJsErrorCoded for PackageTargetResolveError { } } +#[derive(Debug, Boxed)] +pub struct PackageTargetResolveError(pub Box); + #[derive(Debug, Error)] pub enum PackageTargetResolveErrorKind { #[error(transparent)] @@ -280,8 +258,6 @@ pub enum PackageTargetResolveErrorKind { TypesNotFound(#[from] TypesNotFoundError), } -kinded_err!(PackageExportsResolveError, PackageExportsResolveErrorKind); - impl NodeJsErrorCoded for PackageExportsResolveError { fn code(&self) -> NodeJsErrorCode { match self.as_kind() { @@ -291,6 +267,9 @@ impl NodeJsErrorCoded for PackageExportsResolveError { } } +#[derive(Debug, Boxed)] +pub struct PackageExportsResolveError(pub Box); + #[derive(Debug, Error)] pub enum PackageExportsResolveErrorKind { #[error(transparent)] @@ -338,8 +317,6 @@ impl NodeJsErrorCoded for PackageJsonLoadError { } } -kinded_err!(ClosestPkgJsonError, ClosestPkgJsonErrorKind); - impl NodeJsErrorCoded for ClosestPkgJsonError { fn code(&self) -> NodeJsErrorCode { match self.as_kind() { @@ -349,6 +326,9 @@ impl NodeJsErrorCoded for ClosestPkgJsonError { } } +#[derive(Debug, Boxed)] +pub struct ClosestPkgJsonError(pub Box); + #[derive(Debug, Error)] pub enum ClosestPkgJsonErrorKind { #[error(transparent)] @@ -392,7 +372,8 @@ impl NodeJsErrorCoded for PackageImportNotDefinedError { } } -kinded_err!(PackageImportsResolveError, PackageImportsResolveErrorKind); +#[derive(Debug, Boxed)] +pub struct PackageImportsResolveError(pub Box); #[derive(Debug, Error)] pub enum PackageImportsResolveErrorKind { @@ -417,8 +398,6 @@ impl NodeJsErrorCoded for PackageImportsResolveErrorKind { } } -kinded_err!(PackageResolveError, PackageResolveErrorKind); - impl NodeJsErrorCoded for PackageResolveError { fn code(&self) -> NodeJsErrorCode { match self.as_kind() { @@ -431,6 +410,9 @@ impl NodeJsErrorCoded for PackageResolveError { } } +#[derive(Debug, Boxed)] +pub struct PackageResolveError(pub Box); + #[derive(Debug, Error)] pub enum PackageResolveErrorKind { #[error(transparent)] @@ -461,7 +443,8 @@ pub struct DataUrlReferrerError { pub source: url::ParseError, } -kinded_err!(NodeResolveError, NodeResolveErrorKind); +#[derive(Debug, Boxed)] +pub struct NodeResolveError(pub Box); #[derive(Debug, Error)] pub enum NodeResolveErrorKind { @@ -481,7 +464,8 @@ pub enum NodeResolveErrorKind { FinalizeResolution(#[from] FinalizeResolutionError), } -kinded_err!(FinalizeResolutionError, FinalizeResolutionErrorKind); +#[derive(Debug, Boxed)] +pub struct FinalizeResolutionError(pub Box); #[derive(Debug, Error)] pub enum FinalizeResolutionErrorKind { diff --git a/resolvers/node/lib.rs b/resolvers/node/lib.rs index 18b0a85363f456..87bd6299466b84 100644 --- a/resolvers/node/lib.rs +++ b/resolvers/node/lib.rs @@ -15,13 +15,14 @@ mod sync; pub use deno_package_json::PackageJson; pub use npm::InNpmPackageChecker; pub use npm::InNpmPackageCheckerRc; -pub use npm::NpmResolver; -pub use npm::NpmResolverRc; +pub use npm::NpmPackageFolderResolver; +pub use npm::NpmPackageFolderResolverRc; pub use package_json::PackageJsonResolver; pub use package_json::PackageJsonResolverRc; pub use package_json::PackageJsonThreadLocalCache; pub use path::PathClean; pub use resolution::parse_npm_pkg_name; +pub use resolution::resolve_specifier_into_node_modules; pub use resolution::NodeModuleKind; pub use resolution::NodeResolution; pub use resolution::NodeResolutionMode; diff --git a/resolvers/node/npm.rs b/resolvers/node/npm.rs index 2132f0b545939d..ab3a1794262304 100644 --- a/resolvers/node/npm.rs +++ b/resolvers/node/npm.rs @@ -13,10 +13,13 @@ use crate::sync::MaybeSend; use crate::sync::MaybeSync; #[allow(clippy::disallowed_types)] -pub type NpmResolverRc = crate::sync::MaybeArc; +pub type NpmPackageFolderResolverRc = + crate::sync::MaybeArc; -pub trait NpmResolver: std::fmt::Debug + MaybeSend + MaybeSync { - /// Resolves an npm package folder path from an npm package referrer. +pub trait NpmPackageFolderResolver: + std::fmt::Debug + MaybeSend + MaybeSync +{ + /// Resolves an npm package folder path from the specified referrer. fn resolve_package_folder_from_package( &self, specifier: &str, diff --git a/resolvers/node/package_json.rs b/resolvers/node/package_json.rs index 6967779e5d9113..ae016ebe3ec3c8 100644 --- a/resolvers/node/package_json.rs +++ b/resolvers/node/package_json.rs @@ -15,8 +15,8 @@ use crate::errors::CanonicalizingPkgJsonDirError; use crate::errors::ClosestPkgJsonError; use crate::errors::PackageJsonLoadError; -// todo(dsherret): this isn't exactly correct and we should change it to instead -// be created per worker and passed down as a ctor arg to the pkg json resolver +// it would be nice if this was passed down as a ctor arg to the package.json resolver, +// but it's a little bit complicated to do that, so we just maintain a thread local cache thread_local! { static CACHE: RefCell> = RefCell::new(HashMap::new()); } diff --git a/resolvers/node/resolution.rs b/resolvers/node/resolution.rs index d44539e9786ad9..c2ec25aca4968f 100644 --- a/resolvers/node/resolution.rs +++ b/resolvers/node/resolution.rs @@ -41,7 +41,7 @@ use crate::errors::TypesNotFoundErrorData; use crate::errors::UnsupportedDirImportError; use crate::errors::UnsupportedEsmUrlSchemeError; use crate::npm::InNpmPackageCheckerRc; -use crate::NpmResolverRc; +use crate::NpmPackageFolderResolverRc; use crate::PackageJsonResolverRc; use crate::PathClean; use deno_package_json::PackageJson; @@ -50,6 +50,15 @@ pub static DEFAULT_CONDITIONS: &[&str] = &["deno", "node", "import"]; pub static REQUIRE_CONDITIONS: &[&str] = &["require", "node"]; static TYPES_ONLY_CONDITIONS: &[&str] = &["types"]; +fn conditions_from_module_kind( + kind: NodeModuleKind, +) -> &'static [&'static str] { + match kind { + NodeModuleKind::Esm => DEFAULT_CONDITIONS, + NodeModuleKind::Cjs => REQUIRE_CONDITIONS, + } +} + pub type NodeModuleKind = deno_package_json::NodeModuleKind; #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -92,7 +101,7 @@ pub type NodeResolverRc = crate::sync::MaybeArc>; pub struct NodeResolver { env: TEnv, in_npm_pkg_checker: InNpmPackageCheckerRc, - npm_resolver: NpmResolverRc, + npm_pkg_folder_resolver: NpmPackageFolderResolverRc, pkg_json_resolver: PackageJsonResolverRc, } @@ -100,13 +109,13 @@ impl NodeResolver { pub fn new( env: TEnv, in_npm_pkg_checker: InNpmPackageCheckerRc, - npm_resolver: NpmResolverRc, + npm_pkg_folder_resolver: NpmPackageFolderResolverRc, pkg_json_resolver: PackageJsonResolverRc, ) -> Self { Self { env, in_npm_pkg_checker, - npm_resolver, + npm_pkg_folder_resolver, pkg_json_resolver, } } @@ -166,8 +175,7 @@ impl NodeResolver { specifier, referrer, referrer_kind, - // even though the referrer may be CJS, if we're here that means we're doing ESM resolution - DEFAULT_CONDITIONS, + conditions_from_module_kind(referrer_kind), mode, )?; @@ -194,7 +202,7 @@ impl NodeResolver { mode: NodeResolutionMode, ) -> Result { if should_be_treated_as_relative_or_absolute_path(specifier) { - Ok(referrer.join(specifier).map_err(|err| { + Ok(node_join_url(referrer, specifier).map_err(|err| { NodeResolveRelativeJoinError { path: specifier.to_string(), base: referrer.clone(), @@ -299,9 +307,9 @@ impl NodeResolver { package_dir: &Path, package_subpath: Option<&str>, maybe_referrer: Option<&Url>, + referrer_kind: NodeModuleKind, mode: NodeResolutionMode, ) -> Result { - let node_module_kind = NodeModuleKind::Esm; let package_subpath = package_subpath .map(|s| format!("./{s}")) .unwrap_or_else(|| ".".to_string()); @@ -309,8 +317,8 @@ impl NodeResolver { package_dir, &package_subpath, maybe_referrer, - node_module_kind, - DEFAULT_CONDITIONS, + referrer_kind, + conditions_from_module_kind(referrer_kind), mode, )?; // TODO(bartlomieju): skipped checking errors for commonJS resolution and @@ -441,10 +449,7 @@ impl NodeResolver { /* sub path */ ".", maybe_referrer, referrer_kind, - match referrer_kind { - NodeModuleKind::Esm => DEFAULT_CONDITIONS, - NodeModuleKind::Cjs => REQUIRE_CONDITIONS, - }, + conditions_from_module_kind(referrer_kind), NodeResolutionMode::Types, ); if let Ok(resolution) = resolution_result { @@ -1121,7 +1126,7 @@ impl NodeResolver { mode: NodeResolutionMode, ) -> Result { let package_dir_path = self - .npm_resolver + .npm_pkg_folder_resolver .resolve_package_folder_from_package(package_name, referrer)?; // todo: error with this instead when can't find package @@ -1407,6 +1412,25 @@ impl NodeResolver { ) } } + + /// Resolves a specifier that is pointing into a node_modules folder by canonicalizing it. + /// + /// Returns `None` when the specifier is not in a node_modules folder. + pub fn handle_if_in_node_modules(&self, specifier: &Url) -> Option { + // skip canonicalizing if we definitely know it's unnecessary + if specifier.scheme() == "file" + && specifier.path().contains("/node_modules/") + { + // Specifiers in the node_modules directory are canonicalized + // so canoncalize then check if it's in the node_modules directory. + let specifier = resolve_specifier_into_node_modules(specifier, &|path| { + self.env.realpath_sync(path) + }); + return Some(specifier); + } + + None + } } fn resolve_bin_entry_value<'a>( @@ -1655,6 +1679,28 @@ pub fn parse_npm_pkg_name( Ok((package_name, package_subpath, is_scoped)) } +/// Resolves a specifier that is pointing into a node_modules folder. +/// +/// Note: This should be called whenever getting the specifier from +/// a Module::External(module) reference because that module might +/// not be fully resolved at the time deno_graph is analyzing it +/// because the node_modules folder might not exist at that time. +pub fn resolve_specifier_into_node_modules( + specifier: &Url, + canonicalize: &impl Fn(&Path) -> std::io::Result, +) -> Url { + deno_path_util::url_to_file_path(specifier) + .ok() + // this path might not exist at the time the graph is being created + // because the node_modules folder might not yet exist + .and_then(|path| { + deno_path_util::canonicalize_path_maybe_not_exists(&path, canonicalize) + .ok() + }) + .and_then(|path| deno_path_util::url_from_file_path(&path).ok()) + .unwrap_or_else(|| specifier.clone()) +} + fn pattern_key_compare(a: &str, b: &str) -> i32 { let a_pattern_index = a.find('*'); let b_pattern_index = b.find('*'); @@ -1717,6 +1763,17 @@ fn get_module_name_from_builtin_node_module_specifier( Some(specifier) } +/// Node is more lenient joining paths than the url crate is, +/// so this function handles that. +fn node_join_url(url: &Url, path: &str) -> Result { + if let Some(suffix) = path.strip_prefix(".//") { + // specifier had two leading slashes + url.join(&format!("./{}", suffix)) + } else { + url.join(path) + } +} + #[cfg(test)] mod tests { use serde_json::json; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index ba236de149fad3..94fe4ce02bd2ac 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_runtime" -version = "0.186.0" +version = "0.188.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -100,6 +100,7 @@ deno_websocket.workspace = true deno_webstorage.workspace = true node_resolver = { workspace = true, features = ["sync"] } +async-trait.workspace = true color-print.workspace = true dlopen2.workspace = true encoding_rs.workspace = true @@ -114,7 +115,13 @@ log.workspace = true netif = "0.1.6" notify.workspace = true once_cell.workspace = true +opentelemetry.workspace = true +opentelemetry-http.workspace = true +opentelemetry-otlp.workspace = true +opentelemetry-semantic-conventions.workspace = true +opentelemetry_sdk.workspace = true percent-encoding.workspace = true +pin-project.workspace = true regex.workspace = true rustyline = { workspace = true, features = ["custom-bindings"] } same-file = "1.0.6" diff --git a/runtime/clippy.toml b/runtime/clippy.toml index 53676a90e6f2b2..79e6bbd08349fe 100644 --- a/runtime/clippy.toml +++ b/runtime/clippy.toml @@ -42,4 +42,5 @@ disallowed-methods = [ { path = "std::fs::write", reason = "File system operations should be done using FileSystem trait" }, { path = "std::path::Path::canonicalize", reason = "File system operations should be done using FileSystem trait" }, { path = "std::path::Path::exists", reason = "File system operations should be done using FileSystem trait" }, + { path = "std::process::exit", reason = "use deno_runtime::exit instead" }, ] diff --git a/runtime/code_cache.rs b/runtime/code_cache.rs index 2a56543a4127f8..b4a7ce188f5cdf 100644 --- a/runtime/code_cache.rs +++ b/runtime/code_cache.rs @@ -2,20 +2,12 @@ use deno_core::ModuleSpecifier; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum CodeCacheType { EsModule, Script, } -impl CodeCacheType { - pub fn as_str(&self) -> &str { - match self { - Self::EsModule => "esmodule", - Self::Script => "script", - } - } -} - pub trait CodeCache: Send + Sync { fn get_sync( &self, @@ -23,6 +15,7 @@ pub trait CodeCache: Send + Sync { code_cache_type: CodeCacheType, source_hash: u64, ) -> Option>; + fn set_sync( &self, specifier: ModuleSpecifier, diff --git a/runtime/examples/extension/main.rs b/runtime/examples/extension/main.rs index 9889b28dcf073f..1ff16ec83f69b1 100644 --- a/runtime/examples/extension/main.rs +++ b/runtime/examples/extension/main.rs @@ -50,6 +50,7 @@ async fn main() -> Result<(), AnyError> { node_services: Default::default(), npm_process_state_provider: Default::default(), root_cert_store_provider: Default::default(), + fetch_dns_resolver: Default::default(), shared_array_buffer_store: Default::default(), compiled_wasm_module_store: Default::default(), v8_code_cache: Default::default(), diff --git a/runtime/fmt_errors.rs b/runtime/fmt_errors.rs index 4cd8a063450e96..6c05fbc6334fd2 100644 --- a/runtime/fmt_errors.rs +++ b/runtime/fmt_errors.rs @@ -310,14 +310,13 @@ fn get_suggestions_for_terminal_errors(e: &JsError) -> Vec { { return vec![ FixSuggestion::info_multiline(&[ - cstr!("Deno supports CommonJS modules in .cjs files, or when there's a package.json"), - cstr!("with \"type\": \"commonjs\" option and --unstable-detect-cjs flag is used.") + cstr!("Deno supports CommonJS modules in .cjs files, or when the closest"), + cstr!("package.json has a \"type\": \"commonjs\" option.") ]), FixSuggestion::hint_multiline(&[ "Rewrite this module to ESM,", cstr!("or change the file extension to .cjs,"), - cstr!("or add package.json next to the file with \"type\": \"commonjs\" option"), - cstr!("and pass --unstable-detect-cjs flag."), + cstr!("or add package.json next to the file with \"type\": \"commonjs\" option."), ]), FixSuggestion::docs("https://docs.deno.com/go/commonjs"), ]; @@ -340,28 +339,40 @@ fn get_suggestions_for_terminal_errors(e: &JsError) -> Vec { FixSuggestion::info(cstr!( "Buffer is not available in the global scope in Deno." )), - FixSuggestion::hint(cstr!("Import it explicitly with import { Buffer } from \"node:buffer\";.")), + FixSuggestion::hint_multiline(&[ + cstr!("Import it explicitly with import { Buffer } from \"node:buffer\";,"), + cstr!("or run again with --unstable-node-globals flag to add this global."), + ]), ]; } else if msg.contains("clearImmediate is not defined") { return vec![ FixSuggestion::info(cstr!( "clearImmediate is not available in the global scope in Deno." )), - FixSuggestion::hint(cstr!("Import it explicitly with import { clearImmediate } from \"node:timers\";.")), + FixSuggestion::hint_multiline(&[ + cstr!("Import it explicitly with import { clearImmediate } from \"node:timers\";,"), + cstr!("or run again with --unstable-node-globals flag to add this global."), + ]), ]; } else if msg.contains("setImmediate is not defined") { return vec![ FixSuggestion::info(cstr!( "setImmediate is not available in the global scope in Deno." )), - FixSuggestion::hint(cstr!("Import it explicitly with import { setImmediate } from \"node:timers\";.")), + FixSuggestion::hint_multiline( + &[cstr!("Import it explicitly with import { setImmediate } from \"node:timers\";,"), + cstr!("or run again with --unstable-node-globals flag to add this global."), + ]), ]; } else if msg.contains("global is not defined") { return vec![ FixSuggestion::info(cstr!( "global is not available in the global scope in Deno." )), - FixSuggestion::hint(cstr!("Use globalThis instead, or assign globalThis.global = globalThis.")), + FixSuggestion::hint_multiline(&[ + cstr!("Use globalThis instead, or assign globalThis.global = globalThis,"), + cstr!("or run again with --unstable-node-globals flag to add this global."), + ]), ]; } else if msg.contains("openKv is not a function") { return vec![ diff --git a/runtime/js/90_deno_ns.js b/runtime/js/90_deno_ns.js index fd2ac00f2004c0..6300f599d90e16 100644 --- a/runtime/js/90_deno_ns.js +++ b/runtime/js/90_deno_ns.js @@ -29,6 +29,7 @@ import * as tty from "ext:runtime/40_tty.js"; import * as kv from "ext:deno_kv/01_db.ts"; import * as cron from "ext:deno_cron/01_cron.ts"; import * as webgpuSurface from "ext:deno_webgpu/02_surface.js"; +import * as telemetry from "ext:runtime/telemetry.ts"; const denoNs = { Process: process.Process, @@ -134,7 +135,7 @@ const denoNs = { createHttpClient: httpClient.createHttpClient, }; -// NOTE(bartlomieju): keep IDs in sync with `cli/main.rs` +// NOTE(bartlomieju): keep IDs in sync with `runtime/lib.rs` const unstableIds = { broadcastChannel: 1, cron: 2, @@ -143,11 +144,13 @@ const unstableIds = { http: 5, kv: 6, net: 7, - process: 8, - temporal: 9, - unsafeProto: 10, - webgpu: 11, - workerOptions: 12, + nodeGlobals: 8, + otel: 9, + process: 10, + temporal: 11, + unsafeProto: 12, + webgpu: 13, + workerOptions: 14, }; const denoNsUnstableById = { __proto__: null }; @@ -181,4 +184,8 @@ denoNsUnstableById[unstableIds.webgpu] = { // denoNsUnstableById[unstableIds.workerOptions] = { __proto__: null } +denoNsUnstableById[unstableIds.otel] = { + telemetry: telemetry.telemetry, +}; + export { denoNs, denoNsUnstableById, unstableIds }; diff --git a/runtime/js/98_global_scope_shared.js b/runtime/js/98_global_scope_shared.js index 7a27238996ed58..c01bde6fad68f6 100644 --- a/runtime/js/98_global_scope_shared.js +++ b/runtime/js/98_global_scope_shared.js @@ -32,6 +32,8 @@ import { DOMException } from "ext:deno_web/01_dom_exception.js"; import * as abortSignal from "ext:deno_web/03_abort_signal.js"; import * as imageData from "ext:deno_web/16_image_data.js"; import process from "node:process"; +import { Buffer } from "node:buffer"; +import { clearImmediate, setImmediate } from "node:timers"; import { loadWebGPU } from "ext:deno_webgpu/00_init.js"; import * as webgpuSurface from "ext:deno_webgpu/02_surface.js"; import { unstableIds } from "ext:runtime/90_deno_ns.js"; @@ -300,4 +302,15 @@ unstableForWindowOrWorkerGlobalScope[unstableIds.net] = { unstableForWindowOrWorkerGlobalScope[unstableIds.webgpu] = {}; +unstableForWindowOrWorkerGlobalScope[unstableIds.nodeGlobals] = { + Buffer: core.propWritable(Buffer), + setImmediate: core.propWritable(setImmediate), + clearImmediate: core.propWritable(clearImmediate), + global: { + enumerable: true, + configurable: true, + get: () => globalThis, + }, +}; + export { unstableForWindowOrWorkerGlobalScope, windowOrWorkerGlobalScope }; diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index 6ddaa1335ecc3d..eedca3396ec3be 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -86,6 +86,8 @@ import { workerRuntimeGlobalProperties, } from "ext:runtime/98_global_scope_worker.js"; import { SymbolDispose, SymbolMetadata } from "ext:deno_web/00_infra.js"; +import { bootstrap as bootstrapOtel } from "ext:runtime/telemetry.ts"; + // deno-lint-ignore prefer-primordials if (Symbol.metadata) { throw "V8 supports Symbol.metadata now, no need to shim it"; @@ -469,6 +471,8 @@ const NOT_IMPORTED_OPS = [ // Related to `Deno.jupyter` API "op_jupyter_broadcast", "op_jupyter_input", + // Used in jupyter API + "op_base64_encode", // Related to `Deno.test()` API "op_test_event_step_result_failed", @@ -573,6 +577,7 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) { 10: serveHost, 11: serveIsMain, 12: serveWorkerCount, + 13: otelConfig, } = runtimeOptions; if (mode === executionModes.serve) { @@ -673,9 +678,10 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) { }); ObjectSetPrototypeOf(globalThis, Window.prototype); + bootstrapOtel(otelConfig); + if (inspectFlag) { - const consoleFromDeno = globalThis.console; - core.wrapConsole(consoleFromDeno, core.v8Console); + core.wrapConsole(globalThis.console, core.v8Console); } event.defineEventHandler(globalThis, "error"); @@ -855,6 +861,7 @@ function bootstrapWorkerRuntime( 5: hasNodeModulesDir, 6: argv0, 7: nodeDebug, + 13: otelConfig, } = runtimeOptions; performance.setTimeOrigin(); @@ -882,8 +889,9 @@ function bootstrapWorkerRuntime( } ObjectSetPrototypeOf(globalThis, DedicatedWorkerGlobalScope.prototype); - const consoleFromDeno = globalThis.console; - core.wrapConsole(consoleFromDeno, core.v8Console); + bootstrapOtel(otelConfig); + + core.wrapConsole(globalThis.console, core.v8Console); event.defineEventHandler(self, "message"); event.defineEventHandler(self, "error", undefined, true); diff --git a/runtime/js/telemetry.ts b/runtime/js/telemetry.ts new file mode 100644 index 00000000000000..ecef3b5e68be13 --- /dev/null +++ b/runtime/js/telemetry.ts @@ -0,0 +1,720 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +import { core, primordials } from "ext:core/mod.js"; +import { + op_crypto_get_random_values, + op_otel_instrumentation_scope_create_and_enter, + op_otel_instrumentation_scope_enter, + op_otel_instrumentation_scope_enter_builtin, + op_otel_log, + op_otel_span_attribute, + op_otel_span_attribute2, + op_otel_span_attribute3, + op_otel_span_continue, + op_otel_span_flush, + op_otel_span_set_dropped, + op_otel_span_start, +} from "ext:core/ops"; +import { Console } from "ext:deno_console/01_console.js"; +import { performance } from "ext:deno_web/15_performance.js"; + +const { + SafeWeakMap, + Array, + ObjectEntries, + SafeMap, + ReflectApply, + SymbolFor, + Error, + Uint8Array, + TypedArrayPrototypeSubarray, + ObjectAssign, + ObjectDefineProperty, + WeakRefPrototypeDeref, + String, + ObjectPrototypeIsPrototypeOf, + DataView, + DataViewPrototypeSetUint32, + SafeWeakRef, + TypedArrayPrototypeGetBuffer, +} = primordials; +const { AsyncVariable, setAsyncContext } = core; + +let TRACING_ENABLED = false; +let DETERMINISTIC = false; + +enum SpanKind { + INTERNAL = 0, + SERVER = 1, + CLIENT = 2, + PRODUCER = 3, + CONSUMER = 4, +} + +interface TraceState { + set(key: string, value: string): TraceState; + unset(key: string): TraceState; + get(key: string): string | undefined; + serialize(): string; +} + +interface SpanContext { + traceId: string; + spanId: string; + isRemote?: boolean; + traceFlags: number; + traceState?: TraceState; +} + +type HrTime = [number, number]; + +enum SpanStatusCode { + UNSET = 0, + OK = 1, + ERROR = 2, +} + +interface SpanStatus { + code: SpanStatusCode; + message?: string; +} + +export type AttributeValue = + | string + | number + | boolean + | Array + | Array + | Array; + +interface Attributes { + [attributeKey: string]: AttributeValue | undefined; +} + +type SpanAttributes = Attributes; + +interface Link { + context: SpanContext; + attributes?: SpanAttributes; + droppedAttributesCount?: number; +} + +interface TimedEvent { + time: HrTime; + name: string; + attributes?: SpanAttributes; + droppedAttributesCount?: number; +} + +interface IArrayValue { + values: IAnyValue[]; +} + +interface IAnyValue { + stringValue?: string | null; + boolValue?: boolean | null; + intValue?: number | null; + doubleValue?: number | null; + arrayValue?: IArrayValue; + kvlistValue?: IKeyValueList; + bytesValue?: Uint8Array; +} + +interface IKeyValueList { + values: IKeyValue[]; +} + +interface IKeyValue { + key: string; + value: IAnyValue; +} +interface IResource { + attributes: IKeyValue[]; + droppedAttributesCount: number; +} + +interface InstrumentationLibrary { + readonly name: string; + readonly version?: string; + readonly schemaUrl?: string; +} + +interface ReadableSpan { + readonly name: string; + readonly kind: SpanKind; + readonly spanContext: () => SpanContext; + readonly parentSpanId?: string; + readonly startTime: HrTime; + readonly endTime: HrTime; + readonly status: SpanStatus; + readonly attributes: SpanAttributes; + readonly links: Link[]; + readonly events: TimedEvent[]; + readonly duration: HrTime; + readonly ended: boolean; + readonly resource: IResource; + readonly instrumentationLibrary: InstrumentationLibrary; + readonly droppedAttributesCount: number; + readonly droppedEventsCount: number; + readonly droppedLinksCount: number; +} + +enum ExportResultCode { + SUCCESS = 0, + FAILED = 1, +} + +interface ExportResult { + code: ExportResultCode; + error?: Error; +} + +function hrToSecs(hr: [number, number]): number { + return ((hr[0] * 1e3 + hr[1] / 1e6) / 1000); +} + +const TRACE_FLAG_SAMPLED = 1 << 0; + +const instrumentationScopes = new SafeWeakMap< + InstrumentationLibrary, + { __key: "instrumentation-library" } +>(); +let activeInstrumentationLibrary: WeakRef | null = null; + +function submit( + spanId: string | Uint8Array, + traceId: string | Uint8Array, + traceFlags: number, + parentSpanId: string | Uint8Array | null, + span: Omit< + ReadableSpan, + | "spanContext" + | "startTime" + | "endTime" + | "parentSpanId" + | "duration" + | "ended" + | "resource" + >, + startTime: number, + endTime: number, +) { + if (!(traceFlags & TRACE_FLAG_SAMPLED)) return; + + // TODO(@lucacasonato): `resource` is ignored for now, should we implement it? + + const instrumentationLibrary = span.instrumentationLibrary; + if ( + !activeInstrumentationLibrary || + WeakRefPrototypeDeref(activeInstrumentationLibrary) !== + instrumentationLibrary + ) { + activeInstrumentationLibrary = new SafeWeakRef(instrumentationLibrary); + if (instrumentationLibrary === BUILTIN_INSTRUMENTATION_LIBRARY) { + op_otel_instrumentation_scope_enter_builtin(); + } else { + let instrumentationScope = instrumentationScopes + .get(instrumentationLibrary); + + if (instrumentationScope === undefined) { + instrumentationScope = op_otel_instrumentation_scope_create_and_enter( + instrumentationLibrary.name, + instrumentationLibrary.version, + instrumentationLibrary.schemaUrl, + ) as { __key: "instrumentation-library" }; + instrumentationScopes.set( + instrumentationLibrary, + instrumentationScope, + ); + } else { + op_otel_instrumentation_scope_enter( + instrumentationScope, + ); + } + } + } + + op_otel_span_start( + traceId, + spanId, + parentSpanId, + span.kind, + span.name, + startTime, + endTime, + ); + + const status = span.status; + if (status !== null && status.code !== 0) { + op_otel_span_continue(status.code, status.message ?? ""); + } + + const attributeKvs = ObjectEntries(span.attributes); + let i = 0; + while (i < attributeKvs.length) { + if (i + 2 < attributeKvs.length) { + op_otel_span_attribute3( + attributeKvs.length, + attributeKvs[i][0], + attributeKvs[i][1], + attributeKvs[i + 1][0], + attributeKvs[i + 1][1], + attributeKvs[i + 2][0], + attributeKvs[i + 2][1], + ); + i += 3; + } else if (i + 1 < attributeKvs.length) { + op_otel_span_attribute2( + attributeKvs.length, + attributeKvs[i][0], + attributeKvs[i][1], + attributeKvs[i + 1][0], + attributeKvs[i + 1][1], + ); + i += 2; + } else { + op_otel_span_attribute( + attributeKvs.length, + attributeKvs[i][0], + attributeKvs[i][1], + ); + i += 1; + } + } + + // TODO(@lucacasonato): implement links + // TODO(@lucacasonato): implement events + + const droppedAttributesCount = span.droppedAttributesCount; + const droppedLinksCount = span.droppedLinksCount + span.links.length; + const droppedEventsCount = span.droppedEventsCount + span.events.length; + if ( + droppedAttributesCount > 0 || droppedLinksCount > 0 || + droppedEventsCount > 0 + ) { + op_otel_span_set_dropped( + droppedAttributesCount, + droppedLinksCount, + droppedEventsCount, + ); + } + + op_otel_span_flush(); +} + +const now = () => (performance.timeOrigin + performance.now()) / 1000; + +const SPAN_ID_BYTES = 8; +const TRACE_ID_BYTES = 16; + +const INVALID_TRACE_ID = new Uint8Array(TRACE_ID_BYTES); +const INVALID_SPAN_ID = new Uint8Array(SPAN_ID_BYTES); + +const NO_ASYNC_CONTEXT = {}; + +let otelLog: (message: string, level: number) => void; + +const hexSliceLookupTable = (function () { + const alphabet = "0123456789abcdef"; + const table = new Array(256); + for (let i = 0; i < 16; ++i) { + const i16 = i * 16; + for (let j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j]; + } + } + return table; +})(); + +function bytesToHex(bytes: Uint8Array): string { + let out = ""; + for (let i = 0; i < bytes.length; i += 1) { + out += hexSliceLookupTable[bytes[i]]; + } + return out; +} + +const SPAN_KEY = SymbolFor("OpenTelemetry Context Key SPAN"); + +const BUILTIN_INSTRUMENTATION_LIBRARY: InstrumentationLibrary = {} as never; + +let COUNTER = 1; + +export let enterSpan: (span: Span) => void; +export let exitSpan: (span: Span) => void; +export let endSpan: (span: Span) => void; + +export class Span { + #traceId: string | Uint8Array; + #spanId: Uint8Array; + #traceFlags = TRACE_FLAG_SAMPLED; + + #spanContext: SpanContext | null = null; + + #parentSpanId: string | Uint8Array | null = null; + #parentSpanIdString: string | null = null; + + #recording = TRACING_ENABLED; + + #kind: number = 0; + #name: string; + #startTime: number; + #status: { code: number; message?: string } | null = null; + #attributes: Attributes = { __proto__: null } as never; + + #droppedEventsCount = 0; + #droppedLinksCount = 0; + + #asyncContext = NO_ASYNC_CONTEXT; + + static { + otelLog = function otelLog(message, level) { + let traceId = null; + let spanId = null; + let traceFlags = 0; + const span = CURRENT.get()?.getValue(SPAN_KEY); + if (span) { + // The lint is wrong, we can not use anything but `in` here because this + // is a private field. + // deno-lint-ignore prefer-primordials + if (#traceId in span) { + traceId = span.#traceId; + spanId = span.#spanId; + traceFlags = span.#traceFlags; + } else { + const context = span.spanContext(); + traceId = context.traceId; + spanId = context.spanId; + traceFlags = context.traceFlags; + } + } + return op_otel_log(message, level, traceId, spanId, traceFlags); + }; + + enterSpan = (span: Span) => { + if (!span.#recording) return; + const context = (CURRENT.get() || ROOT_CONTEXT).setValue(SPAN_KEY, span); + span.#asyncContext = CURRENT.enter(context); + }; + + exitSpan = (span: Span) => { + if (!span.#recording) return; + if (span.#asyncContext === NO_ASYNC_CONTEXT) return; + setAsyncContext(span.#asyncContext); + span.#asyncContext = NO_ASYNC_CONTEXT; + }; + + exitSpan = (span: Span) => { + const endTime = now(); + submit( + span.#spanId, + span.#traceId, + span.#traceFlags, + span.#parentSpanId, + { + name: span.#name, + kind: span.#kind, + status: span.#status ?? { code: 0 }, + attributes: span.#attributes, + events: [], + links: [], + droppedAttributesCount: 0, + droppedEventsCount: span.#droppedEventsCount, + droppedLinksCount: span.#droppedLinksCount, + instrumentationLibrary: BUILTIN_INSTRUMENTATION_LIBRARY, + }, + span.#startTime, + endTime, + ); + }; + } + + constructor( + name: string, + attributes?: Attributes, + ) { + if (!this.isRecording) { + this.#name = ""; + this.#startTime = 0; + this.#traceId = INVALID_TRACE_ID; + this.#spanId = INVALID_SPAN_ID; + this.#traceFlags = 0; + return; + } + + this.#name = name; + this.#startTime = now(); + this.#attributes = attributes ?? { __proto__: null } as never; + + const currentSpan: Span | { + spanContext(): { traceId: string; spanId: string }; + } = CURRENT.get()?.getValue(SPAN_KEY); + if (!currentSpan) { + const buffer = new Uint8Array(TRACE_ID_BYTES + SPAN_ID_BYTES); + if (DETERMINISTIC) { + DataViewPrototypeSetUint32( + new DataView(TypedArrayPrototypeGetBuffer(buffer)), + TRACE_ID_BYTES - 4, + COUNTER, + true, + ); + COUNTER += 1; + DataViewPrototypeSetUint32( + new DataView(TypedArrayPrototypeGetBuffer(buffer)), + TRACE_ID_BYTES + SPAN_ID_BYTES - 4, + COUNTER, + true, + ); + COUNTER += 1; + } else { + op_crypto_get_random_values(buffer); + } + this.#traceId = TypedArrayPrototypeSubarray(buffer, 0, TRACE_ID_BYTES); + this.#spanId = TypedArrayPrototypeSubarray(buffer, TRACE_ID_BYTES); + } else { + this.#spanId = new Uint8Array(SPAN_ID_BYTES); + if (DETERMINISTIC) { + DataViewPrototypeSetUint32( + new DataView(TypedArrayPrototypeGetBuffer(this.#spanId)), + SPAN_ID_BYTES - 4, + COUNTER, + true, + ); + COUNTER += 1; + } else { + op_crypto_get_random_values(this.#spanId); + } + // deno-lint-ignore prefer-primordials + if (#traceId in currentSpan) { + this.#traceId = currentSpan.#traceId; + this.#parentSpanId = currentSpan.#spanId; + } else { + const context = currentSpan.spanContext(); + this.#traceId = context.traceId; + this.#parentSpanId = context.spanId; + } + } + } + + spanContext() { + if (!this.#spanContext) { + this.#spanContext = { + traceId: typeof this.#traceId === "string" + ? this.#traceId + : bytesToHex(this.#traceId), + spanId: typeof this.#spanId === "string" + ? this.#spanId + : bytesToHex(this.#spanId), + traceFlags: this.#traceFlags, + }; + } + return this.#spanContext; + } + + get parentSpanId() { + if (!this.#parentSpanIdString && this.#parentSpanId) { + if (typeof this.#parentSpanId === "string") { + this.#parentSpanIdString = this.#parentSpanId; + } else { + this.#parentSpanIdString = bytesToHex(this.#parentSpanId); + } + } + return this.#parentSpanIdString; + } + + setAttribute(name: string, value: AttributeValue) { + if (this.#recording) this.#attributes[name] = value; + return this; + } + + setAttributes(attributes: Attributes) { + if (this.#recording) ObjectAssign(this.#attributes, attributes); + return this; + } + + setStatus(status: { code: number; message?: string }) { + if (this.#recording) { + if (status.code === 0) { + this.#status = null; + } else if (status.code > 2) { + throw new Error("Invalid status code"); + } else { + this.#status = status; + } + } + return this; + } + + updateName(name: string) { + if (this.#recording) this.#name = name; + return this; + } + + addEvent(_name: never) { + // TODO(@lucacasonato): implement events + if (this.#recording) this.#droppedEventsCount += 1; + return this; + } + + addLink(_link: never) { + // TODO(@lucacasonato): implement links + if (this.#recording) this.#droppedLinksCount += 1; + return this; + } + + addLinks(links: never[]) { + // TODO(@lucacasonato): implement links + if (this.#recording) this.#droppedLinksCount += links.length; + return this; + } + + isRecording() { + return this.#recording; + } +} + +// Exporter compatible with opentelemetry js library +class SpanExporter { + export( + spans: ReadableSpan[], + resultCallback: (result: ExportResult) => void, + ) { + try { + for (let i = 0; i < spans.length; i += 1) { + const span = spans[i]; + const context = span.spanContext(); + submit( + context.spanId, + context.traceId, + context.traceFlags, + span.parentSpanId ?? null, + span, + hrToSecs(span.startTime), + hrToSecs(span.endTime), + ); + } + resultCallback({ code: 0 }); + } catch (error) { + resultCallback({ + code: 1, + error: ObjectPrototypeIsPrototypeOf(error, Error) + ? error as Error + : new Error(String(error)), + }); + } + } + + async shutdown() {} + + async forceFlush() {} +} + +const CURRENT = new AsyncVariable(); + +class Context { + #data = new SafeMap(); + + // deno-lint-ignore no-explicit-any + constructor(data?: Iterable | null | undefined) { + this.#data = data ? new SafeMap(data) : new SafeMap(); + } + + getValue(key: symbol): unknown { + return this.#data.get(key); + } + + setValue(key: symbol, value: unknown): Context { + const c = new Context(this.#data); + c.#data.set(key, value); + return c; + } + + deleteValue(key: symbol): Context { + const c = new Context(this.#data); + c.#data.delete(key); + return c; + } +} + +// TODO(lucacasonato): @opentelemetry/api defines it's own ROOT_CONTEXT +const ROOT_CONTEXT = new Context(); + +// Context manager for opentelemetry js library +class ContextManager { + active(): Context { + return CURRENT.get() ?? ROOT_CONTEXT; + } + + with ReturnType>( + context: Context, + fn: F, + thisArg?: ThisParameterType, + ...args: A + ): ReturnType { + const ctx = CURRENT.enter(context); + try { + return ReflectApply(fn, thisArg, args); + } finally { + setAsyncContext(ctx); + } + } + + // deno-lint-ignore no-explicit-any + bind any>( + context: Context, + target: T, + ): T { + return ((...args) => { + const ctx = CURRENT.enter(context); + try { + return ReflectApply(target, this, args); + } finally { + setAsyncContext(ctx); + } + }) as T; + } + + enable() { + return this; + } + + disable() { + return this; + } +} + +const otelConsoleConfig = { + ignore: 0, + capture: 1, + replace: 2, +}; + +export function bootstrap( + config: [] | [ + typeof otelConsoleConfig[keyof typeof otelConsoleConfig], + number, + ], +): void { + if (config.length === 0) return; + const { 0: consoleConfig, 1: deterministic } = config; + + TRACING_ENABLED = true; + DETERMINISTIC = deterministic === 1; + + switch (consoleConfig) { + case otelConsoleConfig.capture: + core.wrapConsole(globalThis.console, new Console(otelLog)); + break; + case otelConsoleConfig.replace: + ObjectDefineProperty( + globalThis, + "console", + core.propNonEnumerable(new Console(otelLog)), + ); + break; + default: + break; + } +} + +export const telemetry = { SpanExporter, ContextManager }; diff --git a/runtime/lib.rs b/runtime/lib.rs index 62c5865fea36aa..5a613000c82ea8 100644 --- a/runtime/lib.rs +++ b/runtime/lib.rs @@ -34,6 +34,7 @@ pub mod js; pub mod ops; pub mod permissions; pub mod snapshot; +pub mod sys_info; pub mod tokio_util; pub mod web_worker; pub mod worker; @@ -98,18 +99,30 @@ pub static UNSTABLE_GRANULAR_FLAGS: &[UnstableGranularFlag] = &[ show_in_help: true, id: 7, }, + UnstableGranularFlag { + name: "node-globals", + help_text: "Expose Node globals everywhere", + show_in_help: true, + id: 8, + }, + UnstableGranularFlag { + name: "otel", + help_text: "Enable unstable OpenTelemetry features", + show_in_help: false, + id: 9, + }, // TODO(bartlomieju): consider removing it UnstableGranularFlag { name: ops::process::UNSTABLE_FEATURE_NAME, help_text: "Enable unstable process APIs", show_in_help: false, - id: 8, + id: 10, }, UnstableGranularFlag { name: "temporal", help_text: "Enable unstable Temporal API", show_in_help: true, - id: 9, + id: 11, }, UnstableGranularFlag { name: "unsafe-proto", @@ -117,22 +130,28 @@ pub static UNSTABLE_GRANULAR_FLAGS: &[UnstableGranularFlag] = &[ show_in_help: true, // This number is used directly in the JS code. Search // for "unstableIds" to see where it's used. - id: 10, + id: 12, }, UnstableGranularFlag { name: deno_webgpu::UNSTABLE_FEATURE_NAME, help_text: "Enable unstable `WebGPU` APIs", show_in_help: true, - id: 11, + id: 13, }, UnstableGranularFlag { name: ops::worker_host::UNSTABLE_FEATURE_NAME, help_text: "Enable unstable Web Worker APIs", show_in_help: true, - id: 12, + id: 14, }, ]; +pub fn exit(code: i32) -> ! { + crate::ops::otel::flush(); + #[allow(clippy::disallowed_methods)] + std::process::exit(code); +} + #[cfg(test)] mod test { use super::*; diff --git a/runtime/ops/fs_events.rs b/runtime/ops/fs_events.rs index b238b8d783c288..477e6c07d66fcd 100644 --- a/runtime/ops/fs_events.rs +++ b/runtime/ops/fs_events.rs @@ -110,7 +110,7 @@ fn starts_with_canonicalized(path: &Path, prefix: &str) -> bool { } } -deno_core::js_error_wrapper!(NotifyError, JsNotifyError, |err| { +deno_error::js_error_wrapper!(NotifyError, JsNotifyError, |err| { match &err.kind { notify::ErrorKind::Generic(_) => GENERIC_ERROR, notify::ErrorKind::Io(e) => e.get_class(), @@ -121,7 +121,7 @@ deno_core::js_error_wrapper!(NotifyError, JsNotifyError, |err| { } }); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum FsEventsError { #[class(inherit)] #[error(transparent)] @@ -178,7 +178,7 @@ fn start_watcher( Ok(()) } -#[op2] +#[op2(stack_trace)] #[smi] fn op_fs_events_open( state: &mut OpState, diff --git a/runtime/ops/http.rs b/runtime/ops/http.rs index f6dd6de39ca559..3fe3cea1aa0804 100644 --- a/runtime/ops/http.rs +++ b/runtime/ops/http.rs @@ -13,7 +13,7 @@ pub const UNSTABLE_FEATURE_NAME: &str = "http"; deno_core::extension!(deno_http_runtime, ops = [op_http_start],); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum HttpStartError { #[class("Busy")] #[error("TCP stream is currently in use")] @@ -24,11 +24,11 @@ pub enum HttpStartError { #[class("Busy")] #[error("Unix socket is currently in use")] UnixSocketInUse, - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] ReuniteTcp(#[from] tokio::net::tcp::ReuniteError), #[cfg(unix)] - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] ReuniteUnix(#[from] tokio::net::unix::ReuniteError), #[class(inherit)] diff --git a/runtime/ops/mod.rs b/runtime/ops/mod.rs index 67065b901b8504..c2e402f33c967f 100644 --- a/runtime/ops/mod.rs +++ b/runtime/ops/mod.rs @@ -4,6 +4,7 @@ pub mod bootstrap; pub mod fs_events; pub mod http; pub mod os; +pub mod otel; pub mod permissions; pub mod process; pub mod runtime; diff --git a/runtime/ops/os/mod.rs b/runtime/ops/os/mod.rs index 49eeb9d228f686..d5959ddcf98ca4 100644 --- a/runtime/ops/os/mod.rs +++ b/runtime/ops/os/mod.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use crate::sys_info; use crate::worker::ExitCode; use deno_core::op2; use deno_core::v8; @@ -11,8 +12,6 @@ use serde::Serialize; use std::collections::HashMap; use std::env; -mod sys_info; - deno_core::extension!( deno_os, ops = [ @@ -70,7 +69,7 @@ deno_core::extension!( }, ); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum OsError { #[class(inherit)] #[error(transparent)] @@ -78,13 +77,13 @@ pub enum OsError { #[class("InvalidData")] #[error("File name or path {0:?} is not valid UTF-8")] InvalidUtf8(std::ffi::OsString), - #[class(TYPE)] + #[class(type)] #[error("Key is an empty string.")] EnvEmptyKey, - #[class(TYPE)] + #[class(type)] #[error("Key contains invalid characters: {0:?}")] EnvInvalidKey(String), - #[class(TYPE)] + #[class(type)] #[error("Value contains invalid characters: {0:?}")] EnvInvalidValue(String), #[class(inherit)] @@ -95,7 +94,7 @@ pub enum OsError { Io(#[from] #[inherit] std::io::Error), } -#[op2] +#[op2(stack_trace)] #[string] fn op_exec_path(state: &mut OpState) -> Result { let current_exe = env::current_exe().unwrap(); @@ -111,7 +110,7 @@ fn op_exec_path(state: &mut OpState) -> Result { .map_err(OsError::InvalidUtf8) } -#[op2(fast)] +#[op2(fast, stack_trace)] fn op_set_env( state: &mut OpState, #[string] key: &str, @@ -131,7 +130,7 @@ fn op_set_env( Ok(()) } -#[op2] +#[op2(stack_trace)] #[serde] fn op_env( state: &mut OpState, @@ -140,7 +139,7 @@ fn op_env( Ok(env::vars().collect()) } -#[op2] +#[op2(stack_trace)] #[string] fn op_get_env( state: &mut OpState, @@ -167,7 +166,7 @@ fn op_get_env( Ok(r) } -#[op2(fast)] +#[op2(fast, stack_trace)] fn op_delete_env( state: &mut OpState, #[string] key: String, @@ -194,10 +193,10 @@ fn op_get_exit_code(state: &mut OpState) -> i32 { #[op2(fast)] fn op_exit(state: &mut OpState) { let code = state.borrow::().get(); - std::process::exit(code) + crate::exit(code) } -#[op2] +#[op2(stack_trace)] #[serde] fn op_loadavg( state: &mut OpState, @@ -208,7 +207,7 @@ fn op_loadavg( Ok(sys_info::loadavg()) } -#[op2] +#[op2(stack_trace, stack_trace)] #[string] fn op_hostname( state: &mut OpState, @@ -219,7 +218,7 @@ fn op_hostname( Ok(sys_info::hostname()) } -#[op2] +#[op2(stack_trace)] #[string] fn op_os_release( state: &mut OpState, @@ -230,7 +229,7 @@ fn op_os_release( Ok(sys_info::os_release()) } -#[op2] +#[op2(stack_trace)] #[serde] fn op_network_interfaces( state: &mut OpState, @@ -282,7 +281,7 @@ impl From for NetworkInterface { } } -#[op2] +#[op2(stack_trace)] #[serde] fn op_system_memory_info( state: &mut OpState, @@ -294,7 +293,7 @@ fn op_system_memory_info( } #[cfg(not(windows))] -#[op2] +#[op2(stack_trace)] #[smi] fn op_gid( state: &mut OpState, @@ -310,7 +309,7 @@ fn op_gid( } #[cfg(windows)] -#[op2] +#[op2(stack_trace)] #[smi] fn op_gid( state: &mut OpState, @@ -322,7 +321,7 @@ fn op_gid( } #[cfg(not(windows))] -#[op2] +#[op2(stack_trace)] #[smi] fn op_uid( state: &mut OpState, @@ -338,7 +337,7 @@ fn op_uid( } #[cfg(windows)] -#[op2] +#[op2(stack_trace)] #[smi] fn op_uid( state: &mut OpState, @@ -527,7 +526,7 @@ fn os_uptime(state: &mut OpState) -> Result { Ok(sys_info::os_uptime()) } -#[op2(fast)] +#[op2(fast, stack_trace)] #[number] fn op_os_uptime( state: &mut OpState, diff --git a/runtime/ops/otel.rs b/runtime/ops/otel.rs new file mode 100644 index 00000000000000..61a7b0ef0dff8f --- /dev/null +++ b/runtime/ops/otel.rs @@ -0,0 +1,855 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +use crate::tokio_util::create_basic_runtime; +use deno_core::anyhow; +use deno_core::anyhow::anyhow; +use deno_core::futures::channel::mpsc; +use deno_core::futures::channel::mpsc::UnboundedSender; +use deno_core::futures::future::BoxFuture; +use deno_core::futures::stream; +use deno_core::futures::Stream; +use deno_core::futures::StreamExt; +use deno_core::op2; +use deno_core::v8; +use deno_core::OpState; +use once_cell::sync::Lazy; +use once_cell::sync::OnceCell; +use opentelemetry::logs::AnyValue; +use opentelemetry::logs::LogRecord as LogRecordTrait; +use opentelemetry::logs::Severity; +use opentelemetry::trace::SpanContext; +use opentelemetry::trace::SpanId; +use opentelemetry::trace::SpanKind; +use opentelemetry::trace::Status as SpanStatus; +use opentelemetry::trace::TraceFlags; +use opentelemetry::trace::TraceId; +use opentelemetry::Key; +use opentelemetry::KeyValue; +use opentelemetry::StringValue; +use opentelemetry::Value; +use opentelemetry_otlp::HttpExporterBuilder; +use opentelemetry_otlp::Protocol; +use opentelemetry_otlp::WithExportConfig; +use opentelemetry_otlp::WithHttpConfig; +use opentelemetry_sdk::export::trace::SpanData; +use opentelemetry_sdk::logs::BatchLogProcessor; +use opentelemetry_sdk::logs::LogProcessor as LogProcessorTrait; +use opentelemetry_sdk::logs::LogRecord; +use opentelemetry_sdk::trace::BatchSpanProcessor; +use opentelemetry_sdk::trace::SpanProcessor as SpanProcessorTrait; +use opentelemetry_sdk::Resource; +use opentelemetry_semantic_conventions::resource::PROCESS_RUNTIME_NAME; +use opentelemetry_semantic_conventions::resource::PROCESS_RUNTIME_VERSION; +use opentelemetry_semantic_conventions::resource::TELEMETRY_SDK_LANGUAGE; +use opentelemetry_semantic_conventions::resource::TELEMETRY_SDK_NAME; +use opentelemetry_semantic_conventions::resource::TELEMETRY_SDK_VERSION; +use serde::Deserialize; +use serde::Serialize; +use std::borrow::Cow; +use std::env; +use std::fmt::Debug; +use std::pin::Pin; +use std::task::Context; +use std::task::Poll; +use std::thread; +use std::time::Duration; +use std::time::SystemTime; + +type SpanProcessor = BatchSpanProcessor; +type LogProcessor = BatchLogProcessor; + +deno_core::extension!( + deno_otel, + ops = [ + op_otel_log, + op_otel_instrumentation_scope_create_and_enter, + op_otel_instrumentation_scope_enter, + op_otel_instrumentation_scope_enter_builtin, + op_otel_span_start, + op_otel_span_continue, + op_otel_span_attribute, + op_otel_span_attribute2, + op_otel_span_attribute3, + op_otel_span_set_dropped, + op_otel_span_flush, + ], +); + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct OtelConfig { + pub runtime_name: Cow<'static, str>, + pub runtime_version: Cow<'static, str>, + pub console: OtelConsoleConfig, + pub deterministic: bool, +} + +#[derive(Debug, Clone, Copy, Serialize, Deserialize)] +#[repr(u8)] +pub enum OtelConsoleConfig { + Ignore = 0, + Capture = 1, + Replace = 2, +} + +impl Default for OtelConfig { + fn default() -> Self { + Self { + runtime_name: Cow::Borrowed(env!("CARGO_PKG_NAME")), + runtime_version: Cow::Borrowed(env!("CARGO_PKG_VERSION")), + console: OtelConsoleConfig::Capture, + deterministic: false, + } + } +} + +static OTEL_SHARED_RUNTIME_SPAWN_TASK_TX: Lazy< + UnboundedSender>, +> = Lazy::new(otel_create_shared_runtime); + +fn otel_create_shared_runtime() -> UnboundedSender> { + let (spawn_task_tx, mut spawn_task_rx) = + mpsc::unbounded::>(); + + thread::spawn(move || { + let rt = create_basic_runtime(); + rt.block_on(async move { + while let Some(task) = spawn_task_rx.next().await { + tokio::spawn(task); + } + }); + }); + + spawn_task_tx +} + +#[derive(Clone, Copy)] +struct OtelSharedRuntime; + +impl hyper::rt::Executor> for OtelSharedRuntime { + fn execute(&self, fut: BoxFuture<'static, ()>) { + (*OTEL_SHARED_RUNTIME_SPAWN_TASK_TX) + .unbounded_send(fut) + .expect("failed to send task to shared OpenTelemetry runtime"); + } +} + +impl opentelemetry_sdk::runtime::Runtime for OtelSharedRuntime { + type Interval = Pin + Send + 'static>>; + type Delay = Pin>; + + fn interval(&self, period: Duration) -> Self::Interval { + stream::repeat(()) + .then(move |_| tokio::time::sleep(period)) + .boxed() + } + + fn spawn(&self, future: BoxFuture<'static, ()>) { + (*OTEL_SHARED_RUNTIME_SPAWN_TASK_TX) + .unbounded_send(future) + .expect("failed to send task to shared OpenTelemetry runtime"); + } + + fn delay(&self, duration: Duration) -> Self::Delay { + Box::pin(tokio::time::sleep(duration)) + } +} + +impl opentelemetry_sdk::runtime::RuntimeChannel for OtelSharedRuntime { + type Receiver = BatchMessageChannelReceiver; + type Sender = BatchMessageChannelSender; + + fn batch_message_channel( + &self, + capacity: usize, + ) -> (Self::Sender, Self::Receiver) { + let (batch_tx, batch_rx) = tokio::sync::mpsc::channel::(capacity); + (batch_tx.into(), batch_rx.into()) + } +} + +#[derive(Debug)] +pub struct BatchMessageChannelSender { + sender: tokio::sync::mpsc::Sender, +} + +impl From> + for BatchMessageChannelSender +{ + fn from(sender: tokio::sync::mpsc::Sender) -> Self { + Self { sender } + } +} + +impl opentelemetry_sdk::runtime::TrySend + for BatchMessageChannelSender +{ + type Message = T; + + fn try_send( + &self, + item: Self::Message, + ) -> Result<(), opentelemetry_sdk::runtime::TrySendError> { + self.sender.try_send(item).map_err(|err| match err { + tokio::sync::mpsc::error::TrySendError::Full(_) => { + opentelemetry_sdk::runtime::TrySendError::ChannelFull + } + tokio::sync::mpsc::error::TrySendError::Closed(_) => { + opentelemetry_sdk::runtime::TrySendError::ChannelClosed + } + }) + } +} + +pub struct BatchMessageChannelReceiver { + receiver: tokio::sync::mpsc::Receiver, +} + +impl From> + for BatchMessageChannelReceiver +{ + fn from(receiver: tokio::sync::mpsc::Receiver) -> Self { + Self { receiver } + } +} + +impl Stream for BatchMessageChannelReceiver { + type Item = T; + + fn poll_next( + mut self: Pin<&mut Self>, + cx: &mut Context<'_>, + ) -> Poll> { + self.receiver.poll_recv(cx) + } +} + +mod hyper_client { + use http_body_util::BodyExt; + use http_body_util::Full; + use hyper::body::Body as HttpBody; + use hyper::body::Frame; + use hyper_util::client::legacy::connect::HttpConnector; + use hyper_util::client::legacy::Client; + use opentelemetry_http::Bytes; + use opentelemetry_http::HttpError; + use opentelemetry_http::Request; + use opentelemetry_http::Response; + use opentelemetry_http::ResponseExt; + use std::fmt::Debug; + use std::pin::Pin; + use std::task::Poll; + use std::task::{self}; + + use super::OtelSharedRuntime; + + // same as opentelemetry_http::HyperClient except it uses OtelSharedRuntime + #[derive(Debug, Clone)] + pub struct HyperClient { + inner: Client, + } + + impl HyperClient { + pub fn new() -> Self { + Self { + inner: Client::builder(OtelSharedRuntime).build(HttpConnector::new()), + } + } + } + + #[async_trait::async_trait] + impl opentelemetry_http::HttpClient for HyperClient { + async fn send( + &self, + request: Request>, + ) -> Result, HttpError> { + let (parts, body) = request.into_parts(); + let request = Request::from_parts(parts, Body(Full::from(body))); + let mut response = self.inner.request(request).await?; + let headers = std::mem::take(response.headers_mut()); + + let mut http_response = Response::builder() + .status(response.status()) + .body(response.into_body().collect().await?.to_bytes())?; + *http_response.headers_mut() = headers; + + Ok(http_response.error_for_status()?) + } + } + + #[pin_project::pin_project] + pub struct Body(#[pin] Full); + + impl HttpBody for Body { + type Data = Bytes; + type Error = Box; + + #[inline] + fn poll_frame( + self: Pin<&mut Self>, + cx: &mut task::Context<'_>, + ) -> Poll, Self::Error>>> { + self.project().0.poll_frame(cx).map_err(Into::into) + } + + #[inline] + fn is_end_stream(&self) -> bool { + self.0.is_end_stream() + } + + #[inline] + fn size_hint(&self) -> hyper::body::SizeHint { + self.0.size_hint() + } + } +} + +static OTEL_PROCESSORS: OnceCell<(SpanProcessor, LogProcessor)> = + OnceCell::new(); + +static BUILT_IN_INSTRUMENTATION_SCOPE: OnceCell< + opentelemetry::InstrumentationScope, +> = OnceCell::new(); + +pub fn init(config: OtelConfig) -> anyhow::Result<()> { + // Parse the `OTEL_EXPORTER_OTLP_PROTOCOL` variable. The opentelemetry_* + // crates don't do this automatically. + // TODO(piscisaureus): enable GRPC support. + let protocol = match env::var("OTEL_EXPORTER_OTLP_PROTOCOL").as_deref() { + Ok("http/protobuf") => Protocol::HttpBinary, + Ok("http/json") => Protocol::HttpJson, + Ok("") | Err(env::VarError::NotPresent) => { + return Ok(()); + } + Ok(protocol) => { + return Err(anyhow!( + "Env var OTEL_EXPORTER_OTLP_PROTOCOL specifies an unsupported protocol: {}", + protocol + )); + } + Err(err) => { + return Err(anyhow!( + "Failed to read env var OTEL_EXPORTER_OTLP_PROTOCOL: {}", + err + )); + } + }; + + // Define the resource attributes that will be attached to all log records. + // These attributes are sourced as follows (in order of precedence): + // * The `service.name` attribute from the `OTEL_SERVICE_NAME` env var. + // * Additional attributes from the `OTEL_RESOURCE_ATTRIBUTES` env var. + // * Default attribute values defined here. + // TODO(piscisaureus): add more default attributes (e.g. script path). + let mut resource = Resource::default(); + + // Add the runtime name and version to the resource attributes. Also override + // the `telemetry.sdk` attributes to include the Deno runtime. + resource = resource.merge(&Resource::new(vec![ + KeyValue::new(PROCESS_RUNTIME_NAME, config.runtime_name), + KeyValue::new(PROCESS_RUNTIME_VERSION, config.runtime_version.clone()), + KeyValue::new( + TELEMETRY_SDK_LANGUAGE, + format!( + "deno-{}", + resource.get(Key::new(TELEMETRY_SDK_LANGUAGE)).unwrap() + ), + ), + KeyValue::new( + TELEMETRY_SDK_NAME, + format!( + "deno-{}", + resource.get(Key::new(TELEMETRY_SDK_NAME)).unwrap() + ), + ), + KeyValue::new( + TELEMETRY_SDK_VERSION, + format!( + "{}-{}", + config.runtime_version, + resource.get(Key::new(TELEMETRY_SDK_VERSION)).unwrap() + ), + ), + ])); + + // The OTLP endpoint is automatically picked up from the + // `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable. Additional headers can + // be specified using `OTEL_EXPORTER_OTLP_HEADERS`. + + let client = hyper_client::HyperClient::new(); + + let span_exporter = HttpExporterBuilder::default() + .with_http_client(client.clone()) + .with_protocol(protocol) + .build_span_exporter()?; + let mut span_processor = + BatchSpanProcessor::builder(span_exporter, OtelSharedRuntime).build(); + span_processor.set_resource(&resource); + + let log_exporter = HttpExporterBuilder::default() + .with_http_client(client) + .with_protocol(protocol) + .build_log_exporter()?; + let log_processor = + BatchLogProcessor::builder(log_exporter, OtelSharedRuntime).build(); + log_processor.set_resource(&resource); + + OTEL_PROCESSORS + .set((span_processor, log_processor)) + .map_err(|_| anyhow!("failed to init otel"))?; + + let builtin_instrumentation_scope = + opentelemetry::InstrumentationScope::builder("deno") + .with_version(config.runtime_version.clone()) + .build(); + BUILT_IN_INSTRUMENTATION_SCOPE + .set(builtin_instrumentation_scope) + .map_err(|_| anyhow!("failed to init otel"))?; + + Ok(()) +} + +/// This function is called by the runtime whenever it is about to call +/// `process::exit()`, to ensure that all OpenTelemetry logs are properly +/// flushed before the process terminates. +pub fn flush() { + if let Some((span_processor, log_processor)) = OTEL_PROCESSORS.get() { + let _ = span_processor.force_flush(); + let _ = log_processor.force_flush(); + } +} + +pub fn handle_log(record: &log::Record) { + use log::Level; + + let Some((_, log_processor)) = OTEL_PROCESSORS.get() else { + return; + }; + + let mut log_record = LogRecord::default(); + + log_record.set_observed_timestamp(SystemTime::now()); + log_record.set_severity_number(match record.level() { + Level::Error => Severity::Error, + Level::Warn => Severity::Warn, + Level::Info => Severity::Info, + Level::Debug => Severity::Debug, + Level::Trace => Severity::Trace, + }); + log_record.set_severity_text(record.level().as_str()); + log_record.set_body(record.args().to_string().into()); + log_record.set_target(record.metadata().target().to_string()); + + struct Visitor<'s>(&'s mut LogRecord); + + impl<'s, 'kvs> log::kv::VisitSource<'kvs> for Visitor<'s> { + fn visit_pair( + &mut self, + key: log::kv::Key<'kvs>, + value: log::kv::Value<'kvs>, + ) -> Result<(), log::kv::Error> { + #[allow(clippy::manual_map)] + let value = if let Some(v) = value.to_bool() { + Some(AnyValue::Boolean(v)) + } else if let Some(v) = value.to_borrowed_str() { + Some(AnyValue::String(v.to_owned().into())) + } else if let Some(v) = value.to_f64() { + Some(AnyValue::Double(v)) + } else if let Some(v) = value.to_i64() { + Some(AnyValue::Int(v)) + } else { + None + }; + + if let Some(value) = value { + let key = Key::from(key.as_str().to_owned()); + self.0.add_attribute(key, value); + } + + Ok(()) + } + } + + let _ = record.key_values().visit(&mut Visitor(&mut log_record)); + + log_processor.emit( + &mut log_record, + BUILT_IN_INSTRUMENTATION_SCOPE.get().unwrap(), + ); +} + +fn parse_trace_id( + scope: &mut v8::HandleScope<'_>, + trace_id: v8::Local<'_, v8::Value>, +) -> TraceId { + if let Ok(string) = trace_id.try_cast() { + let value_view = v8::ValueView::new(scope, string); + match value_view.data() { + v8::ValueViewData::OneByte(bytes) => { + TraceId::from_hex(&String::from_utf8_lossy(bytes)) + .unwrap_or(TraceId::INVALID) + } + + _ => TraceId::INVALID, + } + } else if let Ok(uint8array) = trace_id.try_cast::() { + let data = uint8array.data(); + let byte_length = uint8array.byte_length(); + if byte_length != 16 { + return TraceId::INVALID; + } + // SAFETY: We have ensured that the byte length is 16, so it is safe to + // cast the data to an array of 16 bytes. + let bytes = unsafe { &*(data as *const u8 as *const [u8; 16]) }; + TraceId::from_bytes(*bytes) + } else { + TraceId::INVALID + } +} + +fn parse_span_id( + scope: &mut v8::HandleScope<'_>, + span_id: v8::Local<'_, v8::Value>, +) -> SpanId { + if let Ok(string) = span_id.try_cast() { + let value_view = v8::ValueView::new(scope, string); + match value_view.data() { + v8::ValueViewData::OneByte(bytes) => { + SpanId::from_hex(&String::from_utf8_lossy(bytes)) + .unwrap_or(SpanId::INVALID) + } + _ => SpanId::INVALID, + } + } else if let Ok(uint8array) = span_id.try_cast::() { + let data = uint8array.data(); + let byte_length = uint8array.byte_length(); + if byte_length != 8 { + return SpanId::INVALID; + } + // SAFETY: We have ensured that the byte length is 8, so it is safe to + // cast the data to an array of 8 bytes. + let bytes = unsafe { &*(data as *const u8 as *const [u8; 8]) }; + SpanId::from_bytes(*bytes) + } else { + SpanId::INVALID + } +} + +macro_rules! attr { + ($scope:ident, $attributes:expr $(=> $dropped_attributes_count:expr)?, $name:expr, $value:expr) => { + let name = if let Ok(name) = $name.try_cast() { + let view = v8::ValueView::new($scope, name); + match view.data() { + v8::ValueViewData::OneByte(bytes) => { + Some(String::from_utf8_lossy(bytes).into_owned()) + } + v8::ValueViewData::TwoByte(bytes) => { + Some(String::from_utf16_lossy(bytes)) + } + } + } else { + None + }; + let value = if let Ok(string) = $value.try_cast::() { + Some(Value::String(StringValue::from({ + let x = v8::ValueView::new($scope, string); + match x.data() { + v8::ValueViewData::OneByte(bytes) => { + String::from_utf8_lossy(bytes).into_owned() + } + v8::ValueViewData::TwoByte(bytes) => String::from_utf16_lossy(bytes), + } + }))) + } else if let Ok(number) = $value.try_cast::() { + Some(Value::F64(number.value())) + } else if let Ok(boolean) = $value.try_cast::() { + Some(Value::Bool(boolean.is_true())) + } else if let Ok(bigint) = $value.try_cast::() { + let (i64_value, _lossless) = bigint.i64_value(); + Some(Value::I64(i64_value)) + } else { + None + }; + if let (Some(name), Some(value)) = (name, value) { + $attributes.push(KeyValue::new(name, value)); + } + $( + else { + $dropped_attributes_count += 1; + } + )? + }; +} + +#[derive(Debug, Clone)] +struct InstrumentationScope(opentelemetry::InstrumentationScope); + +impl deno_core::GarbageCollected for InstrumentationScope {} + +#[op2] +#[cppgc] +fn op_otel_instrumentation_scope_create_and_enter( + state: &mut OpState, + #[string] name: String, + #[string] version: Option, + #[string] schema_url: Option, +) -> InstrumentationScope { + let mut builder = opentelemetry::InstrumentationScope::builder(name); + if let Some(version) = version { + builder = builder.with_version(version); + } + if let Some(schema_url) = schema_url { + builder = builder.with_schema_url(schema_url); + } + let scope = InstrumentationScope(builder.build()); + state.put(scope.clone()); + scope +} + +#[op2(fast)] +fn op_otel_instrumentation_scope_enter( + state: &mut OpState, + #[cppgc] scope: &InstrumentationScope, +) { + state.put(scope.clone()); +} + +#[op2(fast)] +fn op_otel_instrumentation_scope_enter_builtin(state: &mut OpState) { + state.put(InstrumentationScope( + BUILT_IN_INSTRUMENTATION_SCOPE.get().unwrap().clone(), + )); +} + +#[op2(fast)] +fn op_otel_log( + scope: &mut v8::HandleScope<'_>, + #[string] message: String, + #[smi] level: i32, + trace_id: v8::Local<'_, v8::Value>, + span_id: v8::Local<'_, v8::Value>, + #[smi] trace_flags: u8, +) { + let Some((_, log_processor)) = OTEL_PROCESSORS.get() else { + return; + }; + + // Convert the integer log level that ext/console uses to the corresponding + // OpenTelemetry log severity. + let severity = match level { + ..=0 => Severity::Debug, + 1 => Severity::Info, + 2 => Severity::Warn, + 3.. => Severity::Error, + }; + + let trace_id = parse_trace_id(scope, trace_id); + let span_id = parse_span_id(scope, span_id); + + let mut log_record = LogRecord::default(); + + log_record.set_observed_timestamp(SystemTime::now()); + log_record.set_body(message.into()); + log_record.set_severity_number(severity); + log_record.set_severity_text(severity.name()); + if trace_id != TraceId::INVALID && span_id != SpanId::INVALID { + log_record.set_trace_context( + trace_id, + span_id, + Some(TraceFlags::new(trace_flags)), + ); + } + + log_processor.emit( + &mut log_record, + BUILT_IN_INSTRUMENTATION_SCOPE.get().unwrap(), + ); +} + +struct TemporarySpan(SpanData); + +#[allow(clippy::too_many_arguments)] +#[op2(fast)] +fn op_otel_span_start<'s>( + scope: &mut v8::HandleScope<'s>, + state: &mut OpState, + trace_id: v8::Local<'s, v8::Value>, + span_id: v8::Local<'s, v8::Value>, + parent_span_id: v8::Local<'s, v8::Value>, + #[smi] span_kind: u8, + name: v8::Local<'s, v8::Value>, + start_time: f64, + end_time: f64, +) -> Result<(), anyhow::Error> { + if let Some(temporary_span) = state.try_take::() { + let Some((span_processor, _)) = OTEL_PROCESSORS.get() else { + return Ok(()); + }; + span_processor.on_end(temporary_span.0); + }; + + let Some(InstrumentationScope(instrumentation_scope)) = + state.try_borrow::() + else { + return Err(anyhow!("instrumentation scope not available")); + }; + + let trace_id = parse_trace_id(scope, trace_id); + if trace_id == TraceId::INVALID { + return Err(anyhow!("invalid trace_id")); + } + + let span_id = parse_span_id(scope, span_id); + if span_id == SpanId::INVALID { + return Err(anyhow!("invalid span_id")); + } + + let parent_span_id = parse_span_id(scope, parent_span_id); + + let name = { + let x = v8::ValueView::new(scope, name.try_cast()?); + match x.data() { + v8::ValueViewData::OneByte(bytes) => { + String::from_utf8_lossy(bytes).into_owned() + } + v8::ValueViewData::TwoByte(bytes) => String::from_utf16_lossy(bytes), + } + }; + + let temporary_span = TemporarySpan(SpanData { + span_context: SpanContext::new( + trace_id, + span_id, + TraceFlags::SAMPLED, + false, + Default::default(), + ), + parent_span_id, + span_kind: match span_kind { + 0 => SpanKind::Internal, + 1 => SpanKind::Server, + 2 => SpanKind::Client, + 3 => SpanKind::Producer, + 4 => SpanKind::Consumer, + _ => return Err(anyhow!("invalid span kind")), + }, + name: Cow::Owned(name), + start_time: SystemTime::UNIX_EPOCH + .checked_add(std::time::Duration::from_secs_f64(start_time)) + .ok_or_else(|| anyhow!("invalid start time"))?, + end_time: SystemTime::UNIX_EPOCH + .checked_add(std::time::Duration::from_secs_f64(end_time)) + .ok_or_else(|| anyhow!("invalid start time"))?, + attributes: Vec::new(), + dropped_attributes_count: 0, + events: Default::default(), + links: Default::default(), + status: SpanStatus::Unset, + instrumentation_scope: instrumentation_scope.clone(), + }); + state.put(temporary_span); + + Ok(()) +} + +#[op2(fast)] +fn op_otel_span_continue( + state: &mut OpState, + #[smi] status: u8, + #[string] error_description: Cow<'_, str>, +) { + if let Some(temporary_span) = state.try_borrow_mut::() { + temporary_span.0.status = match status { + 0 => SpanStatus::Unset, + 1 => SpanStatus::Ok, + 2 => SpanStatus::Error { + description: Cow::Owned(error_description.into_owned()), + }, + _ => return, + }; + } +} + +#[op2(fast)] +fn op_otel_span_attribute<'s>( + scope: &mut v8::HandleScope<'s>, + state: &mut OpState, + #[smi] capacity: u32, + key: v8::Local<'s, v8::Value>, + value: v8::Local<'s, v8::Value>, +) { + if let Some(temporary_span) = state.try_borrow_mut::() { + temporary_span.0.attributes.reserve_exact( + (capacity as usize) - temporary_span.0.attributes.capacity(), + ); + attr!(scope, temporary_span.0.attributes => temporary_span.0.dropped_attributes_count, key, value); + } +} + +#[op2(fast)] +fn op_otel_span_attribute2<'s>( + scope: &mut v8::HandleScope<'s>, + state: &mut OpState, + #[smi] capacity: u32, + key1: v8::Local<'s, v8::Value>, + value1: v8::Local<'s, v8::Value>, + key2: v8::Local<'s, v8::Value>, + value2: v8::Local<'s, v8::Value>, +) { + if let Some(temporary_span) = state.try_borrow_mut::() { + temporary_span.0.attributes.reserve_exact( + (capacity as usize) - temporary_span.0.attributes.capacity(), + ); + attr!(scope, temporary_span.0.attributes => temporary_span.0.dropped_attributes_count, key1, value1); + attr!(scope, temporary_span.0.attributes => temporary_span.0.dropped_attributes_count, key2, value2); + } +} + +#[allow(clippy::too_many_arguments)] +#[op2(fast)] +fn op_otel_span_attribute3<'s>( + scope: &mut v8::HandleScope<'s>, + state: &mut OpState, + #[smi] capacity: u32, + key1: v8::Local<'s, v8::Value>, + value1: v8::Local<'s, v8::Value>, + key2: v8::Local<'s, v8::Value>, + value2: v8::Local<'s, v8::Value>, + key3: v8::Local<'s, v8::Value>, + value3: v8::Local<'s, v8::Value>, +) { + if let Some(temporary_span) = state.try_borrow_mut::() { + temporary_span.0.attributes.reserve_exact( + (capacity as usize) - temporary_span.0.attributes.capacity(), + ); + attr!(scope, temporary_span.0.attributes => temporary_span.0.dropped_attributes_count, key1, value1); + attr!(scope, temporary_span.0.attributes => temporary_span.0.dropped_attributes_count, key2, value2); + attr!(scope, temporary_span.0.attributes => temporary_span.0.dropped_attributes_count, key3, value3); + } +} + +#[op2(fast)] +fn op_otel_span_set_dropped( + state: &mut OpState, + #[smi] dropped_attributes_count: u32, + #[smi] dropped_links_count: u32, + #[smi] dropped_events_count: u32, +) { + if let Some(temporary_span) = state.try_borrow_mut::() { + temporary_span.0.dropped_attributes_count = dropped_attributes_count; + temporary_span.0.links.dropped_count = dropped_links_count; + temporary_span.0.events.dropped_count = dropped_events_count; + } +} + +#[op2(fast)] +fn op_otel_span_flush(state: &mut OpState) { + let Some(temporary_span) = state.try_take::() else { + return; + }; + + let Some((span_processor, _)) = OTEL_PROCESSORS.get() else { + return; + }; + + span_processor.on_end(temporary_span.0); +} diff --git a/runtime/ops/permissions.rs b/runtime/ops/permissions.rs index c9529641ecfa14..374f011fa635f6 100644 --- a/runtime/ops/permissions.rs +++ b/runtime/ops/permissions.rs @@ -45,23 +45,23 @@ impl From for PermissionStatus { } } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum PermissionError { #[class("ReferenceError")] #[error("No such permission name: {0}")] InvalidPermissionName(String), #[class(inherit)] #[error("{0}")] - PathResolve(#[from] #[inherit] ::deno_permissions::PathResolveError), - #[class(URI)] + PathResolve(#[from] ::deno_permissions::PathResolveError), + #[class(uri)] #[error("{0}")] NetDescriptorParse(#[from] ::deno_permissions::NetDescriptorParseError), #[class(inherit)] #[error("{0}")] - SysDescriptorParse(#[from] #[inherit] ::deno_permissions::SysDescriptorParseError), + SysDescriptorParse(#[from] ::deno_permissions::SysDescriptorParseError), #[class(inherit)] #[error("{0}")] - RunDescriptorParse(#[from] #[inherit] ::deno_permissions::RunDescriptorParseError), + RunDescriptorParse(#[from] ::deno_permissions::RunDescriptorParseError), } #[op2] @@ -104,7 +104,7 @@ pub fn op_revoke_permission( Ok(PermissionStatus::from(perm)) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_request_permission( state: &mut OpState, diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index b2092781e48a4f..fbd174498ac017 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -191,7 +191,7 @@ pub struct SpawnArgs { } #[cfg(unix)] -deno_core::js_error_wrapper!(nix::Error, JsNixError, |err| { +deno_error::js_error_wrapper!(nix::Error, JsNixError, |err| { match err { nix::Error::ECHILD => "NotFound", nix::Error::EINVAL => "TypeError", @@ -209,7 +209,7 @@ deno_core::js_error_wrapper!(nix::Error, JsNixError, |err| { } }); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ProcessError { #[class(inherit)] #[error("Failed to spawn '{command}': {error}")] @@ -237,16 +237,16 @@ pub enum ProcessError { #[class(inherit)] #[error(transparent)] Resource(#[inherit] deno_core::error::ResourceError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] BorrowMut(std::cell::BorrowMutError), - #[class(GENERIC)] + #[class(generic)] #[error(transparent)] Which(which::Error), - #[class(TYPE)] + #[class(type)] #[error("Child process has already terminated.")] ChildProcessAlreadyTerminated, - #[class(TYPE)] + #[class(type)] #[error("Invalid pid")] InvalidPid, #[class(inherit)] @@ -255,7 +255,7 @@ pub enum ProcessError { #[class(inherit)] #[error(transparent)] Other(#[from] #[inherit] JsNativeError), - #[class(TYPE)] + #[class(type)] #[error("Missing cmd")] MissingCmd, // only for Deno.run } @@ -770,7 +770,7 @@ fn resolve_path(path: &str, cwd: &Path) -> PathBuf { deno_path_util::normalize_path(cwd.join(path)) } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CheckRunPermissionError { #[class(inherit)] #[error(transparent)] diff --git a/runtime/ops/signal.rs b/runtime/ops/signal.rs index 570cccd65c0272..002c4df81cd100 100644 --- a/runtime/ops/signal.rs +++ b/runtime/ops/signal.rs @@ -44,7 +44,7 @@ deno_core::extension!( } ); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum SignalError { #[cfg(any( target_os = "android", @@ -55,7 +55,7 @@ pub enum SignalError { target_os = "solaris", target_os = "illumos" ))] - #[class(TYPE)] + #[class(type)] #[error("Invalid signal: {0}")] InvalidSignalStr(String), #[cfg(any( @@ -67,18 +67,18 @@ pub enum SignalError { target_os = "solaris", target_os = "illumos" ))] - #[class(TYPE)] + #[class(type)] #[error("Invalid signal: {0}")] InvalidSignalInt(libc::c_int), #[cfg(target_os = "windows")] - #[class(TYPE)] + #[class(type)] #[error("Windows only supports ctrl-c (SIGINT) and ctrl-break (SIGBREAK), but got {0}")] InvalidSignalStr(String), #[cfg(target_os = "windows")] - #[class(TYPE)] + #[class(type)] #[error("Windows only supports ctrl-c (SIGINT) and ctrl-break (SIGBREAK), but got {0}")] InvalidSignalInt(libc::c_int), - #[class(TYPE)] + #[class(type)] #[error("Binding to signal '{0}' is not allowed")] SignalNotAllowed(String), #[class(inherit)] diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index 8d5147742c796d..8aea9704fcecff 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -65,7 +65,7 @@ deno_core::extension!( }, ); -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum TtyError { #[class(inherit)] #[error(transparent)] @@ -442,7 +442,7 @@ mod tests { } } -deno_core::js_error_wrapper!(ReadlineError, JsReadlineError, |err| { +deno_error::js_error_wrapper!(ReadlineError, JsReadlineError, |err| { match err { ReadlineError::Io(e) => e.get_class(), ReadlineError::Eof => GENERIC_ERROR, diff --git a/runtime/ops/web_worker/sync_fetch.rs b/runtime/ops/web_worker/sync_fetch.rs index 574d42102879e2..a7afd6972a0fee 100644 --- a/runtime/ops/web_worker/sync_fetch.rs +++ b/runtime/ops/web_worker/sync_fetch.rs @@ -25,24 +25,24 @@ fn mime_type_essence(mime_type: &str) -> String { essence.trim().to_ascii_lowercase() } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum SyncFetchError { - #[class(TYPE)] + #[class(type)] #[error("Blob URLs are not supported in this context.")] BlobUrlsNotSupportedInContext, #[class(inherit)] #[error("{0}")] Io(#[from] #[inherit] std::io::Error), - #[class(TYPE)] + #[class(type)] #[error("Invalid script URL")] InvalidScriptUrl, - #[class(TYPE)] + #[class(type)] #[error("http status error: {0}")] InvalidStatusCode(http::StatusCode), - #[class(TYPE)] + #[class(type)] #[error("Classic scripts with scheme {0}: are not supported in workers")] ClassicScriptSchemeUnsupportedInWorkers(String), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] InvalidUri(#[from] http::uri::InvalidUri), #[class("DOMExceptionNetworkError")] diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs index 545da6a26bd057..acc87cd5833f06 100644 --- a/runtime/ops/worker_host.rs +++ b/runtime/ops/worker_host.rs @@ -118,7 +118,7 @@ pub struct CreateWorkerArgs { close_on_idle: bool, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum CreateWorkerError { #[class("DOMExceptionNotSupportedError")] #[error("Classic workers are not supported.")] @@ -138,7 +138,7 @@ pub enum CreateWorkerError { } /// Create worker as the host -#[op2] +#[op2(stack_trace)] #[serde] fn op_create_worker( state: &mut OpState, diff --git a/runtime/permissions/Cargo.toml b/runtime/permissions/Cargo.toml index e088eb8ce53813..65f40bc32ac7f2 100644 --- a/runtime/permissions/Cargo.toml +++ b/runtime/permissions/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_permissions" -version = "0.37.0" +version = "0.39.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -15,6 +15,7 @@ path = "lib.rs" [dependencies] deno_core.workspace = true +deno_error.workspace = true deno_path_util.workspace = true deno_terminal.workspace = true fqdn = "0.3.4" diff --git a/runtime/permissions/lib.rs b/runtime/permissions/lib.rs index 29791524c7e62f..8b8b110ba99c6c 100644 --- a/runtime/permissions/lib.rs +++ b/runtime/permissions/lib.rs @@ -40,8 +40,8 @@ pub use prompter::PromptResponse; #[derive(Debug, thiserror::Error)] #[error("Requires {access}, {}", format_permission_error(.name))] pub struct PermissionDeniedError { - access: String, - name: &'static str, + pub access: String, + pub name: &'static str, } fn format_permission_error(name: &'static str) -> String { @@ -294,7 +294,7 @@ impl UnitPermission { /// A normalized environment variable name. On Windows this will /// be uppercase and on other platforms it will stay as-is. #[derive(Clone, Eq, PartialEq, Hash, Debug)] -struct EnvVarName { +pub struct EnvVarName { inner: String, } @@ -805,8 +805,8 @@ pub enum Host { Ip(IpAddr), } -#[derive(Debug, thiserror::Error, deno_core::JsError)] -#[class(URI)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(uri)] pub enum HostParseError { #[error("invalid IPv6 address: '{0}'")] InvalidIpv6(String), @@ -941,9 +941,9 @@ pub enum NetDescriptorParseError { Host(#[from] HostParseError), } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum NetDescriptorFromUrlParseError { - #[class(TYPE)] + #[class(type)] #[error("Missing host in url: '{0}'")] MissingHost(Url), #[class(inherit)] @@ -1117,15 +1117,37 @@ impl ImportDescriptor { pub struct EnvDescriptorParseError; #[derive(Clone, Eq, PartialEq, Hash, Debug)] -pub struct EnvDescriptor(EnvVarName); +pub enum EnvDescriptor { + Name(EnvVarName), + PrefixPattern(EnvVarName), +} impl EnvDescriptor { pub fn new(env: impl AsRef) -> Self { - Self(EnvVarName::new(env)) + if let Some(prefix_pattern) = env.as_ref().strip_suffix('*') { + Self::PrefixPattern(EnvVarName::new(prefix_pattern)) + } else { + Self::Name(EnvVarName::new(env)) + } } } -impl QueryDescriptor for EnvDescriptor { +#[derive(Clone, Eq, PartialEq, Hash, Debug)] +enum EnvQueryDescriptorInner { + Name(EnvVarName), + PrefixPattern(EnvVarName), +} + +#[derive(Clone, Eq, PartialEq, Hash, Debug)] +pub struct EnvQueryDescriptor(EnvQueryDescriptorInner); + +impl EnvQueryDescriptor { + pub fn new(env: impl AsRef) -> Self { + Self(EnvQueryDescriptorInner::Name(EnvVarName::new(env))) + } +} + +impl QueryDescriptor for EnvQueryDescriptor { type AllowDesc = EnvDescriptor; type DenyDesc = EnvDescriptor; @@ -1134,19 +1156,45 @@ impl QueryDescriptor for EnvDescriptor { } fn display_name(&self) -> Cow { - Cow::from(self.0.as_ref()) + Cow::from(match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => env_var_name.as_ref(), + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + env_var_name.as_ref() + } + }) } fn from_allow(allow: &Self::AllowDesc) -> Self { - allow.clone() + match allow { + Self::AllowDesc::Name(s) => { + Self(EnvQueryDescriptorInner::Name(s.clone())) + } + Self::AllowDesc::PrefixPattern(s) => { + Self(EnvQueryDescriptorInner::PrefixPattern(s.clone())) + } + } } fn as_allow(&self) -> Option { - Some(self.clone()) + Some(match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => { + Self::AllowDesc::Name(env_var_name.clone()) + } + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + Self::AllowDesc::PrefixPattern(env_var_name.clone()) + } + }) } fn as_deny(&self) -> Self::DenyDesc { - self.clone() + match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => { + Self::DenyDesc::Name(env_var_name.clone()) + } + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + Self::DenyDesc::PrefixPattern(env_var_name.clone()) + } + } } fn check_in_permission( @@ -1159,19 +1207,79 @@ impl QueryDescriptor for EnvDescriptor { } fn matches_allow(&self, other: &Self::AllowDesc) -> bool { - self == other + match other { + Self::AllowDesc::Name(n) => match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => n == env_var_name, + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + env_var_name.as_ref().starts_with(n.as_ref()) + } + }, + Self::AllowDesc::PrefixPattern(p) => match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => { + env_var_name.as_ref().starts_with(p.as_ref()) + } + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + env_var_name.as_ref().starts_with(p.as_ref()) + } + }, + } } fn matches_deny(&self, other: &Self::DenyDesc) -> bool { - self == other + match other { + Self::AllowDesc::Name(n) => match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => n == env_var_name, + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + env_var_name.as_ref().starts_with(n.as_ref()) + } + }, + Self::AllowDesc::PrefixPattern(p) => match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => { + env_var_name.as_ref().starts_with(p.as_ref()) + } + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + p == env_var_name + } + }, + } } fn revokes(&self, other: &Self::AllowDesc) -> bool { - self == other + match other { + Self::AllowDesc::Name(n) => match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => n == env_var_name, + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + env_var_name.as_ref().starts_with(n.as_ref()) + } + }, + Self::AllowDesc::PrefixPattern(p) => match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => { + env_var_name.as_ref().starts_with(p.as_ref()) + } + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + p == env_var_name + } + }, + } } fn stronger_than_deny(&self, other: &Self::DenyDesc) -> bool { - self == other + match other { + Self::AllowDesc::Name(n) => match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => n == env_var_name, + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + env_var_name.as_ref().starts_with(n.as_ref()) + } + }, + Self::AllowDesc::PrefixPattern(p) => match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => { + env_var_name.as_ref().starts_with(p.as_ref()) + } + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + p == env_var_name + } + }, + } } fn overlaps_deny(&self, _other: &Self::DenyDesc) -> bool { @@ -1179,9 +1287,14 @@ impl QueryDescriptor for EnvDescriptor { } } -impl AsRef for EnvDescriptor { +impl AsRef for EnvQueryDescriptor { fn as_ref(&self) -> &str { - self.0.as_ref() + match &self.0 { + EnvQueryDescriptorInner::Name(env_var_name) => env_var_name.as_ref(), + EnvQueryDescriptorInner::PrefixPattern(env_var_name) => { + env_var_name.as_ref() + } + } } } @@ -1200,12 +1313,12 @@ pub enum RunQueryDescriptor { Name(String), } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum PathResolveError { #[class(inherit)] #[error("failed resolving cwd: {0}")] CwdResolve(#[source] #[inherit] std::io::Error), - #[class(GENERIC)] + #[class(generic)] #[error("Empty path is not allowed")] EmptyPath, } @@ -1362,15 +1475,15 @@ pub enum AllowRunDescriptorParseResult { Descriptor(AllowRunDescriptor), } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum RunDescriptorParseError { - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] Which(#[from] which::Error), #[class(inherit)] #[error("{0}")] PathResolve(#[from] #[inherit] PathResolveError), - #[class(GENERIC)] + #[class(generic)] #[error("Empty run query is not allowed")] EmptyRunQuery, } @@ -1455,12 +1568,12 @@ fn denies_run_name(name: &str, cmd_path: &Path) -> bool { suffix.is_empty() || suffix.starts_with('.') } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum SysDescriptorParseError { - #[class(TYPE)] + #[class(type)] #[error("unknown system info kind \"{0}\"")] InvalidKind(String), - #[class(GENERIC)] + #[class(generic)] #[error("Empty sys not allowed")] Empty, // Error } @@ -1471,7 +1584,7 @@ pub struct SysDescriptor(String); impl SysDescriptor { pub fn parse(kind: String) -> Result { match kind.as_str() { - "hostname" | "osRelease" | "osUptime" | "loadavg" + "hostname" | "inspector" | "osRelease" | "osUptime" | "loadavg" | "networkInterfaces" | "systemMemoryInfo" | "uid" | "gid" | "cpus" | "homedir" | "getegid" | "statfs" | "getPriority" | "setPriority" | "userInfo" => Ok(Self(kind)), @@ -1759,20 +1872,20 @@ impl UnaryPermission { } } -impl UnaryPermission { +impl UnaryPermission { pub fn query(&self, env: Option<&str>) -> PermissionState { self.query_desc( - env.map(EnvDescriptor::new).as_ref(), + env.map(EnvQueryDescriptor::new).as_ref(), AllowPartial::TreatAsPartialGranted, ) } pub fn request(&mut self, env: Option<&str>) -> PermissionState { - self.request_desc(env.map(EnvDescriptor::new).as_ref()) + self.request_desc(env.map(EnvQueryDescriptor::new).as_ref()) } pub fn revoke(&mut self, env: Option<&str>) -> PermissionState { - self.revoke_desc(env.map(EnvDescriptor::new).as_ref()) + self.revoke_desc(env.map(EnvQueryDescriptor::new).as_ref()) } pub fn check( @@ -1781,7 +1894,7 @@ impl UnaryPermission { api_name: Option<&str>, ) -> Result<(), PermissionDeniedError> { skip_check_if_is_permission_fully_granted!(self); - self.check_desc(Some(&EnvDescriptor::new(env)), false, api_name) + self.check_desc(Some(&EnvQueryDescriptor::new(env)), false, api_name) } pub fn check_all(&mut self) -> Result<(), PermissionDeniedError> { @@ -1915,7 +2028,7 @@ pub struct Permissions { pub read: UnaryPermission, pub write: UnaryPermission, pub net: UnaryPermission, - pub env: UnaryPermission, + pub env: UnaryPermission, pub sys: UnaryPermission, pub run: UnaryPermission, pub ffi: UnaryPermission, @@ -2185,46 +2298,46 @@ pub enum CheckSpecifierKind { Dynamic, } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ChildPermissionError { #[class("NotCapable")] #[error("Can't escalate parent thread permissions")] Escalation, #[class(inherit)] #[error("{0}")] - PathResolve(#[from] #[inherit] PathResolveError), - #[class(URI)] + PathResolve(#[from] PathResolveError), + #[class(uri)] #[error("{0}")] NetDescriptorParse(#[from] NetDescriptorParseError), - #[class(GENERIC)] + #[class(generic)] #[error("{0}")] EnvDescriptorParse(#[from] EnvDescriptorParseError), #[class(inherit)] #[error("{0}")] - SysDescriptorParse(#[from] #[inherit] SysDescriptorParseError), + SysDescriptorParse(#[from] SysDescriptorParseError), #[class(inherit)] #[error("{0}")] - RunDescriptorParse(#[from] #[inherit] RunDescriptorParseError), + RunDescriptorParse(#[from] RunDescriptorParseError), } -#[derive(Debug, thiserror::Error, deno_core::JsError)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum PermissionCheckError { #[class("NotCapable")] #[error(transparent)] PermissionDenied(#[from] PermissionDeniedError), - #[class(URI)] + #[class(uri)] #[error("Invalid file path.\n Specifier: {0}")] InvalidFilePath(Url), #[class(inherit)] #[error(transparent)] - NetDescriptorForUrlParse(#[from] #[inherit] NetDescriptorFromUrlParseError), + NetDescriptorForUrlParse(#[from] NetDescriptorFromUrlParseError), #[class(inherit)] #[error(transparent)] - SysDescriptorParse(#[from] #[inherit] SysDescriptorParseError), + SysDescriptorParse(#[from] SysDescriptorParseError), #[class(inherit)] #[error(transparent)] - PathResolve(#[from] #[inherit] PathResolveError), - #[class(URI)] + PathResolve(#[from] PathResolveError), + #[class(uri)] #[error(transparent)] HostParse(#[from] HostParseError), } @@ -4586,6 +4699,56 @@ mod tests { assert_eq!(perms.env.revoke(Some("HomE")), PermissionState::Prompt); } + #[test] + fn test_env_wildcards() { + set_prompter(Box::new(TestPrompter)); + let _prompt_value = PERMISSION_PROMPT_STUB_VALUE_SETTER.lock(); + let mut perms = Permissions::allow_all(); + perms.env = UnaryPermission { + granted_global: false, + ..Permissions::new_unary( + Some(HashSet::from([EnvDescriptor::new("HOME_*")])), + None, + false, + ) + }; + assert_eq!(perms.env.query(Some("HOME")), PermissionState::Prompt); + assert_eq!(perms.env.query(Some("HOME_")), PermissionState::Granted); + assert_eq!(perms.env.query(Some("HOME_TEST")), PermissionState::Granted); + + // assert no privilege escalation + let parser = TestPermissionDescriptorParser; + assert!(perms + .env + .create_child_permissions( + ChildUnaryPermissionArg::GrantedList(vec!["HOME_SUB".to_string()]), + |value| parser.parse_env_descriptor(value).map(Some), + ) + .is_ok()); + assert!(perms + .env + .create_child_permissions( + ChildUnaryPermissionArg::GrantedList(vec!["HOME*".to_string()]), + |value| parser.parse_env_descriptor(value).map(Some), + ) + .is_err()); + assert!(perms + .env + .create_child_permissions( + ChildUnaryPermissionArg::GrantedList(vec!["OUTSIDE".to_string()]), + |value| parser.parse_env_descriptor(value).map(Some), + ) + .is_err()); + assert!(perms + .env + .create_child_permissions( + // ok because this is a subset of HOME_* + ChildUnaryPermissionArg::GrantedList(vec!["HOME_S*".to_string()]), + |value| parser.parse_env_descriptor(value).map(Some), + ) + .is_ok()); + } + #[test] fn test_check_partial_denied() { let parser = TestPermissionDescriptorParser; diff --git a/runtime/permissions/prompter.rs b/runtime/permissions/prompter.rs index 168a845a29611a..0272744cc2f555 100644 --- a/runtime/permissions/prompter.rs +++ b/runtime/permissions/prompter.rs @@ -1,5 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use crate::is_standalone; +use deno_core::error::JsStackFrame; use deno_core::parking_lot::Mutex; use deno_terminal::colors; use once_cell::sync::Lazy; @@ -10,8 +12,6 @@ use std::io::StderrLock; use std::io::StdinLock; use std::io::Write as IoWrite; -use crate::is_standalone; - /// Helper function to make control characters visible so users can see the underlying filename. fn escape_control_characters(s: &str) -> std::borrow::Cow { if !s.contains(|c: char| c.is_ascii_control() || c.is_control()) { @@ -53,6 +53,13 @@ static MAYBE_BEFORE_PROMPT_CALLBACK: Lazy>> = static MAYBE_AFTER_PROMPT_CALLBACK: Lazy>> = Lazy::new(|| Mutex::new(None)); +static MAYBE_CURRENT_STACKTRACE: Lazy>>> = + Lazy::new(|| Mutex::new(None)); + +pub fn set_current_stacktrace(trace: Vec) { + *MAYBE_CURRENT_STACKTRACE.lock() = Some(trace); +} + pub fn permission_prompt( message: &str, flag: &str, @@ -62,9 +69,10 @@ pub fn permission_prompt( if let Some(before_callback) = MAYBE_BEFORE_PROMPT_CALLBACK.lock().as_mut() { before_callback(); } + let stack = MAYBE_CURRENT_STACKTRACE.lock().take(); let r = PERMISSION_PROMPTER .lock() - .prompt(message, flag, api_name, is_unary); + .prompt(message, flag, api_name, is_unary, stack); if let Some(after_callback) = MAYBE_AFTER_PROMPT_CALLBACK.lock().as_mut() { after_callback(); } @@ -92,6 +100,7 @@ pub trait PermissionPrompter: Send + Sync { name: &str, api_name: Option<&str>, is_unary: bool, + stack: Option>, ) -> PromptResponse; } @@ -298,6 +307,7 @@ impl PermissionPrompter for TtyPrompter { name: &str, api_name: Option<&str>, is_unary: bool, + stack: Option>, ) -> PromptResponse { if !std::io::stdin().is_terminal() || !std::io::stderr().is_terminal() { return PromptResponse::Deny; @@ -340,7 +350,7 @@ impl PermissionPrompter for TtyPrompter { }; // output everything in one shot to make the tests more reliable - { + let stack_lines_count = { let mut output = String::new(); write!(&mut output, "┏ {PERMISSION_EMOJI} ").unwrap(); write!(&mut output, "{}", colors::bold("Deno requests ")).unwrap(); @@ -354,6 +364,27 @@ impl PermissionPrompter for TtyPrompter { ) .unwrap(); } + let stack_lines_count = if let Some(stack) = stack { + let len = stack.len(); + for (idx, frame) in stack.into_iter().enumerate() { + writeln!( + &mut output, + "┃ {} {}", + colors::gray(if idx != len - 1 { "├─" } else { "└─" }), + colors::gray(deno_core::error::format_frame::< + deno_core::error::NoAnsiColors, + >(&frame)) + ) + .unwrap(); + } + len + } else { + writeln!( + &mut output, + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.", + ).unwrap(); + 1 + }; let msg = format!( "Learn more at: {}", colors::cyan_with_underline(&format!( @@ -372,7 +403,9 @@ impl PermissionPrompter for TtyPrompter { write!(&mut output, " {opts} > ").unwrap(); stderr_lock.write_all(output.as_bytes()).unwrap(); - } + + stack_lines_count + }; let value = loop { // Clear stdin each time we loop around in case the user accidentally pasted @@ -391,30 +424,24 @@ impl PermissionPrompter for TtyPrompter { if result.is_err() || input.len() != 1 { break PromptResponse::Deny; }; + + let clear_n = if api_name.is_some() { 5 } else { 4 } + stack_lines_count; + match input.as_bytes()[0] as char { 'y' | 'Y' => { - clear_n_lines( - &mut stderr_lock, - if api_name.is_some() { 5 } else { 4 }, - ); + clear_n_lines(&mut stderr_lock, clear_n); let msg = format!("Granted {message}."); writeln!(stderr_lock, "✅ {}", colors::bold(&msg)).unwrap(); break PromptResponse::Allow; } 'n' | 'N' | '\x1b' => { - clear_n_lines( - &mut stderr_lock, - if api_name.is_some() { 5 } else { 4 }, - ); + clear_n_lines(&mut stderr_lock, clear_n); let msg = format!("Denied {message}."); writeln!(stderr_lock, "❌ {}", colors::bold(&msg)).unwrap(); break PromptResponse::Deny; } 'A' if is_unary => { - clear_n_lines( - &mut stderr_lock, - if api_name.is_some() { 5 } else { 4 }, - ); + clear_n_lines(&mut stderr_lock, clear_n); let msg = format!("Granted all {name} access."); writeln!(stderr_lock, "✅ {}", colors::bold(&msg)).unwrap(); break PromptResponse::AllowAll; @@ -475,6 +502,7 @@ pub mod tests { _name: &str, _api_name: Option<&str>, _is_unary: bool, + _stack: Option>, ) -> PromptResponse { if STUB_PROMPT_VALUE.load(Ordering::SeqCst) { PromptResponse::Allow diff --git a/runtime/shared.rs b/runtime/shared.rs index 807f91f104f5be..1499e3a9f70112 100644 --- a/runtime/shared.rs +++ b/runtime/shared.rs @@ -47,6 +47,7 @@ extension!(runtime, "40_signals.js", "40_tty.js", "41_prompt.js", + "telemetry.ts", "90_deno_ns.js", "98_global_scope_shared.js", "98_global_scope_window.js", @@ -63,8 +64,8 @@ extension!(runtime, } ); -deno_core::js_error_wrapper!(deno_ast::ParseDiagnostic, JsParseDiagnostic, "Error"); -deno_core::js_error_wrapper!(deno_ast::TranspileError, JsTranspileError, "Error"); +deno_error::js_error_wrapper!(deno_ast::ParseDiagnostic, JsParseDiagnostic, "Error"); +deno_error::js_error_wrapper!(deno_ast::TranspileError, JsTranspileError, "Error"); pub fn maybe_transpile_source( name: ModuleName, diff --git a/runtime/snapshot.rs b/runtime/snapshot.rs index 251ee5f41ce413..3bf515131f6f32 100644 --- a/runtime/snapshot.rs +++ b/runtime/snapshot.rs @@ -300,7 +300,9 @@ pub fn create_runtime_snapshot( deno_cron::local::LocalCronHandler::new(), ), deno_napi::deno_napi::init_ops_and_esm::(), - deno_http::deno_http::init_ops_and_esm::(), + deno_http::deno_http::init_ops_and_esm::( + deno_http::Options::default(), + ), deno_io::deno_io::init_ops_and_esm(Default::default()), deno_fs::deno_fs::init_ops_and_esm::(fs.clone()), deno_node::deno_node::init_ops_and_esm::(None, fs.clone()), @@ -312,6 +314,7 @@ pub fn create_runtime_snapshot( ), ops::fs_events::deno_fs_events::init_ops(), ops::os::deno_os::init_ops(Default::default()), + ops::otel::deno_otel::init_ops(), ops::permissions::deno_permissions::init_ops(), ops::process::deno_process::init_ops(None), ops::signal::deno_signal::init_ops(), diff --git a/runtime/ops/os/sys_info.rs b/runtime/sys_info.rs similarity index 100% rename from runtime/ops/os/sys_info.rs rename to runtime/sys_info.rs diff --git a/runtime/worker.rs b/runtime/worker.rs index 65972cd01f416a..8109a160b3df89 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -77,7 +77,7 @@ pub fn validate_import_attributes_callback( for (key, value) in attributes { let msg = if key != "type" { Some(format!("\"{key}\" attribute is not supported.")) - } else if value != "json" { + } else if value != "json" && value != "$$deno-core-internal-wasm-module" { Some(format!("\"{value}\" is not a valid module type.")) } else { None @@ -142,6 +142,7 @@ pub struct WorkerServiceOptions { pub npm_process_state_provider: Option, pub permissions: PermissionsContainer, pub root_cert_store_provider: Option>, + pub fetch_dns_resolver: deno_fetch::dns::Resolver, /// The store to use for transferring SharedArrayBuffers between isolates. /// If multiple isolates should have the possibility of sharing @@ -202,6 +203,7 @@ pub struct WorkerOptions { pub cache_storage_dir: Option, pub origin_storage_dir: Option, pub stdio: Stdio, + pub enable_stack_trace_arg_in_ops: bool, } impl Default for WorkerOptions { @@ -225,6 +227,7 @@ impl Default for WorkerOptions { create_params: Default::default(), bootstrap: Default::default(), stdio: Default::default(), + enable_stack_trace_arg_in_ops: false, } } } @@ -358,6 +361,7 @@ impl MainWorker { .unsafely_ignore_certificate_errors .clone(), file_fetch_handler: Rc::new(deno_fetch::FsFetchHandler), + resolver: services.fetch_dns_resolver, ..Default::default() }, ), @@ -400,7 +404,9 @@ impl MainWorker { ), deno_cron::deno_cron::init_ops_and_esm(LocalCronHandler::new()), deno_napi::deno_napi::init_ops_and_esm::(), - deno_http::deno_http::init_ops_and_esm::(), + deno_http::deno_http::init_ops_and_esm::( + deno_http::Options::default(), + ), deno_io::deno_io::init_ops_and_esm(Some(options.stdio)), deno_fs::deno_fs::init_ops_and_esm::( services.fs.clone(), @@ -417,6 +423,7 @@ impl MainWorker { ), ops::fs_events::deno_fs_events::init_ops_and_esm(), ops::os::deno_os::init_ops_and_esm(exit_code.clone()), + ops::otel::deno_otel::init_ops_and_esm(), ops::permissions::deno_permissions::init_ops_and_esm(), ops::process::deno_process::init_ops_and_esm( services.npm_process_state_provider, @@ -533,6 +540,11 @@ impl MainWorker { ) as Box, ) }), + maybe_op_stack_trace_callback: if options.enable_stack_trace_arg_in_ops { + Some(Box::new(|stack| { + deno_permissions::prompter::set_current_stacktrace(stack) + })) + } else { None }, ..Default::default() }); diff --git a/runtime/worker_bootstrap.rs b/runtime/worker_bootstrap.rs index 3f3c25c5ea229a..3f5c245a0faacd 100644 --- a/runtime/worker_bootstrap.rs +++ b/runtime/worker_bootstrap.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use crate::ops::otel::OtelConfig; use deno_core::v8; use deno_core::ModuleSpecifier; use serde::Serialize; @@ -118,6 +119,8 @@ pub struct BootstrapOptions { // Used by `deno serve` pub serve_port: Option, pub serve_host: Option, + // OpenTelemetry output options. If `None`, OpenTelemetry is disabled. + pub otel_config: Option, } impl Default for BootstrapOptions { @@ -152,6 +155,7 @@ impl Default for BootstrapOptions { mode: WorkerExecutionMode::None, serve_port: Default::default(), serve_host: Default::default(), + otel_config: None, } } } @@ -193,6 +197,8 @@ struct BootstrapV8<'a>( Option, // serve worker count Option, + // OTEL config + Box<[u8]>, ); impl BootstrapOptions { @@ -219,6 +225,11 @@ impl BootstrapOptions { self.serve_host.as_deref(), serve_is_main, serve_worker_count, + if let Some(otel_config) = self.otel_config.as_ref() { + Box::new([otel_config.console as u8, otel_config.deterministic as u8]) + } else { + Box::new([]) + }, ); bootstrap.serialize(ser).unwrap() diff --git a/tests/Cargo.toml b/tests/Cargo.toml index ede509e38095b2..31cc022ce26ca0 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -45,7 +45,7 @@ deno_semver.workspace = true deno_terminal.workspace = true deno_tls.workspace = true fastwebsockets = { workspace = true, features = ["upgrade", "unstable-split"] } -file_test_runner = "0.7.2" +file_test_runner = "0.7.3" flaky_test = "=0.2.2" hickory-client = "=0.24" hickory-server = "=0.24" diff --git a/tests/integration/flags_tests.rs b/tests/integration/flags_tests.rs index 663da363da88a2..e233ca5baf4b40 100644 --- a/tests/integration/flags_tests.rs +++ b/tests/integration/flags_tests.rs @@ -24,7 +24,7 @@ fn help_output() { "Type-check the dependencies", "Compile the script into a self contained executable", "Print coverage reports", - "Genereate and show documentation for a module or built-ins", + "Generate and show documentation for a module or built-ins", "Format source files", "Show info about cache or info related to source file", "Deno kernel for Jupyter notebooks", diff --git a/tests/integration/fmt_tests.rs b/tests/integration/fmt_tests.rs index b890b3b72a1470..ccf54a4d0f2113 100644 --- a/tests/integration/fmt_tests.rs +++ b/tests/integration/fmt_tests.rs @@ -61,6 +61,12 @@ fn fmt_test() { let badly_formatted_yaml = t.path().join("badly_formatted.yaml"); badly_formatted_original_yaml.copy(&badly_formatted_yaml); + let fixed_sql = testdata_fmt_dir.join("badly_formatted_fixed.sql"); + let badly_formatted_original_sql = + testdata_fmt_dir.join("badly_formatted.sql"); + let badly_formatted_sql = t.path().join("badly_formatted.sql"); + badly_formatted_original_sql.copy(&badly_formatted_sql); + // First, check formatting by ignoring the badly formatted file. let output = context .new_command() @@ -71,11 +77,12 @@ fn fmt_test() { "--unstable-html".to_string(), "--unstable-component".to_string(), "--unstable-yaml".to_string(), + "--unstable-sql".to_string(), format!( - "--ignore={badly_formatted_js},{badly_formatted_md},{badly_formatted_json},{badly_formatted_css},{badly_formatted_html},{badly_formatted_component},{badly_formatted_yaml},{badly_formatted_ipynb}", + "--ignore={badly_formatted_js},{badly_formatted_md},{badly_formatted_json},{badly_formatted_css},{badly_formatted_html},{badly_formatted_component},{badly_formatted_yaml},{badly_formatted_ipynb},{badly_formatted_sql}", ), format!( - "--check {badly_formatted_js} {badly_formatted_md} {badly_formatted_json} {badly_formatted_css} {badly_formatted_html} {badly_formatted_component} {badly_formatted_yaml} {badly_formatted_ipynb}", + "--check {badly_formatted_js} {badly_formatted_md} {badly_formatted_json} {badly_formatted_css} {badly_formatted_html} {badly_formatted_component} {badly_formatted_yaml} {badly_formatted_ipynb} {badly_formatted_sql}", ), ]) .run(); @@ -95,6 +102,7 @@ fn fmt_test() { "--unstable-html".to_string(), "--unstable-component".to_string(), "--unstable-yaml".to_string(), + "--unstable-sql".to_string(), badly_formatted_js.to_string(), badly_formatted_md.to_string(), badly_formatted_json.to_string(), @@ -103,6 +111,7 @@ fn fmt_test() { badly_formatted_component.to_string(), badly_formatted_yaml.to_string(), badly_formatted_ipynb.to_string(), + badly_formatted_sql.to_string(), ]) .run(); @@ -119,6 +128,7 @@ fn fmt_test() { "--unstable-html".to_string(), "--unstable-component".to_string(), "--unstable-yaml".to_string(), + "--unstable-sql".to_string(), badly_formatted_js.to_string(), badly_formatted_md.to_string(), badly_formatted_json.to_string(), @@ -127,6 +137,7 @@ fn fmt_test() { badly_formatted_component.to_string(), badly_formatted_yaml.to_string(), badly_formatted_ipynb.to_string(), + badly_formatted_sql.to_string(), ]) .run(); @@ -141,6 +152,7 @@ fn fmt_test() { let expected_component = fixed_component.read_to_string(); let expected_yaml = fixed_yaml.read_to_string(); let expected_ipynb = fixed_ipynb.read_to_string(); + let expected_sql = fixed_sql.read_to_string(); let actual_js = badly_formatted_js.read_to_string(); let actual_md = badly_formatted_md.read_to_string(); let actual_json = badly_formatted_json.read_to_string(); @@ -149,6 +161,7 @@ fn fmt_test() { let actual_component = badly_formatted_component.read_to_string(); let actual_yaml = badly_formatted_yaml.read_to_string(); let actual_ipynb = badly_formatted_ipynb.read_to_string(); + let actual_sql = badly_formatted_sql.read_to_string(); assert_eq!(expected_js, actual_js); assert_eq!(expected_md, actual_md); assert_eq!(expected_json, actual_json); @@ -157,6 +170,7 @@ fn fmt_test() { assert_eq!(expected_component, actual_component); assert_eq!(expected_yaml, actual_yaml); assert_eq!(expected_ipynb, actual_ipynb); + assert_eq!(expected_sql, actual_sql); } #[test] diff --git a/tests/integration/install_tests.rs b/tests/integration/install_tests.rs index 4dfd00146d50f6..b0c1e44778d125 100644 --- a/tests/integration/install_tests.rs +++ b/tests/integration/install_tests.rs @@ -329,3 +329,60 @@ fn check_local_by_default2() { .skip_output_check() .assert_exit_code(0); } + +#[test] +fn show_prefix_hint_on_global_install() { + let context = TestContextBuilder::new() + .add_npm_env_vars() + .add_jsr_env_vars() + .use_http_server() + .use_temp_cwd() + .build(); + let temp_dir = context.temp_dir(); + let temp_dir_str = temp_dir.path().to_string(); + + let env_vars = [ + ("HOME", temp_dir_str.as_str()), + ("USERPROFILE", temp_dir_str.as_str()), + ("DENO_INSTALL_ROOT", ""), + ]; + + for pkg_req in ["npm:@denotest/bin", "jsr:@denotest/add"] { + let name = pkg_req.split_once('/').unwrap().1; + let pkg = pkg_req.split_once(':').unwrap().1; + + // try with prefix and ensure that the installation succeeds + context + .new_command() + .args_vec(["install", "-g", "--name", name, pkg_req]) + .envs(env_vars) + .run() + .skip_output_check() + .assert_exit_code(0); + + // try without the prefix and ensure that the installation fails with the appropriate error + // message + let output = context + .new_command() + .args_vec(["install", "-g", "--name", name, pkg]) + .envs(env_vars) + .run(); + output.assert_exit_code(1); + + let output_text = output.combined_output(); + let expected_text = + format!("error: {pkg} is missing a prefix. Did you mean `deno install -g {pkg_req}`?"); + assert_contains!(output_text, &expected_text); + } + + // try a pckage not in npm and jsr to make sure the appropriate error message still appears + let output = context + .new_command() + .args_vec(["install", "-g", "package-that-does-not-exist"]) + .envs(env_vars) + .run(); + output.assert_exit_code(1); + + let output_text = output.combined_output(); + assert_contains!(output_text, "error: Module not found"); +} diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs index af5f9de23eb5e1..b716aa921e3b25 100644 --- a/tests/integration/lsp_tests.rs +++ b/tests/integration/lsp_tests.rs @@ -5427,7 +5427,8 @@ fn lsp_code_actions_deno_cache() { let res = client - .write_request( "textDocument/codeAction", + .write_request( + "textDocument/codeAction", json!({ "textDocument": { "uri": "file:///a/file.ts" @@ -5453,8 +5454,7 @@ fn lsp_code_actions_deno_cache() { "only": ["quickfix"] } }), - ) - ; + ); assert_eq!( res, json!([{ @@ -8270,6 +8270,130 @@ fn lsp_npm_auto_import_and_quick_fix_byonm() { client.shutdown(); } +#[test] +fn lsp_npm_auto_import_with_deno_types() { + let context = TestContextBuilder::new() + .use_http_server() + .use_temp_cwd() + .add_npm_env_vars() + .build(); + let temp_dir = context.temp_dir(); + temp_dir.write( + "deno.json", + json!({ + "compilerOptions": { + "jsx": "react-jsx", + "jsxImportSource": "react", + "jsxImportSourceTypes": "@types/react", + }, + }) + .to_string(), + ); + temp_dir.write( + "package.json", + json!({ + "dependencies": { + "react": "*", + "@types/react": "*", + "lz-string": "1.3", + "@types/lz-string": "1.3", + }, + }) + .to_string(), + ); + context.run_npm("install"); + temp_dir.write( + "other.ts", + r#" + // @deno-types="@types/lz-string" + import "lz-string"; + "#, + ); + let mut client = context.new_lsp_command().build(); + client.initialize_default(); + client.did_open(json!({ + "textDocument": { + "uri": temp_dir.url().join("file.ts").unwrap(), + "languageId": "typescript", + "version": 1, + "text": r#" + compressToBase64(); + createRef(); + "#, + }, + })); + let list = client.get_completion_list( + temp_dir.url().join("file.ts").unwrap(), + (1, 24), + json!({ "triggerKind": 1 }), + ); + let item = list + .items + .iter() + .find(|item| item.label == "compressToBase64") + .unwrap(); + let res = client.write_request("completionItem/resolve", item); + assert_eq!( + res, + json!({ + "label": "compressToBase64", + "labelDetails": { + "description": "lz-string", + }, + "kind": 2, + "detail": "(method) LZString.LZStringStatic.compressToBase64(uncompressed: string): string", + "documentation": { + "kind": "markdown", + "value": "Compresses input string producing an instance of a ASCII UTF-16 string,\nwhich represents the original string encoded in Base64.\nThe result can be safely transported outside the browser with a\nguarantee that none of the characters produced need to be URL-encoded.\n\n*@param* - uncompressed A string which should be compressed.", + }, + "sortText": "￿16_0", + "additionalTextEdits": [ + { + "range": { + "start": { "line": 0, "character": 0 }, + "end": { "line": 0, "character": 0 }, + }, + "newText": "// @deno-types=\"@types/lz-string\"\nimport { compressToBase64 } from \"lz-string\";\n", + }, + ], + }), + ); + let list = client.get_completion_list( + temp_dir.url().join("file.ts").unwrap(), + (2, 17), + json!({ "triggerKind": 1 }), + ); + let item = list + .items + .iter() + .find(|item| item.label == "createRef") + .unwrap(); + let res = client.write_request("completionItem/resolve", item); + assert_eq!( + res, + json!({ + "label": "createRef", + "labelDetails": { + "description": "react", + }, + "kind": 3, + "detail": "function React.createRef(): React.RefObject", + "documentation": { "kind": "markdown", "value": "" }, + "sortText": "￿16_0", + "additionalTextEdits": [ + { + "range": { + "start": { "line": 0, "character": 0 }, + "end": { "line": 0, "character": 0 }, + }, + "newText": "// @deno-types=\"@types/react\"\nimport { createRef } from \"react\";\n", + }, + ], + }), + ); + client.shutdown(); +} + #[test] fn lsp_completions_node_specifier() { let context = TestContextBuilder::new().use_temp_cwd().build(); @@ -11556,7 +11680,7 @@ fn lsp_format_with_config() { }, "options": { "tabSize": 2, - "insertSpaces": false + "insertSpaces": true, } }), ); @@ -16139,6 +16263,55 @@ fn lsp_cjs_import_dual() { ); } +#[test] +fn lsp_type_commonjs() { + let context = TestContextBuilder::new() + .use_http_server() + .use_temp_cwd() + .add_npm_env_vars() + .build(); + let temp_dir = context.temp_dir(); + temp_dir.write("deno.json", r#"{}"#); + temp_dir.write( + "package.json", + r#"{ + "type": "commonjs", + "dependencies": { + "@denotest/dual-cjs-esm": "1" + } +}"#, + ); + context.run_npm("install"); + + let mut client = context.new_lsp_command().build(); + client.initialize_default(); + let main_url = temp_dir.path().join("main.ts").url_file(); + let diagnostics = client.did_open( + json!({ + "textDocument": { + "uri": main_url, + "languageId": "typescript", + "version": 1, + // getKind() should resolve as "cjs" and cause a type checker error + "text": "import mod = require('@denotest/dual-cjs-esm');\nconst kind: 'other' = mod.getKind(); console.log(kind);", + } + }), + ); + assert_eq!( + json!(diagnostics.all()), + json!([{ + "range": { + "start": { "line": 1, "character": 6, }, + "end": { "line": 1, "character": 10, }, + }, + "severity": 1, + "code": 2322, + "source": "deno-ts", + "message": "Type '\"cjs\"' is not assignable to type '\"other\"'.", + }]) + ); +} + #[test] fn lsp_ts_code_fix_any_param() { let context = TestContextBuilder::new().use_temp_cwd().build(); @@ -16343,3 +16516,47 @@ fn lsp_jsdoc_named_example() { }), ); } + +#[test] +fn lsp_wasm_module() { + let context = TestContextBuilder::new() + .use_temp_cwd() + .use_http_server() + .build(); + let mut client = context.new_lsp_command().build(); + client.initialize_default(); + client.did_open(json!({ + "textDocument": { + "uri": "file:///a/file.ts", + "languageId": "typescript", + "version": 1, + "text": "import { add } from \"http://localhost:4545/wasm/math.wasm\";\nadd(1, '');\n" + } + })); + + client.write_request( + "workspace/executeCommand", + json!({ + "command": "deno.cache", + "arguments": [[], "file:///a/file.ts"], + }), + ); + + let diagnostics = client.read_diagnostics(); + assert_eq!( + json!(diagnostics.all()), + json!([ + { + "range": { + "start": { "line": 1, "character": 7 }, + "end": { "line": 1, "character": 9 } + }, + "severity": 1, + "code": 2345, + "source": "deno-ts", + "message": "Argument of type 'string' is not assignable to parameter of type 'number'." + } + ]) + ); + client.shutdown(); +} diff --git a/tests/integration/node_unit_tests.rs b/tests/integration/node_unit_tests.rs index 40bd7b2fbb61e9..9cb1af94965082 100644 --- a/tests/integration/node_unit_tests.rs +++ b/tests/integration/node_unit_tests.rs @@ -72,6 +72,7 @@ util::unit_test_factory!( dgram_test, domain_test, fs_test, + fetch_test, http_test, http2_test, inspector_test, diff --git a/tests/integration/run_tests.rs b/tests/integration/run_tests.rs index e29ecc486cc4e0..18cded90cb3164 100644 --- a/tests/integration/run_tests.rs +++ b/tests/integration/run_tests.rs @@ -179,6 +179,7 @@ fn _090_run_permissions_request() { console.expect(concat!( "┏ ⚠️ Deno requests run access to \"ls\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-run\r\n", "┠─ Run again with --allow-run to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all run permissions)", @@ -189,6 +190,7 @@ fn _090_run_permissions_request() { console.expect(concat!( "┏ ⚠️ Deno requests run access to \"cat\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-run\r\n", "┠─ Run again with --allow-run to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all run permissions)", @@ -210,6 +212,7 @@ fn _090_run_permissions_request_sync() { console.expect(concat!( "┏ ⚠️ Deno requests run access to \"ls\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-run\r\n", "┠─ Run again with --allow-run to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all run permissions)", @@ -220,6 +223,7 @@ fn _090_run_permissions_request_sync() { console.expect(concat!( "┏ ⚠️ Deno requests run access to \"cat\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-run\r\n", "┠─ Run again with --allow-run to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all run permissions)", @@ -242,6 +246,7 @@ fn permissions_prompt_allow_all() { console.expect(concat!( "┏ ⚠️ Deno requests run access to \"FOO\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-run\r\n", "┠─ Run again with --allow-run to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all run permissions)", @@ -253,6 +258,7 @@ fn permissions_prompt_allow_all() { console.expect(concat!( "┏ ⚠️ Deno requests read access to \"FOO\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -264,6 +270,7 @@ fn permissions_prompt_allow_all() { console.expect(concat!( "┏ ⚠️ Deno requests write access to \"FOO\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-write\r\n", "┠─ Run again with --allow-write to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all write permissions)", @@ -275,6 +282,7 @@ fn permissions_prompt_allow_all() { console.expect(concat!( "┏ ⚠️ Deno requests net access to \"foo\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-net\r\n", "┠─ Run again with --allow-net to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all net permissions)", @@ -286,6 +294,7 @@ fn permissions_prompt_allow_all() { console.expect(concat!( "┏ ⚠️ Deno requests env access to \"FOO\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-env\r\n", "┠─ Run again with --allow-env to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all env permissions)", @@ -297,6 +306,7 @@ fn permissions_prompt_allow_all() { console.expect(concat!( "┏ ⚠️ Deno requests sys access to \"loadavg\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-sys\r\n", "┠─ Run again with --allow-sys to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all sys permissions)", @@ -308,6 +318,7 @@ fn permissions_prompt_allow_all() { console.expect(concat!( "┏ ⚠️ Deno requests ffi access to \"FOO\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-ffi\r\n", "┠─ Run again with --allow-ffi to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all ffi permissions)", @@ -328,6 +339,7 @@ fn permissions_prompt_allow_all_2() { // "env" permissions console.expect(concat!( "┏ ⚠️ Deno requests env access to \"FOO\".\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-env\r\n", "┠─ Run again with --allow-env to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all env permissions)", @@ -340,6 +352,7 @@ fn permissions_prompt_allow_all_2() { console.expect(concat!( "┏ ⚠️ Deno requests sys access to \"loadavg\".\r\n", "┠─ Requested by `Deno.loadavg()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-sys\r\n", "┠─ Run again with --allow-sys to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all sys permissions)", @@ -352,6 +365,7 @@ fn permissions_prompt_allow_all_2() { console.expect(concat!( "┏ ⚠️ Deno requests read access to .\r\n", "┠─ Requested by `Deno.cwd()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -372,6 +386,7 @@ fn permissions_prompt_allow_all_lowercase_a() { console.expect(concat!( "┏ ⚠️ Deno requests run access to \"FOO\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-run\r\n", "┠─ Run again with --allow-run to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all run permissions)", @@ -406,6 +421,7 @@ fn permissions_cache() { "prompt\r\n", "┏ ⚠️ Deno requests read access to \"foo\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -418,15 +434,31 @@ fn permissions_cache() { }); } -itest!(env_file { - args: "run --env=env --allow-env run/env_file.ts", - output: "run/env_file.out", -}); +#[test] +fn permissions_trace() { + TestContext::default() + .new_command() + .env("DENO_TRACE_PERMISSIONS", "1") + .args_vec(["run", "--quiet", "run/permissions_trace.ts"]) + .with_pty(|mut console| { + let text = console.read_until("Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all sys permissions)"); + test_util::assertions::assert_wildcard_match(&text, concat!( + "┏ ⚠️ Deno requests sys access to \"hostname\".\r\n", + "┠─ Requested by `Deno.hostname()` API.\r\n", + "┃ ├─ Object.hostname (ext:runtime/30_os.js:43:10)\r\n", + "┃ ├─ foo (file://[WILDCARD]/run/permissions_trace.ts:2:8)\r\n", + "┃ ├─ bar (file://[WILDCARD]/run/permissions_trace.ts:6:3)\r\n", + "┃ └─ file://[WILDCARD]/run/permissions_trace.ts:9:1\r\n", + "┠─ Learn more at: https://docs.deno.com/go/--allow-sys\r\n", + "┠─ Run again with --allow-sys to bypass this prompt.\r\n", + "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all sys permissions)", + )); -itest!(env_file_missing { - args: "run --env=missing --allow-env run/env_file.ts", - output: "run/env_file_missing.out", -}); + console.human_delay(); + console.write_line_raw("y"); + console.expect("✅ Granted sys access to \"hostname\"."); + }); +} itest!(lock_write_fetch { args: @@ -1522,6 +1554,7 @@ mod permissions { console.expect(concat!( "┏ ⚠️ Deno requests read access to \"foo\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -1531,6 +1564,7 @@ mod permissions { console.expect(concat!( "┏ ⚠️ Deno requests read access to \"bar\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -1552,6 +1586,7 @@ mod permissions { console.expect(concat!( "┏ ⚠️ Deno requests read access to \"foo\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -1561,6 +1596,7 @@ mod permissions { console.expect(concat!( "┏ ⚠️ Deno requests read access to \"bar\".\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -1582,6 +1618,7 @@ mod permissions { console.expect(concat!( "┏ ⚠️ Deno requests read access.\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -1606,6 +1643,7 @@ mod permissions { console.expect(concat!( "┏ ⚠️ Deno requests read access.\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-read\r\n", "┠─ Run again with --allow-read to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions)", @@ -1683,6 +1721,7 @@ fn issue9750() { console.expect(concat!( "┏ ⚠️ Deno requests env access.\r\n", "┠─ Requested by `Deno.permissions.request()` API.\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-env\r\n", "┠─ Run again with --allow-env to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all env permissions)", @@ -1692,6 +1731,7 @@ fn issue9750() { console.expect("Denied env access."); console.expect(concat!( "┏ ⚠️ Deno requests env access to \"SECRET\".\r\n", + "┠─ To see a stack trace for this prompt, set the DENO_TRACE_PERMISSIONS environmental variable.\r\n", "┠─ Learn more at: https://docs.deno.com/go/--allow-env\r\n", "┠─ Run again with --allow-env to bypass this prompt.\r\n", "┗ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all env permissions)", @@ -2733,7 +2773,7 @@ fn stdio_streams_are_locked_in_permission_prompt() { console.human_delay(); console.write_line_raw("y"); // We ensure that nothing gets written here between the permission prompt and this text, despire the delay - console.expect_raw_next(format!("y{newline}\x1b[5A\x1b[0J✅ Granted read access to \"")); + console.expect_raw_next(format!("y{newline}\x1b[6A\x1b[0J✅ Granted read access to \"")); // Back to spamming! console.expect(malicious_output); @@ -2899,37 +2939,6 @@ console.log(returnsHi());"#, .assert_exit_code(1); } -// TODO(bartlomieju): temporary disabled -// itest!(warn_on_deprecated_api { -// args: "run -A run/warn_on_deprecated_api/main.js", -// output: "run/warn_on_deprecated_api/main.out", -// http_server: true, -// exit_code: 0, -// }); - -// itest!(warn_on_deprecated_api_verbose { -// args: "run -A run/warn_on_deprecated_api/main.js", -// output: "run/warn_on_deprecated_api/main.verbose.out", -// envs: vec![("DENO_VERBOSE_WARNINGS".to_string(), "1".to_string())], -// http_server: true, -// exit_code: 0, -// }); - -// itest!(warn_on_deprecated_api_with_flag { -// args: "run -A --quiet run/warn_on_deprecated_api/main.js", -// output: "run/warn_on_deprecated_api/main_disabled_flag.out", -// http_server: true, -// exit_code: 0, -// }); - -// itest!(warn_on_deprecated_api_with_env_var { -// args: "run -A run/warn_on_deprecated_api/main.js", -// envs: vec![("DENO_NO_DEPRECATION_WARNINGS".to_string(), "1".to_string())], -// output: "run/warn_on_deprecated_api/main_disabled_env.out", -// http_server: true, -// exit_code: 0, -// }); - #[test] fn deno_json_imports_expand() { let test_context = TestContextBuilder::for_npm().use_temp_cwd().build(); diff --git a/tests/integration/watcher_tests.rs b/tests/integration/watcher_tests.rs index e8f264632dfeb6..055e46af9cf555 100644 --- a/tests/integration/watcher_tests.rs +++ b/tests/integration/watcher_tests.rs @@ -55,7 +55,7 @@ where let mut str = String::new(); while let Some(t) = next_line(stderr_lines).await { let t = util::strip_ansi_codes(&t); - if t.starts_with("Watcher File change detected") { + if t.starts_with("Watcher Restarting! File change detected") { continue; } if t.starts_with("Watcher") { diff --git a/tests/node_compat/config.jsonc b/tests/node_compat/config.jsonc index 16951d9edec172..31b184505054b1 100644 --- a/tests/node_compat/config.jsonc +++ b/tests/node_compat/config.jsonc @@ -13,10 +13,12 @@ "x.txt" ], "internet": [ - "test-dns-any.js", - "test-dns-ipv4.js", - "test-dns-ipv6.js", - "test-dns.js" + // TODO(bartlomieju): temporarily disabled as these tests were hitting nodejs.org + // server. We should have a setup that hits a local server instead. + // "test-dns-any.js", + // "test-dns-ipv4.js", + // "test-dns-ipv6.js", + // "test-dns.js" ], "parallel": [ "test-assert.js", @@ -77,6 +79,7 @@ "test-fs-rmdir-recursive.js", "test-fs-write-file.js", "test-http-url.parse-https.request.js", + "test-net-autoselectfamily.js", "test-net-better-error-messages-path.js", "test-net-connect-buffer.js", "test-net-connect-buffer2.js", @@ -148,15 +151,15 @@ ], "fixtures/keys": ["agent1-cert.pem", "agent1-key.pem", "ca1-cert.pem"], "internet": [ - "test-dns-any.js", + // "test-dns-any.js", "test-dns-idna2008.js", - "test-dns-ipv4.js", - "test-dns-ipv6.js", + // "test-dns-ipv4.js", + // "test-dns-ipv6.js", "test-dns-lookup.js", "test-dns-promises-resolve.js", "test-dns-regress-6244.js", "test-dns-setserver-in-callback-of-resolve4.js", - "test-dns.js", + // "test-dns.js", "test-http-https-default-ports.js" ], "parallel": [ @@ -404,6 +407,7 @@ "test-http-url.parse-only-support-http-https-protocol.js", "test-icu-transcode.js", "test-net-access-byteswritten.js", + "test-net-autoselectfamily.js", "test-net-better-error-messages-listen-path.js", "test-net-better-error-messages-path.js", "test-net-better-error-messages-port-hostname.js", diff --git a/tests/node_compat/package.json b/tests/node_compat/package.json new file mode 100644 index 00000000000000..5bbefffbabee39 --- /dev/null +++ b/tests/node_compat/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/tests/node_compat/runner/TODO.md b/tests/node_compat/runner/TODO.md index 231a4f62c9bd7e..cb7e6034b96b54 100644 --- a/tests/node_compat/runner/TODO.md +++ b/tests/node_compat/runner/TODO.md @@ -105,9 +105,13 @@ NOTE: This file should not be manually edited. Please edit `tests/node_compat/co - [internet/test-dgram-multicast-set-interface-lo.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-multicast-set-interface-lo.js) - [internet/test-dgram-multicast-ssm-multi-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-multicast-ssm-multi-process.js) - [internet/test-dgram-multicast-ssmv6-multi-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-multicast-ssmv6-multi-process.js) +- [internet/test-dns-any.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns-any.js) - [internet/test-dns-cares-domains.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns-cares-domains.js) - [internet/test-dns-getDefaultResultOrder.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns-getDefaultResultOrder.js) +- [internet/test-dns-ipv4.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns-ipv4.js) +- [internet/test-dns-ipv6.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns-ipv6.js) - [internet/test-dns-txt-sigsegv.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns-txt-sigsegv.js) +- [internet/test-dns.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns.js) - [internet/test-http-dns-fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-http-dns-fail.js) - [internet/test-http2-issue-32922.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-http2-issue-32922.js) - [internet/test-https-autoselectfamily-slow-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-https-autoselectfamily-slow-timeout.js) @@ -1767,7 +1771,6 @@ NOTE: This file should not be manually edited. Please edit `tests/node_compat/co - [parallel/test-net-autoselectfamily-commandline-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-autoselectfamily-commandline-option.js) - [parallel/test-net-autoselectfamily-default.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-autoselectfamily-default.js) - [parallel/test-net-autoselectfamily-ipv4first.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-autoselectfamily-ipv4first.js) -- [parallel/test-net-autoselectfamily.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-autoselectfamily.js) - [parallel/test-net-better-error-messages-listen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-better-error-messages-listen.js) - [parallel/test-net-binary.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-binary.js) - [parallel/test-net-bind-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-bind-twice.js) diff --git a/tests/node_compat/test.ts b/tests/node_compat/test.ts index f6db4ee1ae5c20..6cb41d2e452c72 100644 --- a/tests/node_compat/test.ts +++ b/tests/node_compat/test.ts @@ -19,6 +19,7 @@ import { magenta } from "@std/fmt/colors"; import { pooledMap } from "@std/async/pool"; import { dirname, fromFileUrl, join } from "@std/path"; import { assertEquals, fail } from "@std/assert"; +import { distinct } from "@std/collections"; import { config, getPathsFromTestSuites, @@ -36,6 +37,9 @@ const testPaths = partitionParallelTestPaths( getPathsFromTestSuites(config.ignore), ), ); +testPaths.sequential = distinct(testPaths.sequential); +testPaths.parallel = distinct(testPaths.parallel); + const cwd = new URL(".", import.meta.url); const windowsIgnorePaths = new Set( getPathsFromTestSuites(config.windowsIgnore), diff --git a/tests/node_compat/test/common/index.js b/tests/node_compat/test/common/index.js index d2165aecd0d6b1..d358ffce5b3b7f 100644 --- a/tests/node_compat/test/common/index.js +++ b/tests/node_compat/test/common/index.js @@ -473,6 +473,7 @@ const pwdCommand = isWindows ? module.exports = { allowGlobals, + defaultAutoSelectFamilyAttemptTimeout: 2500, expectsError, expectWarning, getArrayBufferViews, diff --git a/tests/node_compat/test/fixtures/package.json b/tests/node_compat/test/fixtures/package.json deleted file mode 100644 index 0967ef424bce67..00000000000000 --- a/tests/node_compat/test/fixtures/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/tests/node_compat/test/internet/package.json b/tests/node_compat/test/internet/package.json deleted file mode 100644 index 0967ef424bce67..00000000000000 --- a/tests/node_compat/test/internet/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/tests/node_compat/test/internet/test-dns-any.js b/tests/node_compat/test/internet/test-dns-any.js deleted file mode 100644 index b8a70b8e2e7136..00000000000000 --- a/tests/node_compat/test/internet/test-dns-any.js +++ /dev/null @@ -1,194 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 16.13.0 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// TODO(cmorten): enable remaining tests once functionality is implemented. - -'use strict'; - -const common = require('../common'); - -const assert = require('assert'); -const dns = require('dns'); -const net = require('net'); - -let running = false; -const queue = []; - -const dnsPromises = dns.promises; -const isIPv4 = net.isIPv4; -const isIPv6 = net.isIPv6; - -dns.setServers([ '8.8.8.8', '8.8.4.4' ]); - -function checkWrap(req) { - assert.ok(typeof req === 'object'); -} - -const checkers = { - checkA(r) { - assert.ok(isIPv4(r.address)); - // assert.strictEqual(typeof r.ttl, 'number'); - assert.strictEqual(r.type, 'A'); - }, - checkAAAA(r) { - assert.ok(isIPv6(r.address)); - // assert.strictEqual(typeof r.ttl, 'number'); - assert.strictEqual(r.type, 'AAAA'); - }, - checkCNAME(r) { - assert.ok(r.value); - assert.strictEqual(typeof r.value, 'string'); - assert.strictEqual(r.type, 'CNAME'); - }, - checkMX(r) { - assert.strictEqual(typeof r.exchange, 'string'); - assert.strictEqual(typeof r.priority, 'number'); - assert.strictEqual(r.type, 'MX'); - }, - checkNAPTR(r) { - assert.strictEqual(typeof r.flags, 'string'); - assert.strictEqual(typeof r.service, 'string'); - assert.strictEqual(typeof r.regexp, 'string'); - assert.strictEqual(typeof r.replacement, 'string'); - assert.strictEqual(typeof r.order, 'number'); - assert.strictEqual(typeof r.preference, 'number'); - assert.strictEqual(r.type, 'NAPTR'); - }, - checkNS(r) { - assert.strictEqual(typeof r.value, 'string'); - assert.strictEqual(r.type, 'NS'); - }, - checkPTR(r) { - assert.strictEqual(typeof r.value, 'string'); - assert.strictEqual(r.type, 'PTR'); - }, - checkTXT(r) { - assert.ok(Array.isArray(r.entries)); - assert.ok(r.entries.length > 0); - assert.strictEqual(r.type, 'TXT'); - }, - checkSOA(r) { - assert.strictEqual(typeof r.nsname, 'string'); - assert.strictEqual(typeof r.hostmaster, 'string'); - assert.strictEqual(typeof r.serial, 'number'); - assert.strictEqual(typeof r.refresh, 'number'); - assert.strictEqual(typeof r.retry, 'number'); - assert.strictEqual(typeof r.expire, 'number'); - assert.strictEqual(typeof r.minttl, 'number'); - assert.strictEqual(r.type, 'SOA'); - }, - checkSRV(r) { - assert.strictEqual(typeof r.name, 'string'); - assert.strictEqual(typeof r.port, 'number'); - assert.strictEqual(typeof r.priority, 'number'); - assert.strictEqual(typeof r.weight, 'number'); - assert.strictEqual(r.type, 'SRV'); - } -}; - -function TEST(f) { - function next() { - const f = queue.shift(); - if (f) { - running = true; - f(done); - } - } - - function done() { - running = false; - process.nextTick(next); - } - - queue.push(f); - - if (!running) { - next(); - } -} - -function processResult(res) { - assert.ok(Array.isArray(res)); - assert.ok(res.length > 0); - - const types = {}; - res.forEach((obj) => { - types[obj.type] = true; - checkers[`check${obj.type}`](obj); - }); - - return types; -} - -TEST(async function test_sip2sip_for_naptr(done) { - function validateResult(res) { - const types = processResult(res); - assert.ok( - types.A && types.NS && types.NAPTR && types.SOA, - `Missing record type, found ${Object.keys(types)}` - ); - } - - validateResult(await dnsPromises.resolve('sip2sip.info', 'ANY')); - - const req = dns.resolve( - 'sip2sip.info', - 'ANY', - common.mustSucceed((ret) => { - validateResult(ret); - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_google_for_cname_and_srv(done) { - function validateResult(res) { - const types = processResult(res); - assert.ok(types.SRV); - } - - // TODO(kt3k): Temporarily use _caldav._tcp.google.com instead of - // _jabber._tcp.google.com, which currently doesn't respond - // validateResult(await dnsPromises.resolve('_jabber._tcp.google.com', 'ANY')); - validateResult(await dnsPromises.resolve('_caldav._tcp.google.com', 'ANY')); - - - // TODO(kt3k): Temporarily use _caldav._tcp.google.com instead of - // _jabber._tcp.google.com, which currently doesn't respond - const req = dns.resolve( - // '_jabber._tcp.google.com', - '_caldav._tcp.google.com', - 'ANY', - common.mustSucceed((ret) => { - validateResult(ret); - done(); - })); - - checkWrap(req); -}); - -// TODO(bartlomieju): this test started failing on CI on Dec 28th, 2023 returning -// ENOTFOUND. It's unclear what's going on, since `dig -x 8.8.8.8.in-addr.arpa` -// TEST(async function test_ptr(done) { -// function validateResult(res) { -// const types = processResult(res); -// assert.ok(types.PTR); -// } - -// validateResult(await dnsPromises.resolve('8.8.8.8.in-addr.arpa', 'ANY')); - -// const req = dns.resolve( -// '8.8.8.8.in-addr.arpa', -// 'ANY', -// common.mustSucceed((ret) => { -// validateResult(ret); -// done(); -// })); - -// checkWrap(req); -// }); diff --git a/tests/node_compat/test/internet/test-dns-ipv4.js b/tests/node_compat/test/internet/test-dns-ipv4.js deleted file mode 100644 index 43b60950a0b04d..00000000000000 --- a/tests/node_compat/test/internet/test-dns-ipv4.js +++ /dev/null @@ -1,257 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 16.13.0 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -// TODO: enable remaining tests once functionality is implemented. - -const common = require('../common'); -const { addresses } = require('../common/internet'); -const assert = require('assert'); -const dns = require('dns'); -const net = require('net'); -// const util = require('util'); -const isIPv4 = net.isIPv4; - -const dnsPromises = dns.promises; -let running = false; -const queue = []; - -function TEST(f) { - function next() { - const f = queue.shift(); - if (f) { - running = true; - console.log(f.name); - f(done); - } - } - - function done() { - running = false; - process.nextTick(next); - } - - queue.push(f); - - if (!running) { - next(); - } -} - -function checkWrap(req) { - assert.ok(typeof req === 'object'); -} - -TEST(async function test_resolve4(done) { - function validateResult(res) { - assert.ok(res.length > 0); - - for (let i = 0; i < res.length; i++) { - assert.ok(isIPv4(res[i])); - } - } - - validateResult(await dnsPromises.resolve4(addresses.INET4_HOST)); - - const req = dns.resolve4( - addresses.INET4_HOST, - common.mustSucceed((ips) => { - validateResult(ips); - done(); - })); - - checkWrap(req); -}); - -// TEST(async function test_reverse_ipv4(done) { -// function validateResult(res) { -// assert.ok(res.length > 0); - -// for (let i = 0; i < res.length; i++) { -// assert.ok(res[i]); -// assert.ok(typeof res[i] === 'string'); -// } -// } - -// validateResult(await dnsPromises.reverse(addresses.INET4_IP)); - -// const req = dns.reverse( -// addresses.INET4_IP, -// common.mustSucceed((domains) => { -// validateResult(domains); -// done(); -// })); - -// checkWrap(req); -// }); - -TEST(async function test_lookup_ipv4_explicit(done) { - function validateResult(res) { - assert.ok(net.isIPv4(res.address)); - assert.strictEqual(res.family, 4); - } - - validateResult(await dnsPromises.lookup(addresses.INET4_HOST, 4)); - - const req = dns.lookup( - addresses.INET4_HOST, 4, - common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_lookup_ipv4_implicit(done) { - function validateResult(res) { - assert.ok(net.isIPv4(res.address)); - assert.strictEqual(res.family, 4); - } - - validateResult(await dnsPromises.lookup(addresses.INET4_HOST)); - - const req = dns.lookup( - addresses.INET4_HOST, - common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_lookup_ipv4_explicit_object(done) { - function validateResult(res) { - assert.ok(net.isIPv4(res.address)); - assert.strictEqual(res.family, 4); - } - - validateResult(await dnsPromises.lookup(addresses.INET4_HOST, { family: 4 })); - - const req = dns.lookup(addresses.INET4_HOST, { - family: 4 - }, common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_lookup_ipv4_hint_addrconfig(done) { - function validateResult(res) { - assert.ok(net.isIPv4(res.address)); - assert.strictEqual(res.family, 4); - } - - validateResult(await dnsPromises.lookup(addresses.INET4_HOST, { - hints: dns.ADDRCONFIG - })); - - const req = dns.lookup(addresses.INET4_HOST, { - hints: dns.ADDRCONFIG - }, common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_lookup_ip_ipv4(done) { - function validateResult(res) { - assert.strictEqual(res.address, '127.0.0.1'); - assert.strictEqual(res.family, 4); - } - - validateResult(await dnsPromises.lookup('127.0.0.1')); - - const req = dns.lookup('127.0.0.1', - common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_lookup_localhost_ipv4(done) { - function validateResult(res) { - assert.strictEqual(res.address, '127.0.0.1'); - assert.strictEqual(res.family, 4); - } - - validateResult(await dnsPromises.lookup('localhost', 4)); - - const req = dns.lookup('localhost', 4, - common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_lookup_all_ipv4(done) { - function validateResult(res) { - assert.ok(Array.isArray(res)); - assert.ok(res.length > 0); - - res.forEach((ip) => { - assert.ok(isIPv4(ip.address)); - assert.strictEqual(ip.family, 4); - }); - } - - validateResult(await dnsPromises.lookup(addresses.INET4_HOST, { - all: true, - family: 4 - })); - - const req = dns.lookup( - addresses.INET4_HOST, - { all: true, family: 4 }, - common.mustSucceed((ips) => { - validateResult(ips); - done(); - }) - ); - - checkWrap(req); -}); - -// TEST(async function test_lookupservice_ip_ipv4(done) { -// function validateResult(res) { -// assert.strictEqual(typeof res.hostname, 'string'); -// assert(res.hostname); -// assert(['http', 'www', '80'].includes(res.service)); -// } - -// validateResult(await dnsPromises.lookupService('127.0.0.1', 80)); - -// const req = dns.lookupService( -// '127.0.0.1', 80, -// common.mustSucceed((hostname, service) => { -// validateResult({ hostname, service }); -// done(); -// }) -// ); - -// checkWrap(req); -// }); - -// TEST(function test_lookupservice_ip_ipv4_promise(done) { -// util.promisify(dns.lookupService)('127.0.0.1', 80) -// .then(common.mustCall(({ hostname, service }) => { -// assert.strictEqual(typeof hostname, 'string'); -// assert(hostname.length > 0); -// assert(['http', 'www', '80'].includes(service)); -// done(); -// })); -// }); diff --git a/tests/node_compat/test/internet/test-dns-ipv6.js b/tests/node_compat/test/internet/test-dns-ipv6.js deleted file mode 100644 index 4b94d60414ecca..00000000000000 --- a/tests/node_compat/test/internet/test-dns-ipv6.js +++ /dev/null @@ -1,250 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 16.13.0 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -// TODO: enable remaining tests once functionality is implemented. - -const common = require('../common'); -const { addresses } = require('../common/internet'); -if (!common.hasIPv6) - common.skip('this test, no IPv6 support'); - -const assert = require('assert'); -const dns = require('dns'); -const net = require('net'); -const dnsPromises = dns.promises; -const isIPv6 = net.isIPv6; - -let running = false; -const queue = []; - -function TEST(f) { - function next() { - const f = queue.shift(); - if (f) { - running = true; - console.log(f.name); - f(done); - } - } - - function done() { - running = false; - process.nextTick(next); - } - - queue.push(f); - - if (!running) { - next(); - } -} - -function checkWrap(req) { - assert.ok(typeof req === 'object'); -} - -TEST(async function test_resolve6(done) { - function validateResult(res) { - assert.ok(res.length > 0); - - for (let i = 0; i < res.length; i++) { - assert.ok(isIPv6(res[i])); - } - } - - validateResult(await dnsPromises.resolve6(addresses.INET6_HOST)); - - const req = dns.resolve6( - addresses.INET6_HOST, - common.mustSucceed((ips) => { - validateResult(ips); - done(); - })); - - checkWrap(req); -}); - -// TEST(async function test_reverse_ipv6(done) { -// function validateResult(res) { -// assert.ok(res.length > 0); - -// for (let i = 0; i < res.length; i++) { -// assert.ok(typeof res[i] === 'string'); -// } -// } - -// validateResult(await dnsPromises.reverse(addresses.INET6_IP)); - -// const req = dns.reverse( -// addresses.INET6_IP, -// common.mustSucceed((domains) => { -// validateResult(domains); -// done(); -// })); - -// checkWrap(req); -// }); - -TEST(async function test_lookup_ipv6_explicit(done) { - function validateResult(res) { - assert.ok(isIPv6(res.address)); - assert.strictEqual(res.family, 6); - } - - validateResult(await dnsPromises.lookup(addresses.INET6_HOST, 6)); - - const req = dns.lookup( - addresses.INET6_HOST, - 6, - common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -// This ends up just being too problematic to test -// TEST(function test_lookup_ipv6_implicit(done) { -// var req = dns.lookup(addresses.INET6_HOST, function(err, ip, family) { -// assert.ifError(err); -// assert.ok(net.isIPv6(ip)); -// assert.strictEqual(family, 6); - -// done(); -// }); - -// checkWrap(req); -// }); - -TEST(async function test_lookup_ipv6_explicit_object(done) { - function validateResult(res) { - assert.ok(isIPv6(res.address)); - assert.strictEqual(res.family, 6); - } - - validateResult(await dnsPromises.lookup(addresses.INET6_HOST, { family: 6 })); - - const req = dns.lookup(addresses.INET6_HOST, { - family: 6 - }, common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -TEST(function test_lookup_ipv6_hint(done) { - const req = dns.lookup(addresses.INET6_HOST, { - family: 6, - hints: dns.V4MAPPED - }, common.mustCall((err, ip, family) => { - if (err) { - // FreeBSD does not support V4MAPPED - if (common.isFreeBSD) { - assert(err instanceof Error); - assert.strictEqual(err.code, 'EAI_BADFLAGS'); - assert.strictEqual(err.hostname, addresses.INET_HOST); - assert.match(err.message, /getaddrinfo EAI_BADFLAGS/); - done(); - return; - } - - assert.ifError(err); - } - - assert.ok(isIPv6(ip)); - assert.strictEqual(family, 6); - - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_lookup_ip_ipv6(done) { - function validateResult(res) { - assert.ok(isIPv6(res.address)); - assert.strictEqual(res.family, 6); - } - - validateResult(await dnsPromises.lookup('::1')); - - const req = dns.lookup( - '::1', - common.mustSucceed((ip, family) => { - validateResult({ address: ip, family }); - done(); - })); - - checkWrap(req); -}); - -TEST(async function test_lookup_all_ipv6(done) { - function validateResult(res) { - assert.ok(Array.isArray(res)); - assert.ok(res.length > 0); - - res.forEach((ip) => { - assert.ok(isIPv6(ip.address), - `Invalid IPv6: ${ip.address.toString()}`); - assert.strictEqual(ip.family, 6); - }); - } - - validateResult(await dnsPromises.lookup(addresses.INET6_HOST, { - all: true, - family: 6 - })); - - const req = dns.lookup( - addresses.INET6_HOST, - { all: true, family: 6 }, - common.mustSucceed((ips) => { - validateResult(ips); - done(); - }) - ); - - checkWrap(req); -}); - -// TEST(function test_lookupservice_ip_ipv6(done) { -// const req = dns.lookupService( -// '::1', 80, -// common.mustCall((err, host, service) => { -// if (err) { -// // Not skipping the test, rather checking an alternative result, -// // i.e. that ::1 may not be configured (e.g. in /etc/hosts) -// assert.strictEqual(err.code, 'ENOTFOUND'); -// return done(); -// } -// assert.strictEqual(typeof host, 'string'); -// assert(host); -// assert(['http', 'www', '80'].includes(service)); -// done(); -// }) -// ); - -// checkWrap(req); -// }); - -// Disabled because it appears to be not working on Linux. -// TEST(function test_lookup_localhost_ipv6(done) { -// var req = dns.lookup('localhost', 6, function(err, ip, family) { -// assert.ifError(err); -// assert.ok(net.isIPv6(ip)); -// assert.strictEqual(family, 6); -// -// done(); -// }); -// -// checkWrap(req); -// }); diff --git a/tests/node_compat/test/internet/test-dns.js b/tests/node_compat/test/internet/test-dns.js deleted file mode 100644 index 8aaeb728d59bd6..00000000000000 --- a/tests/node_compat/test/internet/test-dns.js +++ /dev/null @@ -1,766 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 16.13.0 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -// TODO(cmorten): enable remaining tests once functionality is implemented. - -const common = require('../common'); -const { addresses } = require('../common/internet'); -const { internalBinding } = require('internal/test/binding'); -// const { getSystemErrorName } = require('util'); -const assert = require('assert'); -const dns = require('dns'); -const net = require('net'); -const isIPv4 = net.isIPv4; -const isIPv6 = net.isIPv6; -const util = require('util'); -const dnsPromises = dns.promises; - -let expected = 0; -let completed = 0; -let running = false; -const queue = []; - - -function TEST(f) { - function next() { - const f = queue.shift(); - if (f) { - running = true; - console.log(f.name); - f(done); - } - } - - function done() { - running = false; - completed++; - process.nextTick(next); - } - - expected++; - queue.push(f); - - if (!running) { - next(); - } -} - - -function checkWrap(req) { - assert.strictEqual(typeof req, 'object'); -} - - -// TEST(function test_reverse_bogus(done) { -// dnsPromises.reverse('bogus ip') -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'EINVAL'); -// assert.strictEqual(getSystemErrorName(err.errno), 'EINVAL'); -// })); - -// assert.throws(() => { -// dns.reverse('bogus ip', common.mustNotCall()); -// }, /^Error: getHostByAddr EINVAL bogus ip$/); -// done(); -// }); - -// TEST(async function test_resolve4_ttl(done) { -// function validateResult(result) { -// assert.ok(result.length > 0); - -// for (const item of result) { -// assert.strictEqual(typeof item, 'object'); -// assert.strictEqual(typeof item.ttl, 'number'); -// assert.strictEqual(typeof item.address, 'string'); -// assert.ok(item.ttl >= 0); -// assert.ok(isIPv4(item.address)); -// } -// } - -// validateResult(await dnsPromises.resolve4(addresses.INET4_HOST, { -// ttl: true -// })); - -// const req = dns.resolve4(addresses.INET4_HOST, { -// ttl: true -// }, function(err, result) { -// assert.ifError(err); -// validateResult(result); -// done(); -// }); - -// checkWrap(req); -// }); - -// TEST(async function test_resolve6_ttl(done) { -// function validateResult(result) { -// assert.ok(result.length > 0); - -// for (const item of result) { -// assert.strictEqual(typeof item, 'object'); -// assert.strictEqual(typeof item.ttl, 'number'); -// assert.strictEqual(typeof item.address, 'string'); -// assert.ok(item.ttl >= 0); -// assert.ok(isIPv6(item.address)); -// } -// } - -// validateResult(await dnsPromises.resolve6(addresses.INET6_HOST, { -// ttl: true -// })); - -// const req = dns.resolve6(addresses.INET6_HOST, { -// ttl: true -// }, function(err, result) { -// assert.ifError(err); -// validateResult(result); -// done(); -// }); - -// checkWrap(req); -// }); - -TEST(async function test_resolveMx(done) { - function validateResult(result) { - assert.ok(result.length > 0); - - for (const item of result) { - assert.strictEqual(typeof item, 'object'); - assert.ok(item.exchange); - assert.strictEqual(typeof item.exchange, 'string'); - assert.strictEqual(typeof item.priority, 'number'); - } - } - - validateResult(await dnsPromises.resolveMx(addresses.MX_HOST)); - - const req = dns.resolveMx(addresses.MX_HOST, function(err, result) { - assert.ifError(err); - validateResult(result); - done(); - }); - - checkWrap(req); -}); - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolveMx_failure(done) { -// dnsPromises.resolveMx(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'ENOTFOUND'); -// })); - -// const req = dns.resolveMx(addresses.NOT_FOUND, function(err, result) { -// assert.ok(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); - -// assert.strictEqual(result, undefined); - -// done(); -// }); - -// checkWrap(req); -// }); - -TEST(async function test_resolveNs(done) { - function validateResult(result) { - assert.ok(result.length > 0); - - for (const item of result) { - assert.ok(item); - assert.strictEqual(typeof item, 'string'); - } - } - - validateResult(await dnsPromises.resolveNs(addresses.NS_HOST)); - - const req = dns.resolveNs(addresses.NS_HOST, function(err, names) { - assert.ifError(err); - validateResult(names); - done(); - }); - - checkWrap(req); -}); - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolveNs_failure(done) { -// dnsPromises.resolveNs(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'ENOTFOUND'); -// })); - -// const req = dns.resolveNs(addresses.NOT_FOUND, function(err, result) { -// assert.ok(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); - -// assert.strictEqual(result, undefined); - -// done(); -// }); - -// checkWrap(req); -// }); - -TEST(async function test_resolveSrv(done) { - function validateResult(result) { - assert.ok(result.length > 0); - - for (const item of result) { - assert.strictEqual(typeof item, 'object'); - assert.ok(item.name); - assert.strictEqual(typeof item.name, 'string'); - assert.strictEqual(typeof item.port, 'number'); - assert.strictEqual(typeof item.priority, 'number'); - assert.strictEqual(typeof item.weight, 'number'); - } - } - - validateResult(await dnsPromises.resolveSrv(addresses.SRV_HOST)); - - const req = dns.resolveSrv(addresses.SRV_HOST, function(err, result) { - assert.ifError(err); - validateResult(result); - done(); - }); - - checkWrap(req); -}); - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolveSrv_failure(done) { -// dnsPromises.resolveSrv(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'ENOTFOUND'); -// })); - -// const req = dns.resolveSrv(addresses.NOT_FOUND, function(err, result) { -// assert.ok(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); - -// assert.strictEqual(result, undefined); - -// done(); -// }); - -// checkWrap(req); -// }); - -// TODO(bartlomieju): this test started failing on CI on Dec 28th, 2023 returning -// ENOTFOUND. It's unclear what's going on, since `dig -x 8.8.8.8.in-addr.arpa` -// returns correct PTR record. -// TEST(async function test_resolvePtr(done) { -// function validateResult(result) { -// assert.ok(result.length > 0); - -// for (const item of result) { -// assert.ok(item); -// assert.strictEqual(typeof item, 'string'); -// } -// } - -// validateResult(await dnsPromises.resolvePtr(addresses.PTR_HOST)); - -// const req = dns.resolvePtr(addresses.PTR_HOST, function(err, result) { -// assert.ifError(err); -// validateResult(result); -// done(); -// }); - -// checkWrap(req); -// }); - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolvePtr_failure(done) { -// dnsPromises.resolvePtr(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'ENOTFOUND'); -// })); - -// const req = dns.resolvePtr(addresses.NOT_FOUND, function(err, result) { -// assert.ok(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); - -// assert.strictEqual(result, undefined); - -// done(); -// }); - -// checkWrap(req); -// }); - -TEST(async function test_resolveNaptr(done) { - function validateResult(result) { - assert.ok(result.length > 0); - - for (const item of result) { - assert.strictEqual(typeof item, 'object'); - assert.strictEqual(typeof item.flags, 'string'); - assert.strictEqual(typeof item.service, 'string'); - assert.strictEqual(typeof item.regexp, 'string'); - assert.strictEqual(typeof item.replacement, 'string'); - assert.strictEqual(typeof item.order, 'number'); - assert.strictEqual(typeof item.preference, 'number'); - } - } - - validateResult(await dnsPromises.resolveNaptr(addresses.NAPTR_HOST)); - - const req = dns.resolveNaptr(addresses.NAPTR_HOST, function(err, result) { - assert.ifError(err); - validateResult(result); - done(); - }); - - checkWrap(req); -}); - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolveNaptr_failure(done) { -// dnsPromises.resolveNaptr(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'ENOTFOUND'); -// })); - -// const req = dns.resolveNaptr(addresses.NOT_FOUND, function(err, result) { -// assert.ok(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); - -// assert.strictEqual(result, undefined); - -// done(); -// }); - -// checkWrap(req); -// }); - -TEST(async function test_resolveSoa(done) { - function validateResult(result) { - assert.strictEqual(typeof result, 'object'); - assert.strictEqual(typeof result.nsname, 'string'); - assert.ok(result.nsname.length > 0); - assert.strictEqual(typeof result.hostmaster, 'string'); - assert.ok(result.hostmaster.length > 0); - assert.strictEqual(typeof result.serial, 'number'); - assert.ok((result.serial > 0) && (result.serial < 4294967295)); - assert.strictEqual(typeof result.refresh, 'number'); - assert.ok((result.refresh > 0) && (result.refresh < 2147483647)); - assert.strictEqual(typeof result.retry, 'number'); - assert.ok((result.retry > 0) && (result.retry < 2147483647)); - assert.strictEqual(typeof result.expire, 'number'); - assert.ok((result.expire > 0) && (result.expire < 2147483647)); - assert.strictEqual(typeof result.minttl, 'number'); - assert.ok((result.minttl >= 0) && (result.minttl < 2147483647)); - } - - validateResult(await dnsPromises.resolveSoa(addresses.SOA_HOST)); - - const req = dns.resolveSoa(addresses.SOA_HOST, function(err, result) { - assert.ifError(err); - validateResult(result); - done(); - }); - - checkWrap(req); -}); - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolveSoa_failure(done) { -// dnsPromises.resolveSoa(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'ENOTFOUND'); -// })); - -// const req = dns.resolveSoa(addresses.NOT_FOUND, function(err, result) { -// assert.ok(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); - -// assert.strictEqual(result, undefined); - -// done(); -// }); - -// checkWrap(req); -// }); - -TEST(async function test_resolveCaa(done) { - function validateResult(result) { - assert.ok(Array.isArray(result), - `expected array, got ${util.inspect(result)}`); - assert.strictEqual(result.length, 1); - assert.strictEqual(typeof result[0].critical, 'number'); - assert.strictEqual(result[0].critical, 0); - assert.strictEqual(result[0].issue, 'pki.goog'); - } - - validateResult(await dnsPromises.resolveCaa(addresses.CAA_HOST)); - - const req = dns.resolveCaa(addresses.CAA_HOST, function(err, records) { - assert.ifError(err); - validateResult(records); - done(); - }); - - checkWrap(req); -}); - -// NOTE(bartlomieju): this test started failing around July 11th, 2023. -// TEST(async function test_resolveCname(done) { -// function validateResult(result) { -// assert.ok(result.length > 0); -// -// for (const item of result) { -// assert.ok(item); -// assert.strictEqual(typeof item, 'string'); -// } -// } -// -// validateResult(await dnsPromises.resolveCname(addresses.CNAME_HOST)); -// -// const req = dns.resolveCname(addresses.CNAME_HOST, function(err, names) { -// assert.ifError(err); -// validateResult(names); -// done(); -// }); -// -// checkWrap(req); -// }); - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolveCname_failure(done) { -// dnsPromises.resolveCname(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'ENOTFOUND'); -// })); - -// const req = dns.resolveCname(addresses.NOT_FOUND, function(err, result) { -// assert.ok(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); - -// assert.strictEqual(result, undefined); - -// done(); -// }); - -// checkWrap(req); -// }); - - -TEST(async function test_resolveTxt(done) { - function validateResult(result) { - assert.ok(Array.isArray(result[0])); - assert.strictEqual(result.length, 1); - assert(result[0][0].startsWith('v=spf1')); - } - - validateResult(await dnsPromises.resolveTxt(addresses.TXT_HOST)); - - const req = dns.resolveTxt(addresses.TXT_HOST, function(err, records) { - assert.ifError(err); - validateResult(records); - done(); - }); - - checkWrap(req); -}); - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolveTxt_failure(done) { -// dnsPromises.resolveTxt(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.mustCall((err) => { -// assert.strictEqual(err.code, 'ENOTFOUND'); -// })); - -// const req = dns.resolveTxt(addresses.NOT_FOUND, function(err, result) { -// assert.ok(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); - -// assert.strictEqual(result, undefined); - -// done(); -// }); - -// checkWrap(req); -// }); - - -TEST(function test_lookup_failure(done) { - dnsPromises.lookup(addresses.NOT_FOUND, 4) - .then(common.mustNotCall()) - .catch(common.expectsError({ code: dns.NOTFOUND })); - - const req = dns.lookup(addresses.NOT_FOUND, 4, (err) => { - assert.ok(err instanceof Error); - assert.strictEqual(err.code, dns.NOTFOUND); - assert.strictEqual(err.code, 'ENOTFOUND'); - assert.doesNotMatch(err.message, /ENOENT/); - assert.ok(err.message.includes(addresses.NOT_FOUND)); - - done(); - }); - - checkWrap(req); -}); - - -TEST(async function test_lookup_ip_all(done) { - function validateResult(result) { - assert.ok(Array.isArray(result)); - assert.ok(result.length > 0); - assert.strictEqual(result[0].address, '127.0.0.1'); - assert.strictEqual(result[0].family, 4); - } - - validateResult(await dnsPromises.lookup('127.0.0.1', { all: true })); - - const req = dns.lookup( - '127.0.0.1', - { all: true }, - function(err, ips, family) { - assert.ifError(err); - assert.strictEqual(family, undefined); - validateResult(ips); - done(); - } - ); - - checkWrap(req); -}); - - -TEST(function test_lookup_ip_all_promise(done) { - const req = util.promisify(dns.lookup)('127.0.0.1', { all: true }) - .then(function(ips) { - assert.ok(Array.isArray(ips)); - assert.ok(ips.length > 0); - assert.strictEqual(ips[0].address, '127.0.0.1'); - assert.strictEqual(ips[0].family, 4); - - done(); - }); - - checkWrap(req); -}); - - -TEST(function test_lookup_ip_promise(done) { - util.promisify(dns.lookup)('127.0.0.1') - .then(function({ address, family }) { - assert.strictEqual(address, '127.0.0.1'); - assert.strictEqual(family, 4); - - done(); - }); -}); - - -TEST(async function test_lookup_null_all(done) { - assert.deepStrictEqual(await dnsPromises.lookup(null, { all: true }), []); - - const req = dns.lookup(null, { all: true }, (err, ips) => { - assert.ifError(err); - assert.ok(Array.isArray(ips)); - assert.strictEqual(ips.length, 0); - - done(); - }); - - checkWrap(req); -}); - - -TEST(async function test_lookup_all_mixed(done) { - function validateResult(result) { - assert.ok(Array.isArray(result)); - assert.ok(result.length > 0); - - result.forEach(function(ip) { - if (isIPv4(ip.address)) - assert.strictEqual(ip.family, 4); - else if (isIPv6(ip.address)) - assert.strictEqual(ip.family, 6); - else - assert.fail('unexpected IP address'); - }); - } - - validateResult(await dnsPromises.lookup(addresses.INET_HOST, { all: true })); - - const req = dns.lookup(addresses.INET_HOST, { - all: true - }, function(err, ips) { - assert.ifError(err); - validateResult(ips); - done(); - }); - - checkWrap(req); -}); - - -// TEST(function test_lookupservice_invalid(done) { -// dnsPromises.lookupService('1.2.3.4', 80) -// .then(common.mustNotCall()) -// .catch(common.expectsError({ code: 'ENOTFOUND' })); - -// const req = dns.lookupService('1.2.3.4', 80, (err) => { -// assert(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); -// assert.match(err.message, /1\.2\.3\.4/); - -// done(); -// }); - -// checkWrap(req); -// }); - - -// TEST(function test_reverse_failure(done) { -// dnsPromises.reverse('203.0.113.0') -// .then(common.mustNotCall()) -// .catch(common.expectsError({ -// code: 'ENOTFOUND', -// hostname: '203.0.113.0' -// })); - -// // 203.0.113.0/24 are addresses reserved for (RFC) documentation use only -// const req = dns.reverse('203.0.113.0', function(err) { -// assert(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); // Silly error code... -// assert.strictEqual(err.hostname, '203.0.113.0'); -// assert.match(err.message, /203\.0\.113\.0/); - -// done(); -// }); - -// checkWrap(req); -// }); - - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_lookup_failure(done) { -// dnsPromises.lookup(addresses.NOT_FOUND) -// .then(common.mustNotCall()) -// .catch(common.expectsError({ -// code: 'ENOTFOUND', -// hostname: addresses.NOT_FOUND -// })); - -// const req = dns.lookup(addresses.NOT_FOUND, (err) => { -// assert(err instanceof Error); -// assert.strictEqual(err.code, 'ENOTFOUND'); // Silly error code... -// assert.strictEqual(err.hostname, addresses.NOT_FOUND); -// assert.ok(err.message.includes(addresses.NOT_FOUND)); - -// done(); -// }); - -// checkWrap(req); -// }); - - -// TODO(bartlomieju): this test became very flaky on CI, returning `UNKNOWN` -// instead of `ENOTFOUND`. -// TEST(function test_resolve_failure(done) { -// const req = dns.resolve4(addresses.NOT_FOUND, (err) => { -// assert(err instanceof Error); - -// switch (err.code) { -// case 'ENOTFOUND': -// case 'ESERVFAIL': -// break; -// default: -// assert.strictEqual(err.code, 'ENOTFOUND'); // Silly error code... -// break; -// } - -// assert.strictEqual(err.hostname, addresses.NOT_FOUND); -// assert.ok(err.message.includes(addresses.NOT_FOUND)); - -// done(); -// }); - -// checkWrap(req); -// }); - - -let getaddrinfoCallbackCalled = false; - -console.log(`looking up ${addresses.INET4_HOST}..`); - -const cares = internalBinding('cares_wrap'); -const req = new cares.GetAddrInfoReqWrap(); -cares.getaddrinfo(req, addresses.INET4_HOST, 4, - /* hints */ 0, /* verbatim */ true); - -req.oncomplete = function(err, domains) { - assert.strictEqual(err, 0); - console.log(`${addresses.INET4_HOST} = ${domains}`); - assert.ok(Array.isArray(domains)); - assert.ok(domains.length >= 1); - assert.strictEqual(typeof domains[0], 'string'); - getaddrinfoCallbackCalled = true; -}; - -process.on('exit', function() { - console.log(`${completed} tests completed`); - assert.strictEqual(running, false); - assert.strictEqual(completed, expected); - assert.ok(getaddrinfoCallbackCalled); -}); - -// Should not throw. -dns.lookup(addresses.INET6_HOST, 6, common.mustCall()); -dns.lookup(addresses.INET_HOST, {}, common.mustCall()); -// dns.lookupService('0.0.0.0', '0', common.mustCall()); -// dns.lookupService('0.0.0.0', 0, common.mustCall()); -(async function() { - await dnsPromises.lookup(addresses.INET6_HOST, 6); - await dnsPromises.lookup(addresses.INET_HOST, {}); -})().then(common.mustCall()); diff --git a/tests/node_compat/test/parallel/package.json b/tests/node_compat/test/parallel/package.json deleted file mode 100644 index 0967ef424bce67..00000000000000 --- a/tests/node_compat/test/parallel/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/tests/node_compat/test/parallel/test-net-autoselectfamily.js b/tests/node_compat/test/parallel/test-net-autoselectfamily.js new file mode 100644 index 00000000000000..3b520e6c809a0b --- /dev/null +++ b/tests/node_compat/test/parallel/test-net-autoselectfamily.js @@ -0,0 +1,312 @@ +// deno-fmt-ignore-file +// deno-lint-ignore-file + +// Copyright Joyent and Node contributors. All rights reserved. MIT license. +// Taken from Node 18.12.1 +// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually. + +'use strict'; + +const common = require('../common'); +const { parseDNSPacket, writeDNSPacket } = require('../common/dns'); + +const assert = require('assert'); +const dgram = require('dgram'); +const { Resolver } = require('dns'); +const { createConnection, createServer } = require('net'); + +// Test that happy eyeballs algorithm is properly implemented. + +// Purposely not using setDefaultAutoSelectFamilyAttemptTimeout here to test the +// parameter is correctly used in options. +// +// Some of the machines in the CI need more time to establish connection +const autoSelectFamilyAttemptTimeout = common.defaultAutoSelectFamilyAttemptTimeout; + +function _lookup(resolver, hostname, options, cb) { + resolver.resolve(hostname, 'ANY', (err, replies) => { + assert.notStrictEqual(options.family, 4); + + if (err) { + return cb(err); + } + + const hosts = replies + .map((r) => ({ address: r.address, family: r.type === 'AAAA' ? 6 : 4 })) + .sort((a, b) => b.family - a.family); + + if (options.all === true) { + return cb(null, hosts); + } + + return cb(null, hosts[0].address, hosts[0].family); + }); +} + +function createDnsServer(ipv6Addrs, ipv4Addrs, cb) { + if (!Array.isArray(ipv6Addrs)) { + ipv6Addrs = [ipv6Addrs]; + } + + if (!Array.isArray(ipv4Addrs)) { + ipv4Addrs = [ipv4Addrs]; + } + + // Create a DNS server which replies with a AAAA and a A record for the same host + const socket = dgram.createSocket('udp4'); + + // TODO(kt3k): We use common.mustCallAtLeast instead of common.mustCall + // because Deno sends multiple requests to the DNS server. + // This can be addressed if Deno.resolveDns supports ANY record type. + // See https://github.com/denoland/deno/issues/14492 + socket.on('message', common.mustCallAtLeast((msg, { address, port }) => { + const parsed = parseDNSPacket(msg); + const domain = parsed.questions[0].domain; + assert.strictEqual(domain, 'example.org'); + + socket.send(writeDNSPacket({ + id: parsed.id, + questions: parsed.questions, + answers: [ + ...ipv6Addrs.map((address) => ({ type: 'AAAA', address, ttl: 123, domain: 'example.org' })), + ...ipv4Addrs.map((address) => ({ type: 'A', address, ttl: 123, domain: 'example.org' })), + ] + }), port, address); + })); + + socket.bind(0, () => { + const resolver = new Resolver(); + resolver.setServers([`127.0.0.1:${socket.address().port}`]); + + cb({ dnsServer: socket, lookup: _lookup.bind(null, resolver) }); + }); +} + +// Test that IPV4 is reached if IPV6 is not reachable +{ + createDnsServer('::1', '127.0.0.1', common.mustCall(function({ dnsServer, lookup }) { + const ipv4Server = createServer((socket) => { + socket.on('data', common.mustCall(() => { + socket.write('response-ipv4'); + socket.end(); + })); + }); + + ipv4Server.listen(0, '127.0.0.1', common.mustCall(() => { + const port = ipv4Server.address().port; + + const connection = createConnection({ + host: 'example.org', + port: port, + lookup, + autoSelectFamily: true, + autoSelectFamilyAttemptTimeout, + }); + + let response = ''; + connection.setEncoding('utf-8'); + + connection.on('ready', common.mustCall(() => { + assert.deepStrictEqual(connection.autoSelectFamilyAttemptedAddresses, [`::1:${port}`, `127.0.0.1:${port}`]); + })); + + connection.on('data', (chunk) => { + response += chunk; + }); + + connection.on('end', common.mustCall(() => { + assert.strictEqual(response, 'response-ipv4'); + ipv4Server.close(); + dnsServer.close(); + })); + + connection.write('request'); + })); + })); +} + +// Test that only the last successful connection is established. +{ + createDnsServer( + ['2606:4700::6810:85e5', '2606:4700::6810:84e5', "::1"], + // TODO(kt3k): Comment out ipv4 addresses to make the test pass faster. + // Enable this when Deno.connect() call becomes cancellable. + // See https://github.com/denoland/deno/issues/26819 + // ['104.20.22.46', '104.20.23.46', '127.0.0.1'], + ['127.0.0.1'], + common.mustCall(function({ dnsServer, lookup }) { + const ipv4Server = createServer((socket) => { + socket.on('data', common.mustCall(() => { + socket.write('response-ipv4'); + socket.end(); + })); + }); + + ipv4Server.listen(0, '127.0.0.1', common.mustCall(() => { + const port = ipv4Server.address().port; + + const connection = createConnection({ + host: 'example.org', + port: port, + lookup, + autoSelectFamily: true, + autoSelectFamilyAttemptTimeout, + }); + + let response = ''; + connection.setEncoding('utf-8'); + + connection.on('ready', common.mustCall(() => { + assert.deepStrictEqual( + connection.autoSelectFamilyAttemptedAddresses, + [ + `2606:4700::6810:85e5:${port}`, + `104.20.22.46:${port}`, + `2606:4700::6810:84e5:${port}`, + `104.20.23.46:${port}`, + `::1:${port}`, + `127.0.0.1:${port}`, + ] + ); + })); + + connection.on('data', (chunk) => { + response += chunk; + }); + + connection.on('end', common.mustCall(() => { + assert.strictEqual(response, 'response-ipv4'); + ipv4Server.close(); + dnsServer.close(); + })); + + connection.write('request'); + })); + }) + ); +} + +// Test that IPV4 is NOT reached if IPV6 is reachable +if (common.hasIPv6) { + createDnsServer('::1', '127.0.0.1', common.mustCall(function({ dnsServer, lookup }) { + const ipv4Server = createServer((socket) => { + socket.on('data', common.mustNotCall(() => { + socket.write('response-ipv4'); + socket.end(); + })); + }); + + const ipv6Server = createServer((socket) => { + socket.on('data', common.mustCall(() => { + socket.write('response-ipv6'); + socket.end(); + })); + }); + + ipv4Server.listen(0, '127.0.0.1', common.mustCall(() => { + const port = ipv4Server.address().port; + + ipv6Server.listen(port, '::1', common.mustCall(() => { + const connection = createConnection({ + host: 'example.org', + port, + lookup, + autoSelectFamily: true, + autoSelectFamilyAttemptTimeout, + }); + + let response = ''; + connection.setEncoding('utf-8'); + + connection.on('ready', common.mustCall(() => { + assert.deepStrictEqual(connection.autoSelectFamilyAttemptedAddresses, [`::1:${port}`]); + })); + + connection.on('data', (chunk) => { + response += chunk; + }); + + connection.on('end', common.mustCall(() => { + assert.strictEqual(response, 'response-ipv6'); + ipv4Server.close(); + ipv6Server.close(); + dnsServer.close(); + })); + + connection.write('request'); + })); + })); + })); +} + +// Test that when all errors are returned when no connections succeeded +{ + createDnsServer('::1', '127.0.0.1', common.mustCall(function({ dnsServer, lookup }) { + const connection = createConnection({ + host: 'example.org', + port: 10, + lookup, + autoSelectFamily: true, + autoSelectFamilyAttemptTimeout, + }); + + connection.on('ready', common.mustNotCall()); + connection.on('error', common.mustCall((error) => { + assert.deepStrictEqual(connection.autoSelectFamilyAttemptedAddresses, ['::1:10', '127.0.0.1:10']); + assert.strictEqual(error.constructor.name, 'AggregateError'); + assert.strictEqual(error.errors.length, 2); + + const errors = error.errors.map((e) => e.message); + assert.ok(errors.includes('connect ECONNREFUSED 127.0.0.1:10')); + + if (common.hasIPv6) { + assert.ok(errors.includes('connect ECONNREFUSED ::1:10')); + } + + dnsServer.close(); + })); + })); +} + +// Test that the option can be disabled +{ + createDnsServer('::1', '127.0.0.1', common.mustCall(function({ dnsServer, lookup }) { + const ipv4Server = createServer((socket) => { + socket.on('data', common.mustCall(() => { + socket.write('response-ipv4'); + socket.end(); + })); + }); + + ipv4Server.listen(0, '127.0.0.1', common.mustCall(() => { + const port = ipv4Server.address().port; + + const connection = createConnection({ + host: 'example.org', + port, + lookup, + autoSelectFamily: false, + }); + + connection.on('ready', common.mustNotCall()); + connection.on('error', common.mustCall((error) => { + assert.strictEqual(connection.autoSelectFamilyAttemptedAddresses, undefined); + + if (common.hasIPv6) { + assert.strictEqual(error.code, 'ECONNREFUSED'); + assert.strictEqual(error.message, `connect ECONNREFUSED ::1:${port}`); + } else if (error.code === 'EAFNOSUPPORT') { + assert.strictEqual(error.message, `connect EAFNOSUPPORT ::1:${port} - Local (undefined:undefined)`); + } else if (error.code === 'EUNATCH') { + assert.strictEqual(error.message, `connect EUNATCH ::1:${port} - Local (:::0)`); + } else { + assert.strictEqual(error.code, 'EADDRNOTAVAIL'); + assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`); + } + + ipv4Server.close(); + dnsServer.close(); + })); + })); + })); +} diff --git a/tests/node_compat/test/pseudo-tty/package.json b/tests/node_compat/test/pseudo-tty/package.json deleted file mode 100644 index 0967ef424bce67..00000000000000 --- a/tests/node_compat/test/pseudo-tty/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/tests/node_compat/test/pummel/package.json b/tests/node_compat/test/pummel/package.json deleted file mode 100644 index 0967ef424bce67..00000000000000 --- a/tests/node_compat/test/pummel/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/tests/node_compat/test/sequential/package.json b/tests/node_compat/test/sequential/package.json deleted file mode 100644 index 0967ef424bce67..00000000000000 --- a/tests/node_compat/test/sequential/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/tests/registry/jsr/@deno/otel/0.0.2/deno.json b/tests/registry/jsr/@deno/otel/0.0.2/deno.json new file mode 100644 index 00000000000000..cfa44a7d079222 --- /dev/null +++ b/tests/registry/jsr/@deno/otel/0.0.2/deno.json @@ -0,0 +1,14 @@ +{ + "name": "@deno/otel", + "version": "0.0.2", + "exports": { + ".": "./src/index.ts", + "./register": "./src/register.ts" + }, + "tasks": { + "check:license": "deno run -A tools/check_license.ts", + "check:docs": "deno doc --lint src/index.ts", + "check": "deno task check:license --check", + "ok": "deno fmt --check && deno lint && deno task check" + } +} diff --git a/tests/registry/jsr/@deno/otel/0.0.2/src/index.ts b/tests/registry/jsr/@deno/otel/0.0.2/src/index.ts new file mode 100644 index 00000000000000..9c4445783278c6 --- /dev/null +++ b/tests/registry/jsr/@deno/otel/0.0.2/src/index.ts @@ -0,0 +1,38 @@ +// Copyright 2024-2024 the Deno authors. All rights reserved. MIT license. + +import { context } from "npm:@opentelemetry/api@1"; +import { + BasicTracerProvider, + SimpleSpanProcessor, +} from "npm:@opentelemetry/sdk-trace-base@1"; + +// @ts-ignore Deno.telemetry is not typed yet +const telemetry = Deno.telemetry ?? Deno.tracing; + +let COUNTER = 1; + +/** + * Register `Deno.telemetry` with the OpenTelemetry library. + */ +export function register() { + context.setGlobalContextManager( + new telemetry.ContextManager() ?? telemetry.ContextManager(), + ); + + const provider = new BasicTracerProvider({ + idGenerator: Deno.env.get("DENO_UNSTABLE_OTEL_DETERMINISTIC") === "1" ? { + generateSpanId() { + return "1" + String(COUNTER++).padStart(15, "0"); + }, + generateTraceId() { + return "1" + String(COUNTER++).padStart(31, "0"); + } + } : undefined + }); + + // @ts-ignore Deno.tracing is not typed yet + const exporter = new telemetry.SpanExporter(); + provider.addSpanProcessor(new SimpleSpanProcessor(exporter)); + + provider.register(); +} diff --git a/tests/registry/jsr/@deno/otel/0.0.2/src/register.ts b/tests/registry/jsr/@deno/otel/0.0.2/src/register.ts new file mode 100644 index 00000000000000..54437070761d92 --- /dev/null +++ b/tests/registry/jsr/@deno/otel/0.0.2/src/register.ts @@ -0,0 +1,5 @@ +// Copyright 2024-2024 the Deno authors. All rights reserved. MIT license. + +import { register } from "./index.ts"; + +register(); diff --git a/tests/registry/jsr/@deno/otel/0.0.2_meta.json b/tests/registry/jsr/@deno/otel/0.0.2_meta.json new file mode 100644 index 00000000000000..79c28d61d1556f --- /dev/null +++ b/tests/registry/jsr/@deno/otel/0.0.2_meta.json @@ -0,0 +1,6 @@ +{ + "exports": { + ".": "./src/index.ts", + "./register": "./src/register.ts" + } +} \ No newline at end of file diff --git a/tests/registry/jsr/@deno/otel/meta.json b/tests/registry/jsr/@deno/otel/meta.json new file mode 100644 index 00000000000000..1cb49741a18954 --- /dev/null +++ b/tests/registry/jsr/@deno/otel/meta.json @@ -0,0 +1,8 @@ +{ + "scope": "deno", + "name": "otel", + "latest": "0.0.2", + "versions": { + "0.0.2": {} + } +} \ No newline at end of file diff --git a/tests/registry/jsr/@denotest/add/0.2.1/mod.ts b/tests/registry/jsr/@denotest/add/0.2.1/mod.ts new file mode 100644 index 00000000000000..864e8dd321d82e --- /dev/null +++ b/tests/registry/jsr/@denotest/add/0.2.1/mod.ts @@ -0,0 +1,4 @@ +// This is renamed to `add()` in 1.0.0. +export function sum(a: number, b: number): number { + return a + b; +} diff --git a/tests/registry/jsr/@denotest/add/0.2.1_meta.json b/tests/registry/jsr/@denotest/add/0.2.1_meta.json new file mode 100644 index 00000000000000..6eebe219854055 --- /dev/null +++ b/tests/registry/jsr/@denotest/add/0.2.1_meta.json @@ -0,0 +1,8 @@ +{ + "exports": { + ".": "./mod.ts" + }, + "moduleGraph1": { + "/mod.ts": {} + } +} diff --git a/tests/registry/jsr/@denotest/add/meta.json b/tests/registry/jsr/@denotest/add/meta.json index 72aea80cc34536..f1a50109d8bc08 100644 --- a/tests/registry/jsr/@denotest/add/meta.json +++ b/tests/registry/jsr/@denotest/add/meta.json @@ -4,6 +4,7 @@ "yanked": true }, "1.0.0": {}, - "0.2.0": {} + "0.2.0": {}, + "0.2.1": {} } } diff --git a/tests/registry/jsr/@denotest/multiple-exports/0.2.0/add.ts b/tests/registry/jsr/@denotest/multiple-exports/0.2.0/add.ts new file mode 100644 index 00000000000000..de02f69024bf76 --- /dev/null +++ b/tests/registry/jsr/@denotest/multiple-exports/0.2.0/add.ts @@ -0,0 +1 @@ +export * from "jsr:@denotest/add@1"; diff --git a/tests/registry/jsr/@denotest/multiple-exports/0.2.0/data.json b/tests/registry/jsr/@denotest/multiple-exports/0.2.0/data.json new file mode 100644 index 00000000000000..885e71c6ccde35 --- /dev/null +++ b/tests/registry/jsr/@denotest/multiple-exports/0.2.0/data.json @@ -0,0 +1,3 @@ +{ + "a": 1 +} \ No newline at end of file diff --git a/tests/registry/jsr/@denotest/multiple-exports/0.2.0/subtract.ts b/tests/registry/jsr/@denotest/multiple-exports/0.2.0/subtract.ts new file mode 100644 index 00000000000000..215c42310d69bb --- /dev/null +++ b/tests/registry/jsr/@denotest/multiple-exports/0.2.0/subtract.ts @@ -0,0 +1 @@ +export * from "jsr:@denotest/subtract@1"; diff --git a/tests/registry/jsr/@denotest/multiple-exports/0.2.0_meta.json b/tests/registry/jsr/@denotest/multiple-exports/0.2.0_meta.json new file mode 100644 index 00000000000000..d9f58b9a61a03f --- /dev/null +++ b/tests/registry/jsr/@denotest/multiple-exports/0.2.0_meta.json @@ -0,0 +1,7 @@ +{ + "exports": { + "./add": "./add.ts", + "./subtract": "./subtract.ts", + "./data-json": "./data.json" + } +} diff --git a/tests/registry/jsr/@denotest/multiple-exports/0.5.0/add.ts b/tests/registry/jsr/@denotest/multiple-exports/0.5.0/add.ts new file mode 100644 index 00000000000000..de02f69024bf76 --- /dev/null +++ b/tests/registry/jsr/@denotest/multiple-exports/0.5.0/add.ts @@ -0,0 +1 @@ +export * from "jsr:@denotest/add@1"; diff --git a/tests/registry/jsr/@denotest/multiple-exports/0.5.0/data.json b/tests/registry/jsr/@denotest/multiple-exports/0.5.0/data.json new file mode 100644 index 00000000000000..885e71c6ccde35 --- /dev/null +++ b/tests/registry/jsr/@denotest/multiple-exports/0.5.0/data.json @@ -0,0 +1,3 @@ +{ + "a": 1 +} \ No newline at end of file diff --git a/tests/registry/jsr/@denotest/multiple-exports/0.5.0/subtract.ts b/tests/registry/jsr/@denotest/multiple-exports/0.5.0/subtract.ts new file mode 100644 index 00000000000000..215c42310d69bb --- /dev/null +++ b/tests/registry/jsr/@denotest/multiple-exports/0.5.0/subtract.ts @@ -0,0 +1 @@ +export * from "jsr:@denotest/subtract@1"; diff --git a/tests/registry/jsr/@denotest/multiple-exports/0.5.0_meta.json b/tests/registry/jsr/@denotest/multiple-exports/0.5.0_meta.json new file mode 100644 index 00000000000000..d9f58b9a61a03f --- /dev/null +++ b/tests/registry/jsr/@denotest/multiple-exports/0.5.0_meta.json @@ -0,0 +1,7 @@ +{ + "exports": { + "./add": "./add.ts", + "./subtract": "./subtract.ts", + "./data-json": "./data.json" + } +} diff --git a/tests/registry/jsr/@denotest/multiple-exports/meta.json b/tests/registry/jsr/@denotest/multiple-exports/meta.json index 02601e4d0d5188..aaaf18a184ff65 100644 --- a/tests/registry/jsr/@denotest/multiple-exports/meta.json +++ b/tests/registry/jsr/@denotest/multiple-exports/meta.json @@ -1,5 +1,7 @@ { "versions": { - "1.0.0": {} + "1.0.0": {}, + "0.5.0": {}, + "0.2.0": {} } } diff --git a/tests/registry/jsr/@denotest/subtract/0.2.0/mod.ts b/tests/registry/jsr/@denotest/subtract/0.2.0/mod.ts new file mode 100644 index 00000000000000..74e49ea6fa9601 --- /dev/null +++ b/tests/registry/jsr/@denotest/subtract/0.2.0/mod.ts @@ -0,0 +1,3 @@ +export function sub(a: number, b: number): number { + return a - b; +} diff --git a/tests/registry/jsr/@denotest/subtract/0.2.0_meta.json b/tests/registry/jsr/@denotest/subtract/0.2.0_meta.json new file mode 100644 index 00000000000000..6eebe219854055 --- /dev/null +++ b/tests/registry/jsr/@denotest/subtract/0.2.0_meta.json @@ -0,0 +1,8 @@ +{ + "exports": { + ".": "./mod.ts" + }, + "moduleGraph1": { + "/mod.ts": {} + } +} diff --git a/tests/registry/jsr/@denotest/subtract/meta.json b/tests/registry/jsr/@denotest/subtract/meta.json index 02601e4d0d5188..2f4cee59dfe7f8 100644 --- a/tests/registry/jsr/@denotest/subtract/meta.json +++ b/tests/registry/jsr/@denotest/subtract/meta.json @@ -1,5 +1,7 @@ { + "latest": "1.0.0", "versions": { - "1.0.0": {} + "1.0.0": {}, + "0.2.0": {} } } diff --git a/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/install.mjs b/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/install.mjs new file mode 100644 index 00000000000000..31020fcdf9c859 --- /dev/null +++ b/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/install.mjs @@ -0,0 +1,3 @@ +import * as fs from "node:fs"; + +fs.writeFileSync("./testbin.js", "#!/usr/bin/env node\nconsole.log('run testbin');"); \ No newline at end of file diff --git a/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/package.json b/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/package.json new file mode 100644 index 00000000000000..ad8dea002e5221 --- /dev/null +++ b/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/package.json @@ -0,0 +1,10 @@ +{ + "name": "@denotest/bin-created-by-lifecycle", + "version": "1.0.0", + "scripts": { + "install": "node install.mjs" + }, + "bin": { + "testbin": "testbin.js" + } +} \ No newline at end of file diff --git a/tests/registry/npm/@denotest/has-patch-versions/0.1.0/package.json b/tests/registry/npm/@denotest/has-patch-versions/0.1.0/package.json new file mode 100644 index 00000000000000..45684d4f5265a9 --- /dev/null +++ b/tests/registry/npm/@denotest/has-patch-versions/0.1.0/package.json @@ -0,0 +1,5 @@ +{ + "name": "@denotest/has-patch-versions", + "version": "0.1.0" + +} \ No newline at end of file diff --git a/tests/registry/npm/@denotest/has-patch-versions/0.1.1/package.json b/tests/registry/npm/@denotest/has-patch-versions/0.1.1/package.json new file mode 100644 index 00000000000000..4483df34e58e21 --- /dev/null +++ b/tests/registry/npm/@denotest/has-patch-versions/0.1.1/package.json @@ -0,0 +1,5 @@ +{ + "name": "@denotest/has-patch-versions", + "version": "0.1.1" + +} \ No newline at end of file diff --git a/tests/registry/npm/@denotest/has-patch-versions/0.2.0/package.json b/tests/registry/npm/@denotest/has-patch-versions/0.2.0/package.json new file mode 100644 index 00000000000000..55efaaa3263f48 --- /dev/null +++ b/tests/registry/npm/@denotest/has-patch-versions/0.2.0/package.json @@ -0,0 +1,4 @@ +{ + "name": "@denotest/has-patch-versions", + "version": "0.2.0" +} \ No newline at end of file diff --git a/tests/registry/npm/@denotest/install-launch-cjs-temp-dir/1.0.0/install.js b/tests/registry/npm/@denotest/install-launch-cjs-temp-dir/1.0.0/install.js new file mode 100644 index 00000000000000..61aadeb8391390 --- /dev/null +++ b/tests/registry/npm/@denotest/install-launch-cjs-temp-dir/1.0.0/install.js @@ -0,0 +1,12 @@ +const tempDir = Deno.makeTempDirSync(); +try { + // should work requiring these because this was launched via a node binary entrypoint + Deno.writeTextFileSync(`${tempDir}/index.js`, "module.exports = require('./other');"); + Deno.writeTextFileSync(`${tempDir}/other.js`, "module.exports = (a, b) => a + b;"); + const add = require(`${tempDir}/index.js`); + if (add(1, 2) !== 3) { + throw new Error("FAILED"); + } +} finally { + Deno.removeSync(tempDir, { recursive: true }); +} diff --git a/tests/registry/npm/@denotest/install-launch-cjs-temp-dir/1.0.0/package.json b/tests/registry/npm/@denotest/install-launch-cjs-temp-dir/1.0.0/package.json new file mode 100644 index 00000000000000..c3cf8dc4c334e6 --- /dev/null +++ b/tests/registry/npm/@denotest/install-launch-cjs-temp-dir/1.0.0/package.json @@ -0,0 +1,7 @@ +{ + "name": "@denotest/install-launch-cjs-temp-dir", + "version": "1.0.0", + "scripts": { + "install": "node install.js" + } +} \ No newline at end of file diff --git a/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/check.js b/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/check.js new file mode 100644 index 00000000000000..7d55c2481d1142 --- /dev/null +++ b/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/check.js @@ -0,0 +1 @@ +require("./output"); diff --git a/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/index.js b/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/index.js new file mode 100644 index 00000000000000..7d55c2481d1142 --- /dev/null +++ b/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/index.js @@ -0,0 +1 @@ +require("./output"); diff --git a/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/output.js b/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/output.js new file mode 100644 index 00000000000000..69668cd6251b0d --- /dev/null +++ b/tests/registry/npm/@denotest/install-no-ext/1.0.0/install/output.js @@ -0,0 +1 @@ +console.log("SUCCESS"); diff --git a/tests/registry/npm/@denotest/install-no-ext/1.0.0/package.json b/tests/registry/npm/@denotest/install-no-ext/1.0.0/package.json new file mode 100644 index 00000000000000..b9abed1f6e1efd --- /dev/null +++ b/tests/registry/npm/@denotest/install-no-ext/1.0.0/package.json @@ -0,0 +1,7 @@ +{ + "name": "@denotest/install-no-ext", + "version": "1.0.0", + "scripts": { + "install": "node install/check && node install" + } +} \ No newline at end of file diff --git a/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/index.js b/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/index.js new file mode 100644 index 00000000000000..aca5ca1b8efbbd --- /dev/null +++ b/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/index.js @@ -0,0 +1,2 @@ +// node.js will resolve this as ./other.js +export * from ".//other.js"; \ No newline at end of file diff --git a/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/other.js b/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/other.js new file mode 100644 index 00000000000000..7d658310b0d95f --- /dev/null +++ b/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/other.js @@ -0,0 +1,3 @@ +export function add(a, b) { + return a + b; +} diff --git a/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/package.json b/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/package.json new file mode 100644 index 00000000000000..55e46b2fd1dc94 --- /dev/null +++ b/tests/registry/npm/@denotest/specifier-two-slashes/1.0.0/package.json @@ -0,0 +1,6 @@ +{ + "name": "@denotest/specifier-two-slashes", + "version": "1.0.0", + "type": "module", + "main": "index.js" +} \ No newline at end of file diff --git a/tests/registry/npm/@opentelemetry/api/registry.json b/tests/registry/npm/@opentelemetry/api/registry.json new file mode 100644 index 00000000000000..de811bf209696c --- /dev/null +++ b/tests/registry/npm/@opentelemetry/api/registry.json @@ -0,0 +1 @@ +{"_id":"@opentelemetry/api","_rev":"85-64e171afc119bdc7344f39430efa3542","name":"@opentelemetry/api","description":"Public API for OpenTelemetry","dist-tags":{"canary":"0.17.1-alpha.21","rc":"1.0.0-rc.1","next":"1.3.0","latest":"1.9.0"},"versions":{"0.4.0":{"name":"@opentelemetry/api","version":"0.4.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.4.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b430325c9f0b460600abbd4040b73feef878c123","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.4.0.tgz","fileCount":83,"integrity":"sha512-SWT1dx/fHMVmQpMmlHGrAHnpHeNqCC+e/MudmuF0lwqZVdF8u/8Fj8ZJSG3WJaq7OgGboJZEw7c0f5bnl/KqCA==","signatures":[{"sig":"MEYCIQD3bqsOJILmnEows9bwuMXD4vUXuyM7vczNC14nsMlX4gIhAM2jiS6fIH1zDQt7DLCzv6udB6CfoDZ5kNhVwufUsVZR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":136876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeO0mVCRA9TVsSAnZWagAAowYQAJi1qg+NCoAPlaqfAmhX\nKGGbUdST4wa2TwxRewNUjib3AMHOA/KrkF5VQ8VeO8lVtU3ly4DhAcvqnHzX\nonYaanLvP8cvVTFeJzqQFnEEhHRGhoOeStYOA/zc32KE0euB5/PMcYC91tek\nbIP7ynYTbnIVf042cndkIuNAAjZbJ8ZSKqF+YCu7w6x7QcTkbE6p0Zp4LVf1\niQ/r9sgKaMmERyy+pvr1d0DNyq6jw+pVlW8SZV2xBIJlCZ+NDSq50EBiaVwG\nkZ1hVlOQ6czCFJLPbxwGyD8jdGjWyNpap8Aa+LVS0wmJIaUHaOTZnOM0EoeA\nFy+qFY6bfImZTL1J3OswP7E8YtQuiJ2vyjFvr31L4VnssDNEEDPYOeNfkS+w\n3WtA5E9mmC3uxp8zvoUrdbUnWhYFNo6hWjW7gBHXrfz7mz6Tj8ZXANicZ3iY\ngUxy7SFXuMdazk+POSyxD+XcQr9FJC9iF+AmH/1IJi9XbF4cpM4sWLQyprPE\ny6OhzP/QB5JLDHKpbq272+rKxYp/TZpcJsHr8VCuNGULg8QHO+b/eZzdxa3l\nwoykZbtACapB5h8w44g0zBrBpOYjyb5sf+PLTlMOpgNtSogxLCLG9ilEtZpO\nLvhlTXAU1eMlwERFcm33Q0ARaWQlNGxjdnYi7xGwk4w7f1OhRWahhWplsilJ\nTiTi\r\n=6Rey\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","docs":"typedoc --tsconfig tsconfig.json","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","build":"npm run compile","check":"gts check","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","docs-test":"linkinator docs/out --silent --skip david-dm.org --skip https://open-telemetry.github.io/opentelemetry-js/classes/.+api.html --skip https://www.npmjs.com/package/@opentelemetry/api","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"10.15.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","linkinator":"^1.5.0","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.7","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api_0.4.0_1580943765244_0.9482075107831929","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@opentelemetry/api","version":"0.5.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.5.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"faa750adb813ff6a9acdcdca697aa499894195e1","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.5.0.tgz","fileCount":87,"integrity":"sha512-lji+cZsWRtiuL54uilOa2EMVNM19bfgX8t3lfishjEaKgfHm1ZsJvks8rWtItKTYEYtg2UXkDj9cjqpLdNWNVw==","signatures":[{"sig":"MEUCIQDDoMNmODa05ejHqx3iXtLmBw8ulj5bvVR92AAgeJmNNAIgOuu52BJcrvdbkrbC8XVjRE1xYNj7s1XrERnvXdlc+tI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeb/dmCRA9TVsSAnZWagAAcukP/0c3EmwyKDdtudAc+aKE\nRAS/6vmiaP6Wkc2gzsMG4l8eXRZRdjjWyLDx0BViFOu4SOzvs+Ars7rmu5xv\n2N4ZPUbLhrHU4t12SDXNVeTBniZ2sm/eGtNIvh06HNEjrsQRyuT+JcQo3YHZ\n7VCTXvLtWuA0P+Yie8/a1SmPjnGvo6HEGyhDl9tUMz5/wr53YTMVcLOh5A4a\n4WdWEmqF/MAQ2jOL2t000EFiZVvX8t+yX4enMZfaBOt8x6lyvA6AMNKg5Ow1\n74yg63Gj8PZwhPhiIdbzLM1GKeDnBXSudgQQGujvRHgpER0BVg8mWZOFYLs0\npaiHSJ/lMTC7YRaPRi9lfll24QaAYkpTmXpP2wmRoXdAEh3BmHFgUT9b6M1f\nINOZmlMhxywfiY+tb1JBIctqzNXQX5EiI81+0A3WcXE81+sbnT3moX6oki/r\nEn86/JlKieVCOD/FtK+bpPBO/7zaGZviGEoSKkdqne30KRymNvD+wGMtLShx\nNedOCJsFIr9QIXavMGHEOzz1p7+qlRsn6Zp2qf0CPbxfd38lUA9UhiC0ZRvs\nRJ24CRbq5mzh1urnxoIUGqcz9TXqzFecnjURfgW7HnbSNRV7xO2w6WA3CEPr\n9GzrSSKI8OuD0EBAgBvnBh5B7C/HLdTMqxn2P5VB6Ky+aUnvbrWz6OpcdE45\nH5s7\r\n=bWUX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/context-base":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.7","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api_0.5.0_1584396133895_0.5248032846555832","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@opentelemetry/api","version":"0.5.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.5.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0adda4e8cd008994dbcf7162f6999d977f2c80b3","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.5.1.tgz","fileCount":83,"integrity":"sha512-7l57iZ2qdnEzAvORZZjKZ3m8eHqOfjd+DFTG5IEr2+WzPX3BqM142233trRro8smiKN9t5JXYjEM9q8edwEa5Q==","signatures":[{"sig":"MEYCIQDhXWqnZxPni4YZOM516XjWzcE7Yua2WmQnDMzVyT7KoQIhAI1It9Q3Ljaqk3M3hVE0tOu+gk7VQChpYTWKs7UFNSnH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":144893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedBGGCRA9TVsSAnZWagAAJT0P/2pTVPo88FItUCkCfUkk\nFSgfEmO/DZfYw334lj8u5E1RwM2vtOeYcwjBKaKIJW9GWUxYLDnKY7aXVFwn\nQsFpZhqtag+yAn21jKZVrYT8v4RgazYfkbA+4kN6J8dWMQlq1xSWODUE6AsX\nqo/VGtKZLjVFugz6Sr9ou1Q5yBrw3bjlb7+0iiwGC8gYa3IwxQAiN454p0t9\n2si5ekiHTn1Sa5J628b9h4ScylFlncbrjmcXYtsw/R4GxZORDygQIMwVssNF\nDdjM+kcOZRd8cIqT/5DH2HV2mMs37GD+Rzfno5BUmBisjleYQvlaj4GbmZHC\noWpC/W5eOMuUrGM3suZXFWzeWgN8+bEbh5D3Gn+9hT0nWgq0BG/cvwdoishZ\nEwbwMf2a/4zI4zuuUdTL82BjBsCmH6HSPvVxtaPteq67oaeE9CwTiCCuQVHB\nKDi6UQMabiuN5VT1wm19Vc/hBf1gZUj3+YwLVLvu7V6OfBa89M3eDma5ugVH\nBM1hhxjnz4zUybuCH3hcTNFSI6Mayt/wLhxquUc/5PpidX3mdO2dilXg8Myx\nwVMTsEAVT8BpBQWR75Fttn0Rb5J67ZvX8wPpxVoRmlFqK+lsqM+cX8m0Dolt\nFL5a2YUEKzGMzOl7JIwP/jscfHn2nrsTAi6Oab5UAXtDeNkCje+jeyNjxEWP\ngAGY\r\n=NMJv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.7","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api_0.5.1_1584664965764_0.017873719460831605","host":"s3://npm-registry-packages"}},"0.5.2":{"name":"@opentelemetry/api","version":"0.5.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.5.2","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b36c45a0f2bca74ac551d52d4ae8c29f074b211c","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.5.2.tgz","fileCount":83,"integrity":"sha512-SLahDSBn08zxz+zd0kq3XXn29HyUegWX/EUD79RuF7qBoXfMlwnCOx8eIzLsIRUDY4S9Qq7BYGOHdKz2p8oeeQ==","signatures":[{"sig":"MEUCIQCE4D9x6wLU4LE/fvdS1iBZThuA5Dapa3/0hWI5jO4rzwIgL0iVuOsg3VyalbUaNHlU+UHcFEVYIENIXiw+eonLqOs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":144698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefkAJCRA9TVsSAnZWagAAW4UP/i4+EPq7rxe31X4ZREHG\nYH8eiSaJZQzQ+IMVhnf2Py44jV4E+SZgqUZyF7Vp+RUuFVvmiublrs03Syif\nFKL6akE7ThrH4Fwl2mV6v/INKxnd+S98JCp/9oVtrjtdqwJz8GSE2Bw6Q9Wl\noYvFne62bLXCWrMsiuWmo5VPEHjNcVOzdUtxyAa0RWsI72Qen1x5N43DTOXe\nPRdd90lq/VqBWtclILHTgwSgtUUx3rbxW7GYemeXgwjRQVSQ7lH6IAZWIYh8\nM+UzSfEjEMKxyiTcxHnF78TMpGSuIT18OgTN6unO+QKz59qDeet7+t1BAe44\nWRWp5eLiVeflDrcllETCtdvG0qaWrWkc75wUcsjo5X3+I6yQZWx/vgUA+hPA\nJHmE5Bbtkq8OrRQjaMHrczxIHZtIcXq45N80gFTCCDWVv5XlJMilbttZ1PE6\nGrMHkG1mdEFsdedPT/DjRod3SaEl6Wlwsulr5PPDpVlqIY9tTuBlPyflC+4t\nc+TwY1NbvriX9/djN3ccL3UxAe8gbnOXkvHJhaPkFfLaMLs8IX4tE78iqe/G\nNkYgGyohTdNrhzjp6LExnEXtaImKLOO3fX8Fc9OcnAk+LojaRooHnJ6WppnX\nfnrg3uh27uJavEmIYr2OebwurqW4yg5vTvOtlAxTH9EHnQ6sVXER7y7xqRNs\n8SqE\r\n=6d1D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.7","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api_0.5.2_1585332233547_0.14772137772167837","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@opentelemetry/api","version":"0.6.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.6.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f23bca57b9ae15741a52047ec7ea9c8b0c69b501","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.6.0.tgz","fileCount":83,"integrity":"sha512-Y3rEz7E1O40bKQMRfPIvQr9WiQQ2ieuIrDYz1kHSiBhQqVcu60Pon1NVWjXVMv2jj3DNKskFQDDGdliWZLx5/g==","signatures":[{"sig":"MEYCIQCxTMZv4CtVE/hmA2sy5IBY6WaWnrHPltsSJ+oYDDyyjgIhAMH0hdIR3gnP37eGlv+W3gAIxQI/2yg2n+6LFNU99SVr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":143961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehh/rCRA9TVsSAnZWagAAtR4P/R6zPPqnIbTyJ/jtyquL\npH1MGt3ZxVHXRtmBq5URig0LTqcM3k097ZY6cpT4tGFhuY0duIqxm4dBJYtU\nXFy1/PF+sgx6+g/zdcFClWYgNtDRjIUBizEU5iI5bKwGKbd2NNFyZqaFwp3I\n1SHajav6xhhvip5x48jbiUcM7IO20ALkWql+9915MFOnyol79J2l4ABc+l5u\nUGdvXpx5IP+POkJvO3mu+X0W9pNae+P+4Sg+SUqEdt7NX+RABdpvY9rSKbOj\nDR1k2ZFpsE6rPD/BMIN9WsTR3gXwD3qo+/n4ktCsDttHt+C5CmQmaU3015PF\n8aWlAm90bj2klFP/1CY/OHZbncVO2rHLC8EUuaPKiwJ9whoJuHze41PY5WAS\nxh4z8Kkai7oPSoEP4c17wM9jW1ucueNU+tDq2m8fmGcSCCe+QsCl3mOrumd1\nKH7mHNEe2kyQECBuSvAVmgJ/fbkwYFNgopRMu4phL/NPL3pinfW+wRlxaHrx\n5yp5tUUK1ivTOrPEfhs7e0fa2VHVjuobG9frtPjfgzgivWtvvYjRZXWfoTCD\nGBnYWcackROX8TqZreMfLL0Z/CSShMZDDzalMMTz0IOjpwISCl4wDYhJrt9G\njFzwCcZ44NmfwwRMlQUrOqhNUOfp16tdCbdNIlPChX4PGaZmNiL8uE+8xQ+f\n8mwK\r\n=wSwS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/context-base":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^4.4.1","mocha":"^6.1.0","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.7","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api_0.6.0_1585848298539_0.4120334110309982","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@opentelemetry/api","version":"0.6.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.6.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a00b504801f408230b9ad719716fe91ad888c642","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.6.1.tgz","fileCount":83,"integrity":"sha512-wpufGZa7tTxw7eAsjXJtiyIQ42IWQdX9iUQp7ACJcKo1hCtuhLU+K2Nv1U6oRwT1oAlZTE6m4CgWKZBhOiau3Q==","signatures":[{"sig":"MEYCIQC+pqEB2svUaHFj1vBr2fFPQSwbZ3uVB0LueXL1GVsItAIhAIBMc//A+30EikQLFBu2HT3ERaj08Su1+w2+ygtq01aR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":143965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejhnmCRA9TVsSAnZWagAAKk0P/Ai/p0Rr8Soj6+TIP9EQ\noYdlsaY12Qmoo+WbHnJYYqQwwIIrfkHQfPSkOJHrCABLWLtQZX+kaXFSpSF5\nIu8X1PZxcWQ9ar3DOEXY4zoWESiUxwPNMiJ40YbdBAmQGMQUhbhOELwHJ3u0\nwVhLwY5q2zdvGAUGPUvLT8h+I3VStD+uTotqhuyvZyJHBjtkC6KbDL6m908C\nAvbaU0QzfTtnorG/n4TasUGv+Ayqr6O84qFpjhaNa5VIOtxxjvsqLwNAdRyz\nJE4D9NJEEbiDzqvlGtRzySRaNQNe2FhV6RN6eLxZ1Gr+1N5zj2n0whtGPSoF\nHKMhjluzQTPxY+Q5WOtHJ+x8nu/2E3zJSJBn5w0zCQP8Lla1V2rBJLeHh5VL\neLTSF3oC27W5RiAQOptUJC+fa0WWbEJbyEMYsUudN82n9PwRvnqwGvcTaXV6\nYq05z5tTiZfHrWtjON4ki1VXiNLHIOwIguZAR6vny6fqJLj8G6o7F/hVS2rk\nlTO++Ih2U/xFH9T6kRASfeiA+iLgZiyvoIXCes2FfjEEDUAFHjc7TD+bT8Fi\ncF2GB86tT2SUzSWzaqdaovJmisLv8bg6FAAzIDkY5FndzHbOKa6m1oXroPfH\nfadQRR5aMqoYemlAymsqbDU/R0X3T2n37uFzGH/WdWabn56tYs32j7t5LU1D\nySdw\r\n=5Jw8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^4.4.1","mocha":"^6.1.0","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^7.0.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api_0.6.1_1586371045572_0.9899006818100518","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@opentelemetry/api","version":"0.7.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.7.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"99be9ae3aa64c0e73077ac7c093ea81303aa609d","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.7.0.tgz","fileCount":85,"integrity":"sha512-h4wdvfZ7y3Md3gRr0zycv6oFuqHjWdZ5oJGSoDGoyG6vQSPdIJorWH4SSalif8yW9l9T+bsAkHAt2VVG/BiW8g==","signatures":[{"sig":"MEUCIC5eb+AQG2b1UTMoRsZVXZMgbXvXGwNwbD5vNVHYoT/6AiEA/g13XKUQ73C5CSwAyHQKfEm44jKFtwDn6EjeGMdWvnI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":145885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoyxoCRA9TVsSAnZWagAAN7QP/3MoW0foS/+pPsZzAAEH\ntGXNLncM2v3F0aIGeayRu4PlNJfmCPQBdihjshonEL71WG4TTMkodPTWU72O\nQQRaaBkvQwV9k0emZgBHmhxC0S/V19R0kOP1BY2iZ80U+MdZlHf5rMzNz4Ii\nf7fVfmOk/ZXs1r0kMCK0viVFANztZPJNHpjmt4sDRalR9HExOYK1KuF1Gp/5\nuP8LuRk+Z9OO8Ldhd27oWsfT84Yg83cLXdWvntK/XDhwTs9L8XUcG7n6uYk7\n7C1FqyRaquwaOfPAap5AbLOG9pQre7EfY5p1h0ASGa6WUDFtY8Ejh1sMvaOO\nPDouQnS7Pn3TQfzW/VJLLT5GnoskfZgbZG/qce6Q8qQ1C1QaIZqAXHx53SZ1\nWE0c58TdThLB6l6GwxPpPhmCL3T3EIsbyj65VzpdWpTnw1SIBgk/St+Om03/\nO84ib7TDQwUG/WRmiuFcEzl9IbQlwmrElhhyiCeHidfHTegL1axHzhxwDET2\nP//75PaWF+Gq/WCeDDNO51CbJ7GRF+UMtrSVjjvP9XDZPtMaFPZdQY00FlMi\nfSHTXK16+4JeLr1FiK2/W8VplEGjGooXzgQb8UAqWdqnCDbQyG3Vqs79Ytnp\nYiWD5O7mHrAH3RtkTppjrTwv6L9mbF4L5RhbS3BtTnxyLxo3wogoITkwKILP\nB3vU\r\n=AfyL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/context-base":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^4.4.1","mocha":"^6.1.0","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^7.0.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api_0.7.0_1587752039689_0.8114466727729208","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"@opentelemetry/api","version":"0.8.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.8.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3f7c49375649ebc09981d528efcad95a0efc85e9","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.8.0.tgz","fileCount":87,"integrity":"sha512-P7+9cdg55aBQxUPj/hst9uu3aPmbIxlqB9//pwa3XPDXtFsKEDH517Rq/TEZQob3255KDyE2JoTIpWDb2isYhg==","signatures":[{"sig":"MEUCIFMzehJLIWFQlEs6xP7ICHST/2EIsk/V0rLaxHAFYq+QAiEA8mq+2c2p9EzWbJaesw/LHp6QB6tosiKdoL7FXUGiKW8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":155783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeutBsCRA9TVsSAnZWagAAQbsP/R0HGNiR1eVDbyz8mG5N\nz69ecbeFVmHZZpZBO8PMMYC78Q05XSfOkXo0L/KtkvIx3GWAKdLdaAUT6gd/\nWcQ140nUQLrp2qI73nYFWf9nmi8TmLBfMBKCSRUyKoadHjNNZeIb0o36s4Ch\nRMALkAcv9e0KGh5IawwGeX1/V3CILa4KlVbvTm8SsfBcl0hraKSDLb9zW70R\n3JZ18kKSVk79zgXQRuXZQGL1fhcK7Bh2e3BgmgdVLKfFzcM1Tshacr9ueGkN\nv1diZUy/+shIwhemF/cDwcbuXT+AfGfqwkoYjmiltA8keQVFmXIcinC7Jo3j\ney/Kkqxgd4jFLwCgLWxn/i33QvwEjLn9HiXJ8OT6PkcjnT7+Afw+ZWkZhUH5\nGuxakGWkVP+dTMVnW47MSmSrVoK1Kl3EiMhI+l4f+ckZufxhCX5AemrqHzM4\nyMIXOpKJkrOAuNK7dAl3wv58mOAUHBhDnDPBCYCuWCZr7Fi6L2dwAa8wWyHY\nhZsbLqWYh0NQaU9yOvxzZzctdkP9MCsAB/OGJpK+SCN0hHMiPwmPxkPsRWgV\n814z+o4vfRo6pWI0VEcsc534WNGHTFu/IvEJruMtyRlTtJpjjmM2+nCZVY4n\nxaRxara67/EFbMfXUeenuBk/F/OqvgfqHGrP46g/KntQymHl26h9r0C+qIHq\n5gZi\r\n=SQ9/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/context-base":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^4.4.1","mocha":"^6.1.0","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^7.0.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api_0.8.0_1589301355963_0.1757731128490918","host":"s3://npm-registry-packages"}},"0.8.1":{"name":"@opentelemetry/api","version":"0.8.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.8.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ae71a1452b21aeca19aae5c9405d04f0c66ad21f","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.8.1.tgz","fileCount":87,"integrity":"sha512-fb2mLSjLUYf2hs6Brg1uGENOSvrM5Gt56AvnHfKer2zMmGZJAPSJbCJBVrP+aeJLTI143CnME8X9v88Go8QAxQ==","signatures":[{"sig":"MEUCIHoZQXwLswiDXuxEjw0c/rf5eJskaRF38ouIH9ir9QEXAiEA46mLz0RGb3QjUPXXvGVXT+XIXuTy7VEwubiuXrMAaEE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":155785,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewuP3CRA9TVsSAnZWagAAMqIP/3VUIecWi/u4FdctyrR4\nHMNQk1fsD1/cXTlGhnclsuK9pcoDQZ+1G8IrdANM+KqFleXJ2whvEC3LGMZy\nVZyjQPTy9WV3k2VnrGTsEuzLw8ACLg+jL2Tghyi5SIRDxugN5v5KvunZQfd/\nSxHKu1oNeo3NjMwtvxFsHObEkK8AUqjzG8FszOk56HdqSE4IXKVdCoH5fbJ9\n0HvJl546ukpOSxzvlFmufNlWYo7sjT1V7UC7QhK6WKs/299rWvi6st9sjFd9\nmktlP8X/Hjj2/CEBM4HWb+rCT5eXHdCmrQTT/1Q4pAY0dV+6PalY670Pdrgk\nFnAk1+4hwwIOEU3FQ6zhnTYV1r50eC6MuOHKEKR4alvnObMGDyrlcmgDqdFj\nQ4vZ/wa1iOynZ6bMpz3boF5pf++4+JdxD9tQsHWcX0wFZ8LYA1/K78LwwMUX\n+AIWbQl9pbjCRcZ+0g23rh71VcGRtWU8rhv+y59mRBPsykE5k9ONZI+DA+FT\n6z6C3tTrvYS9nY3jF8xfwmDOSdc9Xaha/Gy7IJXuw77RQrHnO+DMnFSIX1E5\nuzoNMTUp9/T2LSkC2xEEcwRmHqF7JPq/VuaNf9Ma791HYz/1js3kuJGuDWKH\nAlqIZIjzxmPSMAswyxc3telHeuBcNjXE6z5j0Exlh4ICLoa6xFICpWe3YPhH\nnoiR\r\n=5gD0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^5.0.5","mocha":"^7.1.2","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^7.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^2.0.1","@types/mocha":"^7.0.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/api_0.8.1_1589830647098_0.3755800297149312","host":"s3://npm-registry-packages"}},"0.8.2":{"name":"@opentelemetry/api","version":"0.8.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.8.2","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2bfb666db95052823a427621f6ee35102c70e3c8","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.8.2.tgz","fileCount":97,"integrity":"sha512-+BwodLiysWWcqLeGmO7LoGsFViPRb4pH1VbRJmZJIU0v19mm97SXCQTScgjx4U5kQjoUGuBOTeqz2QoGjNhFGQ==","signatures":[{"sig":"MEUCIQCq0JmsaLaljnxcSTsHAKGO1A1bB1JFb325c7VneqKyqAIgRk2DQkUxy1vEJbEBIJM4MbidIp5I3CUE1Kb5v2egpEg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJextasCRA9TVsSAnZWagAAXQEQAIeRGPi4w0x8ewz+zIhz\nqVy2sfE+5fx9Ptyc4tB6BPwpwCUJWESMvfcTafZG8PIfvbEFmhfGlINIpqrz\nU3JZXsuVjVKc+twoNlXIKHrT5QbECU9N1D8i58qq9aZF/m7qdnv5lZN/DrIH\n9OJmjEoE1GPRPiCDD06FzD98uw4lvF43MtVOjT6EuIOmwPwUfG0pthCwOIxr\nK8/7E2FrcgBILnWyx3mh/f3KA3JjsFmeVPMWL58dCgoBd7Aar7aJ7JdWmX3Z\n0uy6aK82d1RaVx7TjHlm7XUp1utt21LHZsdGVgLAQLUNbkgx6BtsCuTa+cbG\nEXjUepWrS0z2UMH+9IclAeU1GuL6db+JwBCiJUX81ahSzosUI1nBVHeWi8sb\nRebrKYlXW9slC6gDr+RqXaYII9sYDTcyMPC1DjxZT4KP0+k5tcRclLZK3LRs\nDU//qQYjvX/WEmxJgDG41gmFSuflid9cqQAqfm6y09B8iDpRG0C+se7SqBIo\n10ah2hw60npr7v3DjtwVmGd//54zJsmp7hvp+kdQy+ZtoJvsabBRexMuUgnu\nxJijzKxOWrqOIq6eLtOhnR3i1IGbr1X47u7A52pzWVvFIUioqrltijhzTDSN\nA87GNR0PWf8XTQtSwS1HucAwQ9tyrsmKcxplIxzJObzqTuvtugWLVbVqBVVT\nSYAU\r\n=Fd5j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^2.0.0","nyc":"^15.0.0","karma":"^5.0.5","mocha":"^7.1.2","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^7.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^2.0.1","@types/mocha":"^7.0.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/api_0.8.2_1590089388024_0.363528352160863","host":"s3://npm-registry-packages"}},"0.8.3":{"name":"@opentelemetry/api","version":"0.8.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.8.3","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6048f17e5ab565d1325092c4eed2ee4c6d24aec0","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.8.3.tgz","fileCount":97,"integrity":"sha512-CRd8kKrMN1yisbw2zc2IiXM31zdS8mvQ4sivxPFgWS/eQEW9XuNxMVtSWv5k/tDcqbcLzUHcX6JW0SpVNA5h+g==","signatures":[{"sig":"MEUCIGpFb13C3Q0+x/+etvzUthavZ5fAOV9YCJl0p6SBZaGfAiEAs/WAGKhVvIfHVgLezZ5ztaIx8lrCTqoBeql3naNPAhM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0BzOCRA9TVsSAnZWagAAHJQP/iYT+Rx8nSu6Bs2TeZ7S\njVsG0jlOF08AesfGv3pDH2Ku800DZ4sIvqAWDrKcD2Dpt2+S2eS0cSoYPdYb\nzbc7HuotEepyHDvmA370WlN4YyivMRVE2FkSb9514kx/5Y9NhAREGimnwBER\nLhF9Oq1YuEXZpi1tdWnBPEHn9qOSsgTxT6ntuA9DB9Ds9Xg2MIzfiFckDfib\na7L+WkPVYw13XYFWeicMU1BWjccveMNlUKLFTf7NUkZrvTETSmsZA6mFjmCH\nYXRg9utEg/5WD446wqD2eI8mLiIU9n3XoNkDhPwyyJ9LkVyKQkDEW5JYe7Wg\nDQf7Q6SQR0DWEgHYLCjobdjIBe/rSVLgHf4wRK5nfm4NKKmmvpztZXCgqSSv\nYgXx2jo5CxbgUxgKebivLAi6KWiaq94WpWNvp4lv732b/cSz75DEp+b+vUJM\nISSlKTpIleQ79Oy4tNRhjJbWtMZ9aWD/ac6GUdeLvk5/P0aunm5JOi3VYf11\nLfQjZXXbj3rgML0Ng00QSY2uQNB9VrKF2nVRHN+97K4yhSsStyVZ47DSYe0Q\nc3b1wQmpZ/3WppZVFjO5DJNQOAPz62PQ7jMcY6WTmxbsubXDIwhdgFfLSTZG\n75Lgl1gvq73jk01Mo91Pw62bZyFmIzW0USieegAMVyeEFR48I2STNMWqqm/q\nEtyM\r\n=s+o2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.8.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^2.0.0","nyc":"^15.0.0","karma":"^5.0.5","mocha":"^7.1.2","codecov":"^3.6.1","typedoc":"^0.15.0","webpack":"^4.35.2","ts-mocha":"^7.0.0","ts-loader":"^6.0.4","linkinator":"^2.0.3","typescript":"3.7.2","@types/node":"^14.0.5","karma-mocha":"^2.0.1","@types/mocha":"^7.0.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/api_0.8.3_1590697166118_0.29885821269445323","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"@opentelemetry/api","version":"0.9.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.9.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"23dc68851f98eabfb981f0b0cc5b1c34d715fdcb","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.9.0.tgz","fileCount":99,"integrity":"sha512-fJ0CzUf4favXihuD6dDUh4U6GPfEjswUy9w+N4SrIrX3wFi43bGb3BXPSctaWx3PQaRC3Rjsw12HWR+oRl9pRQ==","signatures":[{"sig":"MEUCIB5G4+HCQsd7avIyzigwMww95DCyv9hryHcXW1FjUm4gAiEA5xLWTS10etJ3KezelE+XeXvE/cTCF1d34UDXKLRKaAg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe69skCRA9TVsSAnZWagAAsWcQAI9yQkxaomSPu75W4Lva\nIafkSFnPziMdasaTDGQVYFMDdAcdhQA8bBAVFYzjgWyCbT6N0UZEUjLDR3UG\nT+wq06B8PlUbI45XjIyigOwyMaI4+6P3nlY4o7OZyEChXjZ/Me3gM3aWDk7p\nPDz+89zofsxuOH1sDjqaP7z3erHMyHl7oeH7HgPdS0469t5y93N9Ttlo+qvZ\n/0dR6YQ3ERPRqFWCuHsMfG6cm6mnYsQuK87dMGqvP862m9OcwOnTxZrrptjE\n5K9NX6ZsnS7bh4PkETXBMAlebefoNCs5NJiYKrFfy6PXXz7TTZF7Fg4t1+bH\nJ6Ca1W+UM8PRgIJ4BXkE9qczc3Yhi8JMCYnBNQBc9RLpXZMtwdgphs+1+rPf\n1NQzw2b5WKmYQ9AMjyBkk8mFGYxp6JlXohEAUWthY3Bh1NgIuDX8sYssmtxZ\nHMheTZof7vxUHCEi7bBhdKB63a4DQW2++bUF9Sp6LfvFSDA/apwSoSFVdASB\nmai6GQ+1rp4TjiF4GyuUaCUvTqBUBdbMrI2lzVIANgu/25NQI9JCQeHZKkB9\n7l5iU/CHxwkx4wOjzvRs43EjDArqE5tmH1ImvT2sOArAExfSmZnkDyXfb7JP\n6w/7IhB9gbT0pymYKAdl5yLuOMFB1/gMuzR8pSHbEZG5ISiHk21CHWxqNnc+\nZca1\r\n=9o5l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/context-base":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.0","mocha":"7.2.0","codecov":"3.7.0","typedoc":"0.17.7","webpack":"4.43.0","ts-mocha":"7.0.0","ts-loader":"7.0.5","linkinator":"2.1.1","typescript":"3.9.5","@types/node":"14.0.13","karma-mocha":"2.0.1","@types/mocha":"7.0.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.9.0_1592515364181_0.2550123533834585","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"@opentelemetry/api","version":"0.10.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.10.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"275cb729e7979df89df12636d3131984c7582b43","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.0.tgz","fileCount":150,"integrity":"sha512-gK0Ydjqa19WoHjUCh22kEAV45/xS4vgKZKXDEYxWL9EBO4VRe4TjwS64LOwsQQMIT+zTWH1Bt1OuZPtDCiBa9w==","signatures":[{"sig":"MEQCIB7IC4Ovl5le/FFbHex3CQizX2ak+9PWYb5rwUPlfcaxAiAYTc9LYLUX5cK8FEFUJ2R/e4j+/eTazKoTzJaV4Kttmg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH0AVCRA9TVsSAnZWagAA6w8P/j/pa12ROP5yrVFZXl46\nSK9R7XOHp16ZjgtmCTFu1QX+SekjLYEkL1TWsAiHAc4djHXSEjvZiLrvTLBr\nFOO784XxRBicMGUy3pyjqrlOiVxul2ysrTxV5XxTHUe/78GDbKUpp+lkZo/t\nUlphZsmNfvbFqZiVw3Ap7d8hpOIvzTUHNdopqZjmcQExnbTpIOwKO7+41g5r\nMCGl/Kq34D0PWEdzPrGnkfndQ9LaQoxsGztX1h0ql4ga0RAEzOGXrLqwQ6Bd\nqiJAFXG64SjX+ElqyKUQbcvFnHxUDCHv71dwqwn7uVDvjgjEfaJSMFRzUT/0\n4V+xzqUt5CdNxSAzW/zwKqA9N6CmaXl6sJxPVSBitX3MUx/QUQho3xjOrcU1\nPiauvDEoV+75KIfRIJ5y9QDA+9AZYWqjVRoMG0WD+Tf9DMQgJD2xyiFw+VgI\nkQvQgzwU1mMljRqtaBO9XuQRImrY4I0jsG7prHGyxK7AkqaclOYiMa1PSEfG\nh6tsHwP8Jl8ggF/DCkrEMIsw1uhlXPwmbuRtYVLqEupbKDBUF0C49jJ9UXyF\nQ6UdsRHdD7Yks2VSFjvp3xYiHcZJzAyXW1w6Dnonf31v15+G83JSxvY9E7cY\nGGBTdraYvqlnwEiUD3/qfaFOBqpDVOFm6Se2Zymj3EU9PehqBL0IEQZ9hOkF\nac81\r\n=YcBb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"ab62a4d69b99b3a8c9c26100c04f3226af7859df","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.0","mocha":"7.2.0","codecov":"3.7.2","typedoc":"0.17.8","webpack":"4.44.0","ts-mocha":"7.0.0","ts-loader":"8.0.1","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.25","karma-mocha":"2.0.1","@types/mocha":"8.0.0","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.10.0_1595883541028_0.4184840866578965","host":"s3://npm-registry-packages"}},"0.10.1":{"name":"@opentelemetry/api","version":"0.10.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.10.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"da0a6adad7f388b4e722e6f286390a2eb0485ac8","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.1.tgz","fileCount":150,"integrity":"sha512-t1Oc5lJdrV4HOv+wbCaui/cUrSstCD42JJG6qQnhJkENzmHeV7RT8gp1Q5TuTM4HRgHR07q696qXtvCjmC9FLQ==","signatures":[{"sig":"MEUCIDYM5hzO49pyV4Ihe5TtPeUOaZuBEmSwbRxE0slYkkunAiEAyH6/zCZN38d3XtPAQoT6vCC6fC1sNSGV9zWFvDUHRhU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIEBaCRA9TVsSAnZWagAAxvUP/3qInBlUzBSMnEwpNe8n\nWBTj8pjSO6lKZOG2eXSBmTGH8Ot/aHNa0v/a8KpEC0G0zf53/Ku9FD8cAWzw\nShHBGKXFVYLx4gD4G/NAc2v3e7FdmRaP/3/dapSwrz4Ud6gR8f9JKc1TuEku\nS021JUk9SPzjGClhIO/sgFjIChZePJsbGdjL9CJJnAsfrSI0VyQerYYqhBd9\nNheBxzzpmv9cI/TWPbrGHNBCHUbBGGNpOIiLJlKlz0qe8DxYXf2i0RhIVDg1\niKdguBR6p4PuRfmfoIxb45h5IdH+6OlgFohQy0XTh8EDk/P89CH8PYykxl3G\nEaO7nJzi3tjXoYA1i3xhkD2Fo0qR8Hr35zwT8YxePgVdmvZcv4VvmZXOq+Ax\nQJ/9WcWixGUTuYoTkchXo8fPiIU/NqDl/FG31t0FxnBmvmMTOw1ZuHivqdHQ\nbypHc5eKydT0HokN+gFc/iQ7ODd/EiOmdmz3eNvYR1GIHGNh0fEzDmTHL8Dq\nm0LPWaEQj8FnpRf6aTKU/CDCRieIei2qXTflbSHRMpJPS/ZiR19vzC3jL5mC\nkbNTjlvhX/CP32pxEacNwHeEoUWxQsNw9AcYUwnsaqqmyQAQ33on99tonxTf\n92xQWhMEb8ZfPS24X3fmVKucCmuxlZ1wFwh/qpysyY6rXMRJBZrgU+r1nPmS\nbLvK\r\n=fLWL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"03981e4299282d0611d1255ab0076368d5830753","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.0","mocha":"7.2.0","codecov":"3.7.2","typedoc":"0.17.8","webpack":"4.44.0","ts-mocha":"7.0.0","ts-loader":"8.0.1","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.25","karma-mocha":"2.0.1","@types/mocha":"8.0.0","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.10.1_1595949146030_0.4512127188607109","host":"s3://npm-registry-packages"}},"0.10.2":{"name":"@opentelemetry/api","version":"0.10.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.10.2","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9647b881f3e1654089ff7ea59d587b2d35060654","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.2.tgz","fileCount":150,"integrity":"sha512-GtpMGd6vkzDMYcpu2t9LlhEgMy/SzBwRnz48EejlRArYqZzqSzAsKmegUK7zHgl+EOIaK9mKHhnRaQu3qw20cA==","signatures":[{"sig":"MEQCICOpdgY8CqGl5XhhRhTAy6aRYnFfnA/wfBfm7MUTcS6JAiByvtg0zkpJmorPhvhkUSUEM90gePuInD02BXT24czqog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":172537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKJzrCRA9TVsSAnZWagAAkiIP/Rz7Q60L1j/d+WVByy+K\n2LnN5uVRzLc5juqQghLuZAeiekq6GhkOZVVDLCJP2kcwHGQs9lwCdVbEAxMd\nsiol14HHGQ7ifpbVgSrrQi99YcuhcuCm79PC4in5RC0WJ6vH6E9W4B3SEbF7\nxN3EmAi2YZD6YBvKITO4nquVV+8tTCnrVgY4sN08QEdeLuvtuuxq/+s2R3qJ\nsvVvVcvzayjtv9ME+5ieZxHwmH7YOWo8fDQNoe8AFumTjPfhDyYkB1m230tt\nK/I/mzk7KC9n/ceRdQisJQgRDY+ZwPGYCIABVCOXWaHsSa+6njUY9QHWgvd1\nhXKFmPgAK+rm5eN4eaBKbrXKOG6/WujRy6gD2f69Av9SIUA3ggoP7pi93LiA\nfc8+JL0b/DEruOILUsOAz/AEv2J109XVPFTiFTAp8iYDqUQvK8u5g6j/Y2Mh\n3WZcuToOA6KB614N/89wrvJXxWVZhnfKsVkKTIyoGN2bUsjL8AANkFwn4EER\n1pA8J4VIHGntIuNLi5aC8RIyPCyj9Y/Gpss3zPJgDRBxxf+pPcpjlO2iQMVR\nvBJ1r9MyYwoxhyJXGU2HrCfi1ZfFxkAhuKY6JRYqjKS+7xTklngVq5J2/qFJ\nuSd0RxPsOod2dZFiNfQ4IUzz6+u7Lng2BI0uvpoHs2nQrdQQKlUXEqPRlhlI\neL3h\r\n=85jB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"b247e69034a7888a842fe75e0a5ff06f8bea44a8","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","codecov":"3.7.2","typedoc":"0.17.8","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.1","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.0","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.10.2_1596497131197_0.5464949590761854","host":"s3://npm-registry-packages"}},"0.10.3-canary.0":{"name":"@opentelemetry/api","version":"0.10.3-canary.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.10.3-canary.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9bb26ff3281d639281d3e9df053c8688640fbd10","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.3-canary.0.tgz","fileCount":150,"integrity":"sha512-Oq3YI4gnhU/FnNSR6EN/9HRtNhBd/iUbAaJNcAGYgAYRzGltMsiYHmUjOzfMOutfHd/+qhUM7TszYNohxm1iew==","signatures":[{"sig":"MEUCIQCHi3ytGkmFVl/GK7BKQWud3taCc4WmK9o9KcUUJf9v+AIgHPoq3GLIXCqieGKUWgCwp0FbL9Oind+YfUeJ1SGkEW8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":172607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLYWQCRA9TVsSAnZWagAAFBQP/3uHgKbllN4DajFVFG3c\ndhzaPcvX/sYMcyOMjikyIhPK/z7kwTr+uvoIC/acSYCEENp9QFuhBqsrtnXl\nGl/efbvFCC4InybSVHB7oZBTclBxCz1/LJA4ugz+Tnmfgdnh43T5k64DdICt\nivo30AvKppGjqVoCgP6Jr+BfDUhm5oaxVZGSxDg7PE0v7wLR5QjibRF+4S+I\ni2kr4PxNHepXZMixIBqZmLpCNv9nwY1DxrLHIxPItdzg6dcZqdyRHrw4hdAi\nkzUOeeRluGGrebifidkArPDsr/SYNO1ks9EXNkE2nn7DRNtycmWLEmhR507p\nzi0VRlUgSGdqVm2QBZKwB5KzJ/fx3jOBNBlYxW61hPTs1ALQyVSiCvcHZAIR\n8ROFReqA6dV+FlEDQMT/HbLJPHR841adgBwnbmJp66q8Yb4wQDFB8IryhhIv\nzofHk7fm5KWhNHrKBNXK+AAMvDBbyXv70nm0hPDUL5rhlWobz/XOpv2Xmxa1\n3tl/lKieJKbEbkJhqC6REsORcT+BCp5n0Q0k5ckcu/0zGT/Aj+uwIQG7rwox\nGeV6F/jVf2fpNeKLSoxQzHZQBt0fR5NKed7EXe/SFIcZiEGEbz9pmtYWwG1c\njO9gKU9YhXfy01ECNlOjxee+3Qofi+q4lmAveiUEnuPhyDaJgAft4tGRa9qG\nQvia\r\n=7T4b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f4f2f84bc087389b3206a2e17837b7b0b95fb2f2","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.7.0","dependencies":{"@opentelemetry/context-base":"^0.10.3-canary.0+f4f2f84"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","codecov":"3.7.2","typedoc":"0.17.8","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.1","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.0","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.10.3-canary.0_1596818832482_0.74528530915083","host":"s3://npm-registry-packages"}},"0.10.3-alpha.34":{"name":"@opentelemetry/api","version":"0.10.3-alpha.34","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.10.3-alpha.34","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"58b2aaee9a8a1a02be4b183529ccc35e8b0c561e","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.3-alpha.34.tgz","fileCount":150,"integrity":"sha512-vVyMG0YKUaUjYqhicQtBHV3KZOVdlQNGEppeOVKnl65u9kNLKB2EKj/UvjXm/bMDr8wY39PvfdLX984Ot+iYEg==","signatures":[{"sig":"MEYCIQDWmdpquZs+lWv57oQuKouffyVkxUBtD51nCtm/T4zkeQIhAIzmUYzcK4s/vg0A7zxepCCF9/hnRmA21XDQrXxMs2xB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":172581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ+5iCRA9TVsSAnZWagAAMRwP/3BlXoNJSMH1+zr6tt92\nr/fzuOHP/I7/NETsInbcol6NWysSV1azjY+0w1TUydntFGvtJepUIl6n0xS9\nUC6/AQ6YQZyv3+b8RoE67J9TQ6FWV0aoMH3y3H4+X//PC5eNBuBhwt1IEQVj\nxG62NCPFEBHed1u4eH3rKyqXdNuyMibkeky0W/eF6pMjDqr3QIYw4XeRmHbe\nEZNmTLcMWnWvXXQ78HXcV7rF8xejYu3PKpXWBpwflIh+q/Em/rAgNVG/5Ve6\n++cgmTqiFnWcYKxtxP9qpLk9q6iyHgGoNFskhWvquNMk/MSpB3d2bHpTHPEk\neVxwpDAlLMhoWXIvV208xY0S6lKp7cqCnzWX9tTBk0ddyCTQw6C42dZMahd9\nF9eOqR+hsu6tgnFrcixV6K5aJUKpe4KJHrtZWaGMsxtp4QpBpcGcPp+MZ1BI\ni8LHqGWewYtnZveDeY9528L2RDsStkCc35574Ac6nTAYp7pr9DRllWtkNhma\n899BY2CpN919b5oTTBLb4DkkbujqoCIZgDAvoexRR3/hcr7h0Tn9wI/gqKRb\nYvvLavN19CDNcZ3UBZhpHYuHT+ecyyePV/7wKHfJrePGpLbd2GkgmfgpleBI\nsihmOvnDM62NkwWUmvJeY6KKVqjTWrJrs3JGW92Miwtk34BFsguyV6VMlb/Z\nVrdV\r\n=vTWT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"fb06b5bb1142286acf5b326925f3af3353aa9d90","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.10.3-alpha.34_1598287458272_0.783326051893291","host":"s3://npm-registry-packages"}},"0.10.3-alpha.35":{"name":"@opentelemetry/api","version":"0.10.3-alpha.35","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.10.3-alpha.35","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"39744208f794b4cffdeb38e439426cd2ba50a3f4","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.3-alpha.35.tgz","fileCount":153,"integrity":"sha512-nedx1cSst4i4Mp9n0L3LAVf2Z1O2nJA9sfdo9Wl8V1U3220fDC8rNxyTWipTyYs8gCgPBa6mC04Io/dWn34HeQ==","signatures":[{"sig":"MEUCICkiPfXOwLW1vQtIF70JkZLV3TVTemkF1GZj2mew907IAiEApmqEjBcuGl9C9mqAzEC+EI3cBgd8JBoFx/lsQqM3tJc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":174797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfREL4CRA9TVsSAnZWagAAivcP/RJNmORoh8vL6bk7qABI\njxEbO5amd2D4ZVM2x9w4iKvckOja3KCT+zVo2aJxP7D+Kz+qjtYjrF7lUqJB\nYbAyZTrDqzV9Q7V1/L9S+/Z5dtG0CBGPp/p81Jws9qXeHzBAz3wVczDILBbo\n5w57QN9nAynyz8+K2bsJpwhc2KKkyApYCoO/hNxO2KSIzc4QM5Acfyywh/A0\n0+iqr9HpcTadzRq+N2CN0YL4EzW4tx0VOaRdJkO7xgWFfhJwfgX4i7mbGOqs\nxSZrpqB+2MRSyQysa5m1tFlJG5gOf4CfPeQK8WY33/kA3nuq5MpuFEd7esDu\nJ5OmS9YUyh5UvTDhol9N9nK0BTF+qPXNsOrHHLpU7hUTQ3mt+Zq1G+tYa+L+\nT95qo9c1zI95GrfZGmk5vJKHC44JHeygOaazc+r3Vf9BZN+/xZHKddCgYZ3c\nu7c8Ump2P3VK7uq+PhCjzjPnu+ZPIDBtib94AfBnNFDSLmtHIaSnoizkSrIy\nwTzaDc8xIp+BlntGi8Pnrml448AiGNelaVhK5qsa9ie6i1ebQHHt6QNOfFKd\nuuyfOgJUB3YS6SPm+gfLYYAgZEAQwAzBTaOugpXojQhNOHavM/8SGOC6MNt+\nRNOZrRGpyFZHP9+q3GMg+2wI367caEfDy4KRmgurw/Qeatp29InVvwXWhXQC\noF6A\r\n=X3P0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"2ee9f1aaf7b61c4b4ae6b748f0a07f8fc708f07e","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.10.3-alpha.35_1598309112196_0.05350171660972647","host":"s3://npm-registry-packages"}},"0.10.3-alpha.41":{"name":"@opentelemetry/api","version":"0.10.3-alpha.41","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.10.3-alpha.41","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"893d10e5758be3a9be96bd308edf0a08b3016413","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.3-alpha.41.tgz","fileCount":159,"integrity":"sha512-RvEiQ1gDcgsi8kf3gk8jggLtRAV+Btme976tfzFYYJ2BKtftQEuFb80W+pUs7bu7Nw2yfMCsWeItc4/9suDgrA==","signatures":[{"sig":"MEYCIQDa+jsok3Lmnm+7TeeYk/Ak8R+G5aRXtrgW50lh/2ZL+gIhAKvWuqKX6sR7W4cbvhC4gn80sM/kxccExf4s9GTdqjIe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfR9p+CRA9TVsSAnZWagAAcH8QAJr5JSUWJSHqsAol0r/V\n1QjmTSAjZn0CshzcrBblkiUXIUGFLpML8Ey0e0RtEiKk6Z66OdkWvI86S6FF\n1cktoDg94C7QzzAtdt5i19ViUskEqA3/RHNiQ/nkj7D8jcWK+Fk6n7p6o4ty\nlqxLAeBe9AM3y22GZJ0uwoy9a40yhSHEtYyhMwx0UWON9U0T43zzH6cvSnhj\nuxppTXmmTVBA41d/DFyjm0aUneykqnDFk+ggZktRHqiMS42HsUllqgzPtlJ+\n1Gqihwd7rPzuK8gj4v4HsORtSSvMVCpWy7ju7UuclugABpO9gGnfVrVokneh\nmbDjzSbLcj/HNWVs6A+/6y6dWG7mz5hbKE3xlJH2FkKbsgksw08c+xbVh1E+\nw8N6pkKhb5xIk0kdafPfu1Fp+aR8UGbsx4VbFo2my2mQbjk3QAGV0ZOuPh5K\n+mbMARrUDmv2GFPFFNTa5NGIN3z2AHaBPksaxKVkDshBVD6+s2j4xNmkomU+\nuaRWpA/zDWg3rAjGObPtzXUCeiQdWfgTzIdMbBqgKxg5dpCnrVROlEavLi/B\nWHKuOB3AeznBYH0XUkV2NevCRpTW1+aKdBP7Y6iWmHOwPQs0Abyl8hw9hOAM\n8LT4MFXYRC/9lrmqRI/SuOM8//frz1oXyGDJfLNr9KtMzPP5i9EuPlca/dkZ\n9IHW\r\n=Bct9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"5c7753fe6534a34f0f4eaf653d53f8c002ee299d","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"4.3.1","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.10.3-alpha.41_1598544509600_0.23851191948259376","host":"s3://npm-registry-packages"}},"0.11.1-alpha.48":{"name":"@opentelemetry/api","version":"0.11.1-alpha.48","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.11.1-alpha.48","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"76374b1722453a5bb43e57d5b56dffbcffc9304a","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.11.1-alpha.48.tgz","fileCount":162,"integrity":"sha512-x04Dsjoc8mWXhLUumggyfEMWhFFPnBEF1MV8w491kXKhkJ1DPRL72fU3H77ztk7At8i1J74ovf7wx8YKSdxbvg==","signatures":[{"sig":"MEQCID9sHdgwbR9P+zCoP7GUA8ev/m8IFHG5+ijac8xSGccRAiBtjCYgCH6P/eS9ck43zOwbXzXs/+SwnXy8OY1gORS3fg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":184995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTp/YCRA9TVsSAnZWagAAOOkQAKFl3c+wGWHUJ27hAvAz\nj4cWH39UEiuj55JzXjw2Ccm9NDn9OeILq4ktfDdKO39yMh1CBiDFk1oN/+5u\nguOhDCWop6ZeNkhdmlrNd994+s8Wq0LIx7LZG8lR5pBcCDGmM73Al4OMMe0Y\n4K7nXXlqkF9T42uoRthMyq6NxGqF/4U4i8SQcbeUKsXLALNb62utFxKQCpJD\nBH8iYYp2MCAzDg88KjLh70Q4FzmPX4SAOcVFPvEXE2D1xEqojYZEl75/PnGd\nmwF9buDFILa3HIVOHrOGL8fs4AVU7CF1x4w+rsdvK/ts0mj5JJV2NKEn7LZ8\nN617u2evfVVizkA68o+JFjhi1y1aGy7k04nR4ApcuSDiHN+AKFT4qoiKqiXH\nAJtVf4DN8gSGHUkdX3grmHXM0V4HnEgluH8meZgZCK+1cOKnrikzbKBHXo0w\n7SEebl9CN7k5S5w6XgvcHrZakD18XtbSkzen8YZhl8D89RasuRdI3q/oaNE7\noHOZdo+kaAPHaXIB/jLTygvdX8XED/OtwlOhXTRhdToMYa0pE5PHv8v9P2EF\nl4ZOgVZYNGBbQEnsH7O2xxw9v8f8z4dv8z+vo1pkl3RYuRRaJl5bpd9ZicjX\nTNHq0SmhLJ4zBmcG4ePk2WR3fWBBQqH4lNux47Vravu1Py0bw7bsIDcqfvtQ\nOWRj\r\n=jfip\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/context-base":"^0.11.1-alpha.48+15174c6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"4.3.1","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.11.1-alpha.48_1598988248346_0.10477424023506265","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"@opentelemetry/api","version":"0.11.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.11.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e0f6d96b3754306e55fe6154d81ee048c7529fd6","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.11.0.tgz","fileCount":171,"integrity":"sha512-K+1ADLMxduhsXoZ0GRfi9Pw162FvzBQLDQlHru1lg86rpIU+4XqdJkSGo6y3Kg+GmOWq1HNHOA/ydw/rzHQkRg==","signatures":[{"sig":"MEYCIQC8xyoQ0GcgcyaT8NO1DdVC+Ruyq4k4xtTdLjhKXleRhwIhAIzigV4u3oocErRvlJwkr1pbmRWkxAU9pj5jayjunLh6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTqG9CRA9TVsSAnZWagAASKUP/iimhDzk2iH+iIA3UUiV\ni+FZkNP2mkOw/PDAyWN9ZkH06I0opH6H5gcDTa3IrlFqSvyngKukhwttnE4E\nkk7FGXsQ5HyemCzjnunZbmwGea5E+1GSdMieYC9sH9sFVCFAR+gp+0cMX1gu\n97Dtjjq3ghn5Lk4+LoDBiAgDxY6/08au8LEqpF7+om+XTpZLfh3X9LTgPnz1\n+xGXzBx/wY/1hfNTXctZz6WAlmTAFZ2bjJUodKbkd1iELk5ht9sHEN5ZVJ8i\nxHZ9V0KbLLwm6fCQd6YDUxauXKz5i+aK9E6bRIkFgoxKHJPFVKh3YuhtzKgt\nmWh/jabLBI50u0T2IVsMbWJSWTnsBVEpZ+e2hxgb9vB43aP6RAwmn7Uiqwpc\naKLvbnBSs578/sgK+szf1dQs7s62ObGCczJ0NoQNGTfOmMe01knKRxgx3CgD\nEcYL5vNWdURiVvpA4lmHjvMSQaYPfDJvRBkFh3SDI2k0T5QStXKA2RRuqDP9\n7p9rZCnjofh8FA73xU00axkgbKoquzUAGkG5Wve22oi157mlwLPY23bJ5v9l\n6ok44P7xR/IjuCk5/NKaiJScPyMXmgOZfg46BNUmNL6OuonERxSLqxd6NKpi\nGDSIZg3U4BQel5XBiM4AnnBGRu6Im1Tgdh2wR0iGpp0CGcmqwDyZFH0skW/c\n1qXz\r\n=DIsD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.4.0","dependencies":{"@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"4.3.1","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.11.0_1598988732934_0.14482583409325978","host":"s3://npm-registry-packages"}},"0.11.1-alpha.15":{"name":"@opentelemetry/api","version":"0.11.1-alpha.15","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.11.1-alpha.15","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"72d0ec099544ed216043bb91e9681034813829c8","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.11.1-alpha.15.tgz","fileCount":162,"integrity":"sha512-7g3KV6pqZdYkq9goryv/UDptfv1S80GHt8OVeoZ8HO14AuLqQE9N9mpzDh4N+MwmsrUPFNfcbwwOtMr4W3Lzeg==","signatures":[{"sig":"MEUCIGgvNfr/l8cCJ77wrckylWzqldn9NwdeKEqlWaQSqRA0AiEAsnHBSrXO2Fm6om3y/U0L8wyra8+8rEsgiUrjRgJhaTc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":184978,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaB4sCRA9TVsSAnZWagAA33IP/iFFEy2zEGFVfgO9K7CL\nrRTky8biwNa5UKvIJftaePxVp9VHO8LyaX+V+xrMl2JP5bQFEyGD/A+2UjQP\nQZswGYSPrDO/j8ayzFgAstLrSxmM8Cvi9JZuxPranMEZ3BL1yszAr7nTk7dc\nbTinmihm/ZJb3S1rRf2QrhsbnT7Dd65PtvXq/qd/OAxaGAxiKz/cgk4XbZwn\nf1jyz3laG/6ufeKzwdMSR0JuRHMBIbkJ35xbSqBrDHaQhbT72e36tuPU08lf\nOV87iWc5kQYYQ6qW8vFZo4/OjadGk93Fg50hXZyaBVWXu/X6ooiluE/pSM0X\n5OrP10dntwqMUv6wrNz6kSkkAOl7G/7ufUfhhsJNra1K3BnOgR9CiTwQgYtO\n7rpXB2xgApocvH6k3bpidDs+Je9z+g2XAVR0ktKrTigeYSjiqHrKTlXuzNmr\nZkywduJWl+fg8xYTCHIX5xy7y9PNLei9IOKBcCNNmQ+1WlZrWVUNtqTvd5WF\nfvXZ+V5YyTcxJZTM/lTcbCujKVDFmtvlbiyRfJwk06tqvDGFjbz+YglASf7t\nTsESKkrnZTY+D3sj95gDcZlZ4LSrZ8qmLq505cZjPRkc8Yj/cqW1fBjGMXZl\n4mpu+Kp1B7pgQW1ngEuTiPMQU2ZfYNJpve+dZbsjOu4H0w7zLER/A4Z5ZaVd\nVtcu\r\n=A+1U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"e170039015e8a1a7419bb835a00659b2a734b8a6","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.10.1+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.10.1","dependencies":{"@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.5","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.11.1-alpha.15_1600658988294_0.8542708145011673","host":"s3://npm-registry-packages"}},"0.11.1-alpha.35":{"name":"@opentelemetry/api","version":"0.11.1-alpha.35","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.11.1-alpha.35","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a9839f60b2ffd0eeb760b182d92b7c6e7cc65a9c","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.11.1-alpha.35.tgz","fileCount":165,"integrity":"sha512-ds9XbRpYHiL7nq3AZBj6VjgOXqqhpL7YGwb/H2s7vxn0REQHSlgZEzpmKbCfk1OBpfzHu/kAhb9QTH5QkWo6pw==","signatures":[{"sig":"MEUCIQC8gQ0cyKThUjBldSDefnU4sOthmo94bmtgYcVtJ6NFfQIgCBwkaJ2qJoABLjJa7bj31cGWNrbVAZIrjPSOB5JKL0I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":188995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHhqCRA9TVsSAnZWagAAttYQAKFeg+0UaTItu4V4oqvK\nPbwAESsLrY1PUfaXL7wqKpqX3zk5l5hv6LzxqQUSvhhMFW08PA/iRbaq+KZc\nrXGdKYZszsxUN8whbzfiZcblIC59TLXyJOLUO/2ntnOKISnCOL3FfVEZ/VOA\nY6Y3H4bWbkwne2zq+vV55OdHfN5gSAf23xu4EgMpN4G0vSaLDH1R01DCm3c5\nyoWDpUNMqeex0EA3/SfYP45q2DTdkiv6Bve0rrKy6XabbGwIDuJcjWf39iUE\n1RDB99f7fc0DgjOVDT3zwAtzzpnH4YlTTIXUB/dssKF5/g8XLTlQUeyyuVXm\nML7VBMKXnTSG6CNfK6U5puyRhvruhoEZscpkfJw9EIzkbw1PQYbIlwxH0OcQ\ni/g1DMw37BFnEuuUhd43eda5fRTcv5ldLod2Xvhd3ifXsvxhCXKlt+qVdMTK\naChAV12hC9gFEZs3EHiS7gKA7Ddn4pXwE3Z5n5+Vyw8NXukih2epSPjGBRwU\nMORtcS6Vex7xpVNouAA6vynabRAS3feQIJEyvEO9Fpi4uFpqnTddwIISd1va\nd5pL7whnz+Vim836KfOfqDBYfw4UVzTOhl9HN10HgXX9tQr1DUjIT5+wipmO\nARat1W7z1HvHG9c9CIwatBklSowAj99oWYR5X93Fuz5CZz46XKukAjQLwIpn\nFay0\r\n=Jy9x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"c6c993bb16c58ba907337a5667da01b3c248e350","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.11.0","dependencies":{"@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.5","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.11.1-alpha.35_1601468521822_0.5126426545069165","host":"s3://npm-registry-packages"}},"0.11.1-alpha.36":{"name":"@opentelemetry/api","version":"0.11.1-alpha.36","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.11.1-alpha.36","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b5f30d856baa4b4f7e1cf0e445e3c0d69bf4e251","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.11.1-alpha.36.tgz","fileCount":165,"integrity":"sha512-G656LtExbORnrukNFlHlISsMU3NNdfFKcUXYSz24amoLFvyi72PhU9nQ9zT42OZ+o1Id7JGMjz3pnUjbd+zSCQ==","signatures":[{"sig":"MEUCIByqyh+1NmmgcRVEA4qgKGKcP+3RZm2T1kffZHwDMtK7AiEA0x3rBqnavdBVWC+7BUmRZWVaiaVO/EFjfJfl6GHVHVw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHxGCRA9TVsSAnZWagAAJT8P/3nUOkNlD91vCqx36hTd\niSZWW0FQ+dAL5tQNop40gcy8tB9Jcdely0QDMdD+DgCYESDBkHldb2dF70C3\nHsStkZSaYBmvgy5S5SyJcVkQL4OJKrxsuyO4dApm/2Hf6DlWs5cQOWTz+tI3\naXdp3Mn2BHD0rzpXNPv3W+vQHhBqhXRBwhqM6NTCZtmtiswGMZonDCBV0l6I\ndbs6X5a43J1uLJHvobvM7PvWx+2g6JbTuanlwIRIeAvgr2ADP2vPeXyQLIc8\nwlVbC7PaCf0TsxLZVG9TpO2lukmH9kFY8uj37UJ664EW6Yuuw34PuYCwjF3q\nxvxuJRf1PTYt7KWbMtwAW4JXpaZB6V8U0VBTYuqJ0wBcvtIgLJy+2/pIijGg\nF3LEEVYIZqLV4xQ1puhyfjK2z4/edH3Fmrx+WV5HrxdO9q+1ERrNaRqgIt7b\nTyeMrClher7vBSjY8TKm3qXs9lb3en0nbP1wSJZxTfDJQm8mxM79urWyHXpm\nMfBw9A+2BHaGP/FwwRyTaV9pXuPw8ZZiD2VNC65nhRYK3oqsO5CUCdHaqNZX\njlssHQju/9CP6t/TfDlm5sgz5oxhTBqOXNrWXPV022WmNM1tBJypQaExiZ85\nmxt+BkHuAEz/A4hj0XJ3KgPpFpMj082DQR5TrKEpyyKcahpxsoOZFRsysjsQ\nq2Aj\r\n=P3zM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"6eb157c66925fe84b4960f247a86678441f3cb60","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.11.0","dependencies":{"@opentelemetry/context-base":"^0.11.1-alpha.36+6eb157c6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.5","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.11.1-alpha.36_1601469510286_0.8353505615644046","host":"s3://npm-registry-packages"}},"0.11.1-alpha.44":{"name":"@opentelemetry/api","version":"0.11.1-alpha.44","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.11.1-alpha.44","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9c569ef630396472649f225d0b687bf0b5f398e6","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.11.1-alpha.44.tgz","fileCount":168,"integrity":"sha512-pDRj8lX39Chbu+1gpqHBwhhCm06s+Yr+N1d2qCGKMVg4tQ/6ikSM/1TkSACbPB9RzIrQtBZ5s72tv1Q/f+TlvA==","signatures":[{"sig":"MEQCIEPzVqX/Qt6X1bXWz0YHwQgU0mhN0RfmDf0nLWPxrxQdAiAnIpoKlAxzs3gHej5Eh3NcX117k7+lfLy+sVw7S/WGNg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":198250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffh0LCRA9TVsSAnZWagAAaNkP/2wDWa6PHGWctP+rqLK1\nQq568fzCgCNngsO3Gg/0DFZn0aWZ4itby4KBCD/6fECKTiiVQUJY/ijyUapt\n7U4Pj1wqXLotKEZO8icgw1/Ix1ZaRulzvPBx8D3gqnL8mdO/yCRSjI48u2CY\nAp+1QNvhOmnpu/Av/821apq7zFmGlYHICPrwMCPPkof9J6To1/HWxlL9HcA6\nExiWp+QInayMEpN24XfbnoXS3VpYkDXPvmfw8Mkjmm0wIGb2TiF93WxJ+qyX\n1TqYEaF7BU30ZwTL8uxE7SIIYY9kx0/vMFQtmWcuDgIp8sKSqNFuGvXxyIpa\n8xkRWPtBcR87lDOymqhfJ9gOYE1HO+Vuv+Ju/G2SCZafYei8vMo/ewkSqpry\nWbkA2mVL24BlrBSc2U8ik4u8qixWdgARFO5N7rdlzJ5L+t/imZMs4JitATcr\n3sexAxlPBNrIVJwJT1JMIpP299DO0mJ1AoqFsO0T79Wo2V0qt48zUyVTKsVV\n6hdxXJZ0/ZMbzvjC5QvLy8afdAF/yOVbqyh1Lk6r3XJjTwkKtRDb06oeM20d\n470lRjm7u6AF+mo7bniAkWjC2T6LDKrqMIpqukxGnZVsgtRlJ3MkSDV5d1ZP\nB9B1cU5UeF41b8W/ZLllikTkTCe9h67uSs8zFda1iL1yAkTR5TZd+Uahl6mf\nOSmj\r\n=SHra\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"240f852cc41707c751f28811b7ce3d243382e3dd","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.11.0","dependencies":{"@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.5","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.11.1-alpha.44_1602100491043_0.2372839598261729","host":"s3://npm-registry-packages"}},"0.11.1-alpha.53":{"name":"@opentelemetry/api","version":"0.11.1-alpha.53","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.11.1-alpha.53","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"348fbe8e127edf9590d53ec73381066baf3f61ae","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.11.1-alpha.53.tgz","fileCount":168,"integrity":"sha512-u6UpV5JKF/K98TK/he8WqxhYK8+8y9huiVgQlOFNAjTlL3cck4yY1RMStn22IIyvM808UtS4m/rP39V6nw+JBg==","signatures":[{"sig":"MEUCIDjcb42Q1KXgFgygzgJiKDmFc4mmcE5HJzFF54FWPYn1AiEAwV6ZkEEhf0IZqP+0PHOLS7nwiTdx7lXfYYdCWly3Mv8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":198187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjXzwCRA9TVsSAnZWagAAxHEP/2pFusJe3545oZfAJdLJ\nUOi5veYOU91K1XLwuRGzHTSwDVSFRSf1Dhnii6oqlWQi884VcPeiFY/0HQLj\n8jY9XmLWm6VZlrvraIQKKbChRTl14zmmehSEImVllFHSGpUJ9mToISy8sDAX\nulbSvGSe2zyyWQR0YLnf0OfV4Hl7+EWF1qjfpgXVVviq5Q5vm59gMQrjk5VA\nM1DqlQuJAYaSHY6vL/CNRgMq7fsP3jXXrnPPENcEqIABXthqKAzZUrHVogZw\nTb8et7P3or6VO4cMh0auwRnuAgvUqFkImyK82CRkDCFjZLP9oRKkl2Zq6WBR\nYa4mGrQBBCapv+5lOJkBnCya9Yi1CASZeby57MSCGMMyxxJQ0B8hXNf+7qnn\nJbl6CJ1MGhmmYcSX4sNc337bA6MWqbJHLaU6Rw8C5xFX1W2E+I+dIwNCJ4o8\ngEablR9itVetafylS8QY1wNLe8UIw8A3rSfZ8+uRa5sDsQ9vflhPGh8n5OvT\ndCrrmXhmqCkONkEiCBzzDx4TOmuX2FLR5OlBSNNTRdeWoi3M26gnVi+2yAhC\najx0nZqKk7cw0YpUcZSVoB0CGsBGftcJ0JIHwOPElYIGQV+bVsbeFAiA7UV/\naBjI2bgrZQpvGLoFwjhRx4RWXi1NbDwOHcmZF6eQ+GjGD3abzjoGyUhsEK4Y\nwCEk\r\n=F/V+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"00a8ce7f982ea24bcd4bc398477112894078ab29","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.13.1","dependencies":{"@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.5","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.11.1-alpha.53_1603108079792_0.8408903798519265","host":"s3://npm-registry-packages"}},"0.12.1-alpha.54":{"name":"@opentelemetry/api","version":"0.12.1-alpha.54","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.12.1-alpha.54","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8ac76c043be872fe9d3cbb861ced8b2f74bc37a1","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.12.1-alpha.54.tgz","fileCount":168,"integrity":"sha512-sOOa8zJNQNQZl1mQt5Jirf7GiEun7njjyre3I6nsCk1AZpZmDXQq+Yq2UI/3h13D7bYGFjbKWT3FQZIeeCYcMA==","signatures":[{"sig":"MEYCIQDigDhfJDvPEJYY2av2K8u9kjwP1F0qzOUg0cNukpt1BQIhAIpHd5Q9atBvZ9DSxikcw5XB3zAlPw/sJFQ4rS48CzOe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":198205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYtrCRA9TVsSAnZWagAAosYP/RmpKzCVcAM9jf1vdauL\nmYhjujZolP7zXQrGK+tgUGiTtHFsxdFE5F3sgnw600vjVvF3mcd8w+4vLf2c\nbfTNAsluU6ZDd9ESR3yU2opcUg4ZYME02yhZcbUj8Er5m5IRN0zi8QCmfnxn\n1wdPUCiKZm6O1S95hrxSDdWg569fTWbAr5D6OUljPVQ/LeK2FYQKTjwnUF2u\nA5Ho28CmqK+jeoVihx4E89BpbnFfqFSlSuLG/wrmEgqUunMOpsut7U6WqLk5\nzuZA4b7IarysBfbt3iLbFaah09tUCwgsxslKHdeSLQV3vV+hc4aGRyP996je\nZKEUhytIuMPgND6Z7o9WcTbYEMdf00+CHY4mbsX2N/OrEwhcnp46Sl/KbEqQ\nJrRibQDQ6ZU0mI984x/dM8OOw0P4weGFkAwWUS85sLPXytNdggI7LwO3kcP/\npDhEKyKJZc7xCAOvH4NBcxmZqQI6BBVTVECMFlUNdA4o34+x0RutK4eplzKh\nhSQtrU8wdmcjz8KPVRpuksL9MHITgxuR94xy01AnPfLtJyIs+AosEu9YU68G\nJiEz8oYL0LUp8lNlhnOEdyyx/a3qukBLGX4D4D44hmFxaBfzjRdOamY8q67x\nlKXGORK10w6JwnCREx8m6wcQz1TfU+8Ldgc/iz/GkWyKMIzqXpEoYzIbaEC5\nFU5L\r\n=f483\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/core\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.13.1","dependencies":{"@opentelemetry/context-base":"^0.12.1-alpha.54+3f72613a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.5","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.12.1-alpha.54_1603111786869_0.5074131318945263","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"@opentelemetry/api","version":"0.12.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.12.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0359c3926e8f16fdcd8c78f196bd1e9fc4e66777","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.12.0.tgz","fileCount":183,"integrity":"sha512-Dn4vU5GlaBrIWzLpsM6xbJwKHdlpwBQ4Bd+cL9ofJP3hKT8jBXpBpribmyaqAzrajzzl2Yt8uTa9rFVLfjDAvw==","signatures":[{"sig":"MEQCIFE3DJG+GQXBhh/4bk8Wa9+7qr3HGJAoE2V7JpB1SWftAiBj9I08sf3O4ruKz0RUHcuZI8z93544aktRpKwlvMupHg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":210312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYxTCRA9TVsSAnZWagAAXOoP/Rki9m3viNx9etJBtSyz\n3/vsdR+EjxKiL0Zd9qc2sneAN5IdhEhaKuYx0Z+1ffvtOh5MK+GboS6TlJ3I\nbGC7WIqSbbeOzq/psDI2usVfhXlrSS2vjxEnw3AitFtpLsosnxP7867XlrJS\nB0dHOKFYSntBdlplBARHMo6dP5hNdOWh4AXTQLmPU4cdqFq7xPgV7sFh3Ggq\nVQbelVT4X4X/vdMm9hSsnZ8tk5/EgHMcN0w/85hseNdu2RaiKqiLAuv6V3Bw\n0XRNZ4/4v+EcBYN3Ye7hKYOdYoOn8dChmjke2+eG3/DAdSY+Tqf469zm7RYB\nyntDymoYVQ13di16jcwPM6tsqgVqzTxs0wVr6BA6eUu7gFRmE4XzJLF2OWlW\nea/f45L+w/imgT7DrroLLV4nM5xLNt6DaIb8dHv/wgsgVxWNxT/VtrPByLxd\nsC/+9lCNDYbxLZa7UWtvoSqd7WXOYpKbJPP3Acrv4Mj7fNSZ9+lGPNecfXu7\nn1QG+g+xRSEnJnpSRqsJllEhQKetTb7kSsvY8oo8ntRBupSZD0lM2z+tpJ4k\nqfTrdjoJkWuxSGSTt/PbY006ksT/m1TdccwjmMRbdrKAvLW+aycieOz9fB71\ncZqOcjHEfDp6jayBo2FUBclG42wSPYPPC7kQl6XQlkB5QzvDdb7HP47bGqR0\nzfRL\r\n=L5+6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.4.0","dependencies":{"@opentelemetry/context-base":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.5","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.12.0_1603112018695_0.0034870778909865674","host":"s3://npm-registry-packages"}},"0.12.1-alpha.7":{"name":"@opentelemetry/api","version":"0.12.1-alpha.7","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.12.1-alpha.7","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"357b13ec909015d3392e7bb2c7ffc3533f30b385","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.12.1-alpha.7.tgz","fileCount":162,"integrity":"sha512-xLFhhKagU/3t80ge6CRGqazi0RbOdiJwENcHuh3X/v1ukZtE/NHTxf6lo9C4kO5PZxuaZu37oojRbIDz+NH1nQ==","signatures":[{"sig":"MEUCIGh9J8PPWWsN60IEDKNzCr1zE3iQ4thJxMWUmcKl2J/YAiEAs5UQWUv7/fz0e6kStMgjAu6QdxxLFMFAeIjSX01sxd4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":197511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflzuaCRA9TVsSAnZWagAA2OIP/RRdd8O8wwg7pTsCOUKB\nwgpxUDlS/+ATiPCYVX0pSMmuIOsQzn6xW+e3QRFM7d66beBCOMI6c2Wqc+tD\nUgGxcPhB0dblMTB9uihJFAawGEFILFszw1Mv1EMejGoVNbS/ek3R1wg7hqE2\nFLtTLd6jkG7f3NEa9JPUthhzb+ZsP+QR50WFyCNvgIPRgkTl56GWph8z/ICB\nFGT8yMlhS7gKyEUcjbYEDnrYCqKHVg8LsnzS98xyvaojUK/xTHcurwOlA7LW\nawowtxjAMklq6EB/Y3LOUq1mLh8U74U20mf0wSViLhx/0zJ1CQO+3SSBG+8B\nKZ+cjYS9ItwPZ8ke1xhRHIcoycfRfvNnYqZf6bkei/ePpwtKlf5jDmUJ9Epr\nSSbCzNoB9/478wvdSIZGD66aHvUzVkeL3jcM+x2viNhbv2WR/qG9UN7nrXkQ\nL5/hEFxiEvOHqdv+jMFYKWabcPHZ2Xp0wlW09gOCpZoRcplWeR6fG2gcjGT2\nsP5hcqDCZ8gv0QK18XP2HlbmzFvOaMqNDm7zaOGj3Q0j3HQX/nkM+pjPEF1R\nAtfWSYZ148xFW5PjGUbqqdJOAP4XLEANxawcFJAtCspx+sIb//wkfeekxWtS\nVYWtn6ROjQ/9YhL0pMjdmpU23hhCS8Im+ENBbUXBZEFLyC93rYHEzokim96e\n5hKl\r\n=mIt1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider and/or MeterProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n\n$ # Install metrics dependencies\n$ npm install \\\n @opentelemetry/metrics \\\n @opentelemetry/exporter-prometheus # add exporters as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n#### Metrics\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\nconst { MeterProvider } = require(\"@opentelemetry/metrics\");\nconst { PrometheusExporter } = require(\"@opentelemetry/exporter-prometheus\");\n\nconst meterProvider = new MeterProvider({\n // The Prometheus exporter runs an HTTP server which\n // the Prometheus backend scrapes to collect metrics.\n exporter: new PrometheusExporter({ startServer: true }),\n interval: 1000,\n});\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries.\n */\napi.metrics.setGlobalMeterProvider(meterProvider);\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/propagator-b3\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Metrics API Documentation][metrics-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize MeterProvider */\napi.metrics.setGlobalMeterProvider(meterProvider);\n/* returns meterProvider (no-op if a working provider has not been initialized) */\napi.metrics.getMeterProvider();\n/* returns a meter from the registered global meter provider (no-op if a working provider has not been initialized) */\napi.metrics.getMeter(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\", { parent: tracer.getCurrentSpan() });\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.CanonicalCode.INTERNAL,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"46f31dd2285d55d239195032528c3dab1bf0e15c","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.13.1","dependencies":{"@opentelemetry/context-base":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","codecov":"3.7.2","typedoc":"0.18.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","linkinator":"2.1.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.5","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.12.1-alpha.7_1603746714071_0.8105941440020468","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"@opentelemetry/api","version":"0.13.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.13.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"aa240199e9a1e5dabc55f4de877fb5203a8b6ad6","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.13.0.tgz","fileCount":162,"integrity":"sha512-3F5zuMBhL1cQIGTFGuuGofS9/2bfhoJxT9sWLfHtx7A/vN6HSA6YiotPjWFK/aTiLjZA4YYnIjeA3di151xJrw==","signatures":[{"sig":"MEUCIQDR2kfW0fEWmm3qrGNbFB3NK+MJw7s9mfOHaq8EvV5qggIgU6tUQBm2iTk+zzwPU4n4FAiw1TPyaK0huN4FxHBCFIs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":188647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyql2CRA9TVsSAnZWagAA+PgP/1g9a75+CinziQ9JtgHE\nbo5RjDvMv2P6eneUU9y20G2+TQlj2sfKzY/obWojGYqIju3YUol5Jsz852iA\n1Am0b+Vqr4Ug1UTyHEg61wpT/4UwqdpK0PabfJrdSrl139JFai8HCSqV3zpg\nWcslVc5VMxhSv6aCXHq+FZsRf0MJBI5lqegtWzXgDGTJljIV35RIMcvSkSBH\n48STeP2rHTsVFq52qgsWkPSfNqGYeAz6/UDdB5f3dFjog7EbagadrvguhSb2\nviqfDK5/Ymmm9I89ZDj+kcf+bWqUmjl2sgBrCpH7wtsQ7pJcBDGlUzAwfhPk\nhWM89JFQe0TOKqEzg08IK7je8azzCuocnS51H94uLMLwODQ5e0kZ4TuZYkbM\nYONuAqcZYk9uhkYZRh3HDsb+d8KP5rlZz8ICikOvCfnGl5Nm7/Jn+r7nZrge\n4HyYYKQmvVA/csNTCUpFRby1VT0SuQ9cZXRSJ6i6bIDZAH0frOt3+XRl+Twc\nA7CcBCaxw2TImfu4r4PA66k4yyrEOJiCWXjIHQYXMWLyL8xkWk/p1MjbXldH\n+j07rSB+qCt1RD4JFfaxoBUCmvnuMcCaGWa5hvQPS3GdRmvcl5ZjF1soOTtw\nwiOZoDgQD2vWok0Ya+PF3bx5PVqtYrTjgTtOT6gcdf+BaUTVnPfDKAvNNMou\nbIv/\r\n=q6eL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"86cbd6798f9318c5920f9d9055f289a1c3f26500","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/context-base":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.1","codecov":"3.8.1","typedoc":"0.19.2","webpack":"4.44.2","ts-mocha":"8.0.0","ts-loader":"8.0.11","linkinator":"2.4.0","typescript":"3.9.7","@types/node":"14.14.10","karma-mocha":"2.0.1","@types/mocha":"8.0.4","@types/sinon":"9.0.9","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.13.0_1607117173429_0.8794372073775254","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@opentelemetry/api","version":"0.14.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.14.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4e17d8d2f1da72b19374efa7b6526aa001267cae","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.14.0.tgz","fileCount":159,"integrity":"sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ==","signatures":[{"sig":"MEUCIAo3GkQRDwbll5hETnOF/PA1LVPI8tQuE0syReKfNu8/AiEAkL7A1vC8KJsx/8Fu0KnoPTov6aGQPYvfMnIoUtSoA5Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf28UdCRA9TVsSAnZWagAAb80P/jr1fTQ/NvU78kO7nX/c\nzyItXc1bWPusKj8IDJ5VB+5Gz++BCLdJSSZvTyPsQxpgdWRrVFTh974MwLDL\nWqRLHZl+oW0qt70QiezoyU/91dnBxmvVqfoLHwlbRFGfJaJn8fRu5VQbTp2Y\n/jfV5/WMiego43UxU72JuqgUADjP/hABrKSK/f3eYlrkMGohg/zHAxbRzXdm\njEpwsTl0Fo0NZOvjZcmtOw8xZJAhYgqK0xT8lVdXdrps3qrFFoFD8+oObmE9\ntzIUxNFDRC6FbPZdqPbEQCw26OuuhqgN6k1Y061fWIVv+fWmz4EsiSHDocvR\nzgU90YeZjQek9OmAnLdopTYNT6Vx7mU8WR+aUcVV/YcB3PcIm/1PORjsU0Kk\nC/E601zMppQ0sQd2YzoYWInlQM4Qz/c3Te8Se2UDsHBmm3XKh3qqFzkqH319\nPGgOsvkYkYFuvOA34CuHk2GE6aH7NEdg8V0qTcbGGR8DTn3/TM1qmZH+w1An\ndTZa5PcWBfmR8hvttr5FkyOITPyVvdUN6N5PskDz6eg3CIQn04hXsBizzXPc\n+sN5tat6BlmNbJMVY77NBPox5Fnr8OfWC7yrXrYbYHeNaodCzIepHq8CoSyG\n5COOJIAKvsOKuzWtQ0ifvKt95yPWO8JKIqxsvanu29NzC+atg4mJwYyAAqdi\n6P2i\r\n=WDpF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"27a8d4530c56257c191468b073669909bf8892a1","scripts":{"docs":"typedoc --tsconfig tsconfig.json --exclude test/**/*.ts","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","precompile":"tsc --version","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/context-base":"^0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.2","codecov":"3.8.1","typedoc":"0.19.2","webpack":"4.44.2","ts-mocha":"8.0.0","ts-loader":"8.0.12","linkinator":"2.8.0","typescript":"3.9.7","@types/node":"14.14.12","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.9","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.14.0_1608238365366_0.4980243247449234","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@opentelemetry/api","version":"0.15.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.15.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0324a96e70e7a8122dc6ec814ce796535c8d9123","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.15.0.tgz","fileCount":129,"integrity":"sha512-tPyzyO8P33wWUlUdo8+NawX2qnn8HyVUAilANWLxrT9C6g4JbN6eatSQrx3G0NzohnobT3fiwrbVFNeacWS9gg==","signatures":[{"sig":"MEQCIDI4yV2H9JgDXeT8oKaBZmpdpo3bM6ZZtOK0f71NW8nRAiBMG2NNSSOCeLshNDRd57TqQcMB198MQMjms1kcW/OKMw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":139828,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCf4JCRA9TVsSAnZWagAA3h8P/A23XXCCrMBM298yDeEW\nvi1Qjiu0rJqmzPo9AJuhufFr5VTDmb6kgM8rXeF11sdo9EI4T8NkNFc0IByz\nhwErBFwr7Nx4Y12FwAzStZ194Vq+bc61A5R4EP7UyUMJR775CBFmoghDeN5X\nIJ8yuZeS4eW9maZ5W5Ws/6jaXk6Cr9czW6aIs96IGv3vhcawTILU9WiD+UOh\n+g/EqRk+aN/+NNpX6Vr6sM4eHSJUBeXTJ1uOTVAI4OKvsE3aGs0Cbo3MOcia\nN/kTjguEJ0UHVkYs2khGfnngkItN7er6BAprBJRoWL/O6sCruIu/jZthZNcZ\nL5OGiE7/j3in9d4ckuwdBDBvyEGse1n4PuVX+yPk2T4u+RrsCYwLSz1ARLWI\nj2qrrzXtShVJprB14rtGou3x8DxG7B6sTupuU4kuKb1xzne8Uxobk1PgXUFs\nWS71PsmKKCjkQJPdfHo8vWnEEhInz5Se+kqCdJ4cJjjITelngs4um0URNLed\noYClgjHJBiRTqL9fJ6/ZXXTE9oWntI5uefZCBnBLQi31e7qnc6QDfXH0IlCG\nljgZhyYglP9raLW4y5qjv9RoBXBDsbmCZztYQXtJq4x0Zxr5HPdUKSszFx3W\nNlDfOueE2o9fng/ERGvwU75lATmtqpeB0uc30jiXyZQa/yagDOD3BRvZRhm9\nz2Q/\r\n=YR28\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"960b868f5b7686eabbf49190071b8463551e5d8f","scripts":{"docs":"typedoc --tsconfig tsconfig.docs.json","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/context-base":"^0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","codecov":"3.8.1","typedoc":"0.20.14","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","linkinator":"2.13.1","typescript":"3.9.7","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.15.0_1611267593175_0.22205822190881386","host":"s3://npm-registry-packages"}},"0.16.0":{"name":"@opentelemetry/api","version":"0.16.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.16.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bd89460626013fc2cc7702e51ebd537ee84350e9","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.16.0.tgz","fileCount":159,"integrity":"sha512-y5mNFAiktm7Zyf0GrQ6kjsRqace/WCXk9gMo/sOOna4TtMW8NaZgJceKrsQZl3qiPY9Upu8O9VvdlETXDx4U5A==","signatures":[{"sig":"MEUCIAnfPzforrvanJnpPbpgIEQr7lWiELI5RtGiltDkCIeDAiEAjq+T2JKS3n5N2ImZXCtdCUCyHe1OyUrx0QLFW/7ILQQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":179147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGIGsCRA9TVsSAnZWagAA3QsQAKCkC6PFt8+gZZxrFufu\nafrvEa4a5bunq6n1NAYdQFjTE7ftA/oSpZ9xsXIIH37IoyRTKMFy01h5IBJ1\n8tySzAfLLH3CI/uXHXBJhe1HD0TwDN6PnGrkfoLt/MVEVzWuoWJnIcscqlUL\nI3RWJQLV1bX8ZyDUni/j5/LNisutO65nST+iNMzjCq5yXMRlVg50jBwaJ9NK\ngIRbK35PRmtpABdR+tX/dnURbzknpaP6CbFKC+taZO63jIublvvc08u+z8h8\npZ84PVGdow+QLQ430MrFUThFQpLqGgo3yGAvbnbH2W6H0DN+2byQx3pmzpWr\nB9QnOJOuFhvD9kzL7+a5Zqsf983ZAhm6HvKWWuKZC5g1WffeUSHuOKhuuJqw\n6rHk3aR6CnflcbnyR06hvWRoVNtqSs1KzWjZqV728ItcwAooiAilYiXAFRpj\nMjAo504ZkiDsMJXANdh+zIgUxoRnTUqu7yTDi0uCYTTJ8nGQ1r5XHfQSEozL\nf7yZZO0OVePO9xWMBbtsTS46fs6zYf6PwAbGlFac1rgrRKY5nARD1MDGNw4q\nsL9GeqL14GMInx/fAsBJWvwA8/HcEH04tqf+ZQWUAKfEI9t/urPSPTvEVdry\nzrG46z9Lhu7FZmemesTJ+aLqPPxRMWP4LW0NRp17JUhWtixQRrB23lcr2IsV\nFDOD\r\n=KbLu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"e68863f8e63854b08ad13fb54677294ac6d6b681","scripts":{"docs":"typedoc --tsconfig tsconfig.docs.json","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.19.0+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","codecov":"3.8.1","typedoc":"0.20.14","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","linkinator":"2.13.1","typescript":"3.9.7","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.16.0_1612218795886_0.14795342189967542","host":"s3://npm-registry-packages"}},"0.16.1-alpha.11":{"name":"@opentelemetry/api","version":"0.16.1-alpha.11","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.16.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e116412ec8d045bf801a96a9c79a4c4afe0352ce","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.16.1-alpha.11.tgz","fileCount":138,"integrity":"sha512-u/p/eO+YsDxBSWTMEywSDYGcs95tRfhr6gI0HEfyJPUA0LIv6bImDuoKiyrslPkslh+AM+GrPPho2BXovkZWvg==","signatures":[{"sig":"MEUCIFky5+tX1bSHtiGYShIUn9w+BtSboEumMhaTVbDm3kSZAiEAqkhDgFidNsF6P6zn0wCyu0NFCDrqJSL2PE+6cuo0fC4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIWQnCRA9TVsSAnZWagAARjcP/ijH1s2SL+zIXkbU8H4n\nwNqcNJLs/Vh7Qs549nnhHjpibMvKG12IuyCdTVEnmWjKG6YA89f229nJ1tsM\n5s9ZI+Jy6wMZUB1uZ925E+KObbiThEuAPLH61yjYoNHpm6hAS7TyKapvDV3L\nETM4AbM52eGpBha/PmWKcNW802Iuak9K9QCOKI/zYwE+whLpR1wPbb6nMwsV\nVnDe3KPmmnkvFsyLaZzEMr6P3N/lnPkxnbDh52jpCQ8lZhTHx8AVCVMEoOf8\neqNeRZbUX44qd/Emei2FAL349j9ugEciqYmPmEmWfwgQQtJcznYNnA88rWJ1\nLBtElJ68iqronCvsFsBVEHgfxuRgeUvSpUZe3nqyVyegz6UAh0WrAEmpqbs+\nIaK0htmnoP3ChlzUOcb++hhUYLiMUlgH9ChaJtL3do0fUoRP2ha07OV/5YnK\n677uxzB2iL0NvyWjaAiliphIzwDpuMxrrb32oiaslGhp0C/buHTRSJ2p4lYj\nHW/AZ8eTuNZwzipCX0JShL3In+gvBCKQl3VdQi7dW4wXh/CN5KFr1ooTo83c\nVjPe5fzjtcTphriJSxxvOxdHxXdoN9GQ5M2mNZj1D29GVDUUlxMQOzmT5KY6\nbjOWScoCnLf9ISsh1EchnYZnp2YHka/vMGHPEvX8bcTe0lT827PXb2u93E0x\nDuC9\r\n=dNXg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/propagator-b3\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\");\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.SpanStatusCode.ERROR,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"70a128ff5dca16060ca7c2cff943369ae9999c34","scripts":{"docs":"typedoc --tsconfig tsconfig.docs.json","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/context-base":"^0.16.1-alpha.11+70a128ff"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","codecov":"3.8.1","typedoc":"0.20.14","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","linkinator":"2.13.1","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.16.1-alpha.11_1612801062958_0.7690074916494376","host":"s3://npm-registry-packages"}},"0.16.1-alpha.14":{"name":"@opentelemetry/api","version":"0.16.1-alpha.14","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.16.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d8e1c859d1180d18f9212f8a77674d81fcf4f0fe","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.16.1-alpha.14.tgz","fileCount":138,"integrity":"sha512-l3ep4BREUC9/cfsEMSiVknlTvDsWjDmVgJYQu0jOmwiWVP0OP79qeTNCPY+R4DCqaYR+7mWVuz2VeeWEkIdUIg==","signatures":[{"sig":"MEQCIE+RR3wXvSbjTZNn1uQG/UW5jA4LNTraoFFhsPdioWA8AiA+3EACYktCPeIYOmU03YKcVW4ybGbBr+ILUS9fjhHNww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150678,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJARaCRA9TVsSAnZWagAA//UP/jykii1ZFoCmxKUeR3+b\nbAQhVPYT/9lzb/R+27+zpmnLk0g23uotQSAC3V8VVCDVCGe8LiBUXerkhmgt\nxjR5E0HhzZ7VGVvGlJ2fQ4kZtbUuLw2aM/LyoYIaj0IN6dq9PXuAwOkHqh0i\n9N9Ruo9BOc+/8giyUoxk50UX6WxqvdOGNZs/UWlL+diKu9jwzuG0utVVdzhQ\nKdFySF53Ro81Pa0d9ZNC7B1tC//LguxkyKl0e5qyghypLBwHPD44ADHYOxE4\nA1pj/vLjQogEmiRywY26YSsENZY22xflRNoSAE4AcaLgqHtNq0QHGkwNDg6W\ntk58VYYYXYQvbJ2gWITAmHbCnrO/DyXQj0hfijTM87edmHw0aJ67NeeYXBYI\nCVY5vC7yP68mei6BReBhsY4YyghnGh4P7W5t0YFRtx0635w33AQWt58eH50u\nq7fHjJN6/KixhDEkqAQviduHMzec7/hldAJGT+P4r6dguf6CnDkeE2zXxHVV\nfWxqRI5ztBWRQQBZZOEgaDVYRjs5o5cbv6/icWKnnbMUiM5lycODev5otgLk\nJyKQVbFba/PnhzNbMz3I0X578HHDJnk1XChMeum2WTGQkTqGGAhztQ/Qq9FL\nHACRoMBWKhgbKPJVchqBsW6njg/73ezmsFqAvgBMaKfBWoJCPHkW/6LOvB1T\ndr08\r\n=06sS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/propagator-b3\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\");\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.SpanStatusCode.ERROR,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"000a8ac099a3848a9a3c66f4bdd4826b4cff987a","scripts":{"docs":"typedoc --tsconfig tsconfig.docs.json","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","codecov":"3.8.1","typedoc":"0.20.14","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","linkinator":"2.13.1","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.16.1-alpha.14_1612973146062_0.07723915647786939","host":"s3://npm-registry-packages"}},"0.16.1-alpha.15":{"name":"@opentelemetry/api","version":"0.16.1-alpha.15","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.16.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"817efd61296c2d4c1d7050c496826a99524166f7","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.16.1-alpha.15.tgz","fileCount":150,"integrity":"sha512-Hl0wWKQDGyAcZBPsyVwh2MA2cUTQifrZtaEzw/ba+wA7/eys5ZwtPA3Un8EIWaS69zOfUPM2TP56PnGbLLvWyg==","signatures":[{"sig":"MEYCIQCt0YVMMuUKbcwW5ZR0TIlSt3YAsLS1fM+ro8ZjOtKaHgIhAOjOtVNvOPJoUHb2pMnSphTUv2f4CQum32iS6Olqg95w","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":182639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJFuSCRA9TVsSAnZWagAAZjQP/0cfkwd+5UnoBHOjwxuc\nDph7bPNFeiqjGv29Ai+pVTrR6GT7ZRyQNTPoVTEqm3h+ImbZbYUcBsYgK7DJ\nergYfn+fVe7yByeHGXcyRd4xJqRrINaOyH3DqhXMU8dpAYjLzl+VoKrUjPiE\nyBjiGmsurJ5ZSiGdruloL8fd/+YYX9j84toub92LssqW1h1mFO3m2GKCKx6o\nwS3ALftArk+JBQfuxJFh0chAYbKdhKt31KIX4nTQdAxOwjSQmbC/b5r/QZkP\noOWd61xbfMGXZQ/tGBtQH5ICLjZHTRhi23JSIzFedG9G64PcZf+N54wuEiqC\naPLAvfhb3HDVY8LtsJTlbP5KyImOaBbfJm0IL6PyyyimRJSYTaYb6sscmb6+\n0kdJM07FbarCLLSK+TQkogFhfVXBptDA+gbBXLTn4JPV5S+5yvgCEAMpL2IU\n8HQRCxtge0nWItz3h0zQ/Fbfc8g3Wsf1WSIBgvegptT2i9DLJAjHTHaQkfuX\n5RmyzHeZs3CcuXP7T743tFKzho9n30M2IxoFkWgxwZmoso69TkYLrgUb0Uen\nk6WQVi1ZEW9fe8zIopbubPa0qxrKUAA0yAPelKyrlhrEcioBrrt0XEQGCpET\ne7Jox5Jc2uooGS4eosGnkgff74Ge5TLVipUlgkCtAW7NU5tQ8v+Ly9WOJAtG\nIQZx\r\n=/hDr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/propagator-b3\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\");\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.SpanStatusCode.ERROR,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"1d682c2f75f9d11265cfc1692fa822174594d4b0","scripts":{"docs":"typedoc --tsconfig tsconfig.docs.json","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","codecov":"3.8.1","typedoc":"0.20.14","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","linkinator":"2.13.1","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.16.1-alpha.15_1612995473924_0.09648780192353335","host":"s3://npm-registry-packages"}},"0.16.1-alpha.20":{"name":"@opentelemetry/api","version":"0.16.1-alpha.20","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.16.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7de64c09b619c5dd753a0ac48dfb6910b3460279","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.16.1-alpha.20.tgz","fileCount":144,"integrity":"sha512-VidmfATgIAXt30adASH+ohydkGh6pR/9QnxKsNb65W8rPkDExTk3RBZySYHlHeKfH0+fkRCaSBLYnv+J2AG9ow==","signatures":[{"sig":"MEUCIHldBCQulIAJb9E4AOMCuJu/1C8GPVN5wr7WxB/tYnBkAiEAm+uNx2WR/OyRksZWicjbsPjVmU28FrXtddGiwbe8ftg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":173191,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYHdCRA9TVsSAnZWagAARz8P/iZqYc2kuDxS63UbpV9f\nU/1EsJBKZ4YJqZkyDW0xqYCcwgGt4VeRkHdVGuLwaDbI142MEhc+/PP+sOxg\nXPlpVKhsxI/29iNpkyF319kbqnIXBs2hyonNd6c+AwuVW9CVPosFM2i+smkA\nC/jvTZHpJPIUn+OuWewwkSsyvcS2B3YlEajOWYCntZv5gxzOckRHxdbQHEli\nl3TjaZw/YyiP1Ww+J8yU/WOhLHO2iPSqRJhyp2dEzSTMab/Rt5RJfisTfTO0\ngXauVazV+QpMo6CE5rVhLvgAoh8h0TrvEZlGMZTJIt5evR9kOCPXx5fTEogp\nYxgXbw8MV4PTAjOoHNKd0UmMeBHie6YEATgEB1d6CTs0wrJFCs3d1e+xNiA3\njyMJHvQP/+dWVcSsyzmvAP55hcOh/ZrmUJtQ7YYy2s10JH4wlj0BG7fMvRLc\nR3jxHl3p4Wd1W2tCjGphR+1zWEZSCptNX/tZDWGL1wjpUUl8nBJ+yZOoWz/X\ncCaXI9va+JIKElRBPFwQrJXLUMamWrfmaCnI73SSlptlr6m4YL5WEOqMapfm\nPmRSd24q8ZW7T0uqMhuHGOk/5wfOgUEIYtnXwlgKYB3F/kLD7drfsi5SnxyS\nYwnyNB6i5BhNzFnYzIhr2DRbsul5pG84vwIGxpyg3/5I16XoPdyLUnjBrMh+\nQVQo\r\n=UN9O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/propagator-b3\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\");\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.SpanStatusCode.ERROR,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"62f8695d3fe5309c62418a1043bc6e8a176bc11f","scripts":{"docs":"typedoc --tsconfig tsconfig.docs.json","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","codecov":"3.8.1","typedoc":"0.20.14","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","linkinator":"2.13.1","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.16.1-alpha.20_1613595101280_0.06562596146073907","host":"s3://npm-registry-packages"}},"0.17.0":{"name":"@opentelemetry/api","version":"0.17.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.17.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c90e24acad7c67a26d2b8c86bed5b56785787a98","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.17.0.tgz","fileCount":144,"integrity":"sha512-Rr5NklomjXd7BqfGRs8lD78MvDM+tPeUdHNXilyRIgsUu3gKEKpl3ZgJMiI7gx5r94OqvNc5MukkwKK6xjWYfA==","signatures":[{"sig":"MEQCIDqckXBgAtmCKbAqF9saw2wBcMEGpi5i+gjpU7YJ+unxAiBgVaxPWnn34RGxCQ/EmTpXutSZaLEXelSznbVOhdcghg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":173173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYeNCRA9TVsSAnZWagAA6ZYP/3iZTTV/NSeuKDv26aOf\nOgo6vIirk82KvPw84wXe95WBP6b0Bz8Y2h8TIEuQR6/40EFaoNTdIhGs2UBK\nErsDEOfNq10XGEzp7EWzPHKEozGluxuD7VmEo5P4loMFLcwqvsIsrMJzeL+0\n5ItIb5hmGkd71+XX7UBjJ3Jn0mK3vU+b1Mpoi06kqdP8HehJqEryunPd9WB/\n7yEsL5jYQZ4FomukOa3IBvj8O6MdjG8sRsG55U1eQCc7mcc2OA26Te1aiY45\nSMSNws/QHQj9GuFOBSqLRuC4+/5IZJ2esrcAmfuWaTzjU2KQWbz0XYv7LCle\nJTSD2OFsn4nNyKSEEcGYasgn+pvXaeYKbDqXNPqFgaoy2g0XUJrUgdlw6cFJ\nJ0ANiyjABpX33hK15PjXveEVZlAYB9DVCtFwYmsH+26wfKbWHWnjLBNqh2kR\nmjxiYjcNwiQj6AdrCJJD9qPoG1qQ27NylbDhp3XuCnwt83P4KB+pXiL4/Vb8\ny2ACTt3N4USc9Te00J7cFnnfnQUOH7wfQniaQHyf0AahlKYd6BXPhJ+Eu57i\n8VaH4bkk1lXSqW32zjPncbpFvNkHuksql5hsy1gSJlblHLxXTrFBcZYHOPrX\nxh0yjju309V+SITWdCJVACueK/7pqFKlhKe/ux79JkcuzMikyU8+aK2GWa+1\nTCAx\r\n=/C8K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"docs":"typedoc --tsconfig tsconfig.docs.json","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/context-base":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","codecov":"3.8.1","typedoc":"0.20.14","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","linkinator":"2.13.1","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.17.0_1613596556995_0.04943939578351464","host":"s3://npm-registry-packages"}},"0.17.1-alpha.21":{"name":"@opentelemetry/api","version":"0.17.1-alpha.21","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.17.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9355b48b2ed4fce91c7e00d6abc27ce43f2f78fd","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.17.1-alpha.21.tgz","fileCount":144,"integrity":"sha512-HXgmeF5oaFLwV2bTex6QjFiQtaC4qdS4cUxGDDdd2a2WIw4EpkAP0qwSdpz+dNnsIBMTTnMpQoZSR11FImJ1/Q==","signatures":[{"sig":"MEUCIEl2ZK2wAaEtjiSe3HRo1sG6gEZrP+AuQ5/26UAcVpuNAiEA6y7o+OZFvjSzIGa9euXCU3nepiMmdYY7UrY4JaySV7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":173209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYexCRA9TVsSAnZWagAABW8P/0VYYK2J36DvW+ecHVpy\nwrR3WQJiqB6FXR7ngXHL10LvZ+KNR6IwRDVsHJNfGWj/q/NzTEXQZBPr9bbi\nAewmtldzzB3HkJZ0pID+ltoG338FKg0SNzLnahyWRrLLZwFprErNGn6iTngU\n2x6QTctpFydBMc0P65c8Oo/2tTm76QAlEvKpM9m3bTJfaaXeXQFUEPtPCH6o\nCrBJ+B4LsM1gfVLzhc7l/SlbhqGrbJXyb84ocp1CCgBL4IrbBTT+dMXyhz4H\nWgnrRZgLxRx20o5aZ6R6SlNlFzmoNqqVwPRE6gWUEpFBhjWKWSSa2Ngz1gwT\nX7afVtuAezHGSdEIbQcMwbk2iN2iq6x43LOh9Cwb48lUWscGuPTu0AfuN6kK\nxufmde+ujPxsQMZ0xGHhGtRrHje7gA897Nq9nqbXTuLJGiZvxIVzwbhI1Sx0\nU2Tpgf3hKu56NZOgnvCt5q91ONjJ8UIuy1wNxXU+2S+VJ4LU3ZnbJ9cNHTpb\nzbL+q4Zn0Q0KZ/nwb5AdniRXPJRSgIZt50ZKJQU9XOe6jbfDnKtb7v95yNyL\n62dXx+hpklF7zITj4OYkvox8uA2AaMPuBFuI49j3IYeKiG0ewmpm7ym3O1W2\nbkQPHw1gXRDQHNpHYTJsec1BKfkp0s6q8v4qNHLKcFxhR8/xwDLZVdbY2mQ4\n9g46\r\n=OxXK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\n## Quick Start\n\nTo get started you need to install the SDK and plugins, create a TracerProvider, and register it with the API.\n\n### Install Dependencies\n\n```sh\n$ # Install tracing dependencies\n$ npm install \\\n @opentelemetry/api \\\n @opentelemetry/core \\\n @opentelemetry/node \\\n @opentelemetry/tracing \\\n @opentelemetry/exporter-jaeger \\ # add exporters as needed\n @opentelemetry/plugin-http # add plugins as needed\n```\n\n> Note: this example is for node.js. See [examples/tracer-web](https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/tracer-web) for a browser example.\n\n### Initialize the SDK\n\nBefore any other module in your application is loaded, you must initialize the global tracer and meter providers. If you fail to initialize a provider, no-op implementations will be provided to any library which acquires them from the API.\n\nTo collect traces and metrics, you will have to tell the SDK where to export telemetry data to. This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends]. If you're not sure if there is an exporter for your tracing backend, contact your tracing provider.\n\n#### Tracing\n\n```javascript\nconst { NodeTracerProvider } = require(\"@opentelemetry/node\");\nconst { SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\nconst { JaegerExporter } = require(\"@opentelemetry/exporter-jaeger\");\n\nconst tracerProvider = new NodeTracerProvider();\n\n/**\n * The SimpleSpanProcessor does no batching and exports spans\n * immediately when they end. For most production use cases,\n * OpenTelemetry recommends use of the BatchSpanProcessor.\n */\ntracerProvider.addSpanProcessor(\n new SimpleSpanProcessor(\n new JaegerExporter({\n serviceName: 'my-service'\n })\n )\n);\n\n/**\n * Registering the provider with the API allows it to be discovered\n * and used by instrumentation libraries. The OpenTelemetry API provides\n * methods to set global SDK implementations, but the default SDK provides\n * a convenience method named `register` which registers same defaults\n * for you.\n *\n * By default the NodeTracerProvider uses Trace Context for propagation\n * and AsyncHooksScopeManager for context management. To learn about\n * customizing this behavior, see API Registration Options below.\n */\ntracerProvider.register();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Advanced Use\n\n### API Registration Options\n\nIf you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.\n\n```javascript\nconst { B3Propagator } = require(\"@opentelemetry/propagator-b3\");\n\ntracerProvider.register({\n // Use B3 Propagation\n propagator: new B3Propagator(),\n\n // Skip registering a default context manager\n contextManager: null,\n});\n```\n\n### API Methods\n\nIf you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api` package. API entry points are defined as global singleton objects `trace`, `metrics`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API.\n\n- [Trace API Documentation][trace-api-docs]\n- [Propagation API Documentation][propagation-api-docs]\n- [Context API Documentation][context-api-docs]\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\n/* Initialize TracerProvider */\napi.trace.setGlobalTracerProvider(tracerProvider);\n/* returns tracerProvider (no-op if a working provider has not been initialized) */\napi.trace.getTracerProvider();\n/* returns a tracer from the registered global tracer provider (no-op if a working provider has not been initialized) */\napi.trace.getTracer(name, version);\n\n/* Initialize Propagator */\napi.propagation.setGlobalPropagator(httpTraceContextPropagator);\n\n/* Initialize Context Manager */\napi.context.setGlobalContextManager(asyncHooksContextManager);\n```\n\n### Library Authors\n\nLibrary authors need only to depend on the `@opentelemetry/api` package and trust that the application owners which use their library will initialize an appropriate SDK.\n\n```javascript\nconst api = require(\"@opentelemetry/api\");\n\nconst tracer = api.trace.getTracer(\"my-library-name\", \"0.2.3\");\n\nasync function doSomething() {\n const span = tracer.startSpan(\"doSomething\");\n try {\n const result = await doSomethingElse();\n span.end();\n return result;\n } catch (err) {\n span.setStatus({\n // use an appropriate status code here\n code: api.SpanStatusCode.ERROR,\n message: err.message,\n });\n span.end();\n return null;\n }\n}\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-api\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-api\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-api&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n\n[trace-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/traceapi.html\n[metrics-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/metricsapi.html\n[propagation-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/propagationapi.html\n[context-api-docs]: https://open-telemetry.github.io/opentelemetry-js/classes/contextapi.html\n\n[web]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-web\n[tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-tracing\n[node]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-node\n[metrics]: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-metrics\n\n[other-tracing-backends]: https://github.com/open-telemetry/opentelemetry-js#trace-exporters\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"docs":"typedoc --tsconfig tsconfig.docs.json","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/context-base":"^0.17.1-alpha.21+a91ea761"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","codecov":"3.8.1","typedoc":"0.20.14","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","linkinator":"2.13.1","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.17.1-alpha.21_1613596592759_0.8115436125437374","host":"s3://npm-registry-packages"}},"0.18.0":{"name":"@opentelemetry/api","version":"0.18.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.18.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"4641879f16de9784bb00023ab0de5ca219ced765","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.18.0.tgz","fileCount":160,"integrity":"sha512-KczG0mtyH2UQLeFDYC+atGXfS/MfttynmHblJUsOnIgfI0Ohn0nJOgNjKwJlHk6/9Q61CBTxzSs/268TDaopVw==","signatures":[{"sig":"MEUCIQCBHh2QpSU72QU6Dc/OnP3LaS9jpNTOtMF5lUMC6jQmNAIgF5m8Qwkpso/nvIii7FUmp/SNV1JhAeJ8FnXB4yBV3fw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":184161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOWCgCRA9TVsSAnZWagAA5K8P/RZfTjZFUJnuQ0Uhu8w9\nCj+LteElcQosrqEHCNktqIvKhKbeKZks9UKyBHbov0WmCZOpuSO3N5fie1Iy\nR5afP1g0wFBUIszyV8IFc7PXgd/ebm23NKJAY96i3XTTiY0ksmxzymeZBg33\nTUDrhqaV0RRhBtdHF55ZE9nBfqgIv8NGNJJvTk4dUX5h1ztm+woSXLqeD7Q3\n4IvZwwqXhf1HF4d+VpdTWxnoIZXAC3BGD+OjL+3+0WkPWwBKcyk6GUVPEBb7\nWxmGKI8iqeR6Bo5gAjjljpU1sgOjWF+AYmUPXRzN7iLwH87jHY8gIJV9InKM\naWjulwyokUn9PZxaLLC+U7mMXhuStesUuSt33vCdOAJ0BSpfYDkUYb3ibKcI\nzCx4Z65AD0xgP9+bLAblF7PTP4cZ+wwEzLK67lUWD5o+X6WvARuFWV/M3iEG\ngzkdhu+WKzw1/ZJjzJUCKcv2mS6ed08fvDmqTMx6eG0NQ4Zsxx6RmpQjwzqd\nOhQZjXvu3hQq+DhIOzAgj105/n6NyCeIQRTThvUb8H840hHgTVKFdFKcszPF\n3zaw4crvJ7bw+vAhDCTDn/w3IhwNtG8phRdNkX1pJA0rxeKU9hVisOrxZEQz\nL7JCqcveQMxI4L5lh7XNNQx+vObjSYpCMtBNwnP0Zp03f0pgp5gN12u8ioz3\nGaai\r\n=PK0u\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"493daa12235a3e2d4d6d263104b2bde4b59282b1","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","eslint":"7.20.0","codecov":"3.8.1","typedoc":"0.20.25","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.0.17","linkinator":"2.13.5","typescript":"4.1.5","@types/node":"14.14.28","karma-mocha":"2.0.1","@types/mocha":"8.2.1","@types/sinon":"9.0.10","karma-webpack":"4.0.2","lerna-changelog":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.15.1","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.15.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.18.0_1614373023795_0.9158498902086578","host":"s3://npm-registry-packages"}},"0.18.1":{"name":"@opentelemetry/api","version":"0.18.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.18.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"fb499e07afa1f55acffc47b2469eb218dcdee2a2","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.18.1.tgz","fileCount":160,"integrity":"sha512-pKNxHe3AJ5T2N5G3AlT9gx6FyF5K2FS9ZNc+FipC+f1CpVF/EY+JHTJ749dnM2kWIgZTbDJFiGMuc0FYjNSCOg==","signatures":[{"sig":"MEUCIF7N7P76pgDCWPlKWDkinBzu2tK8lW2uE/nOnUmQWVHuAiEAxP/+PutxJjZBZbvigPZb0dnZV/5QOMLHEce787TUbw0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":186205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQpYpCRA9TVsSAnZWagAAMfIP/089kpQA0nqG1bDWe4bc\n6TmZBDHXXHD2rdoYP8Qz9zCrgIR8y0ovf2cMykBIhp6MSYCwwih4/gakodQs\n3zBXcH8x4f7AymFTIfQ5UYy+Rjmj7o6LtKPI8ggXOhbwVMBFFTKWBFRnMCmA\nc6u3s6Oo0TIMVANzrspCufPZ+uiJZdYeO5YEkRl4WzWJ9s61OVmukDdVIzm6\nRd0V9vdq99nZKDdo7xDkiu4LTwN/LVBmkQwNzR/dysOENnKbnYuz+bgaTvr7\nvFY8E+EePBBRBSS3zhB4MzMr5fzfW/KTuAWk+4fTJl/vmO3RtJlBav7yrBK0\nKWdCRfXpr9TjeYGwsBZmvlk+qw8Lr9BcytCKBiQIdi/wSurAHVv3zm4MBb6N\nnuHaIr2nzMPyby9m8w5SVjkR3n6FQ6iUNLFthBRpAujUWtnFNShv67CX0x0z\nK1lzMFFERiFJZMfM48zS5KouAUkPPcD6Lv0IVfMlTaCRkSH/7vhQKrtHgHRa\nWoWohAczo7k7gCDphvVsY2yIyp4Z5nlBCa5HHb8FWZfjDm+u+bpraA4SuRPl\nyvtb5Hq3bZFngaeytB5Ckr9O2JYT5YNfW9NA3q9+/ZFtYJayGu+1AcoNy7Tw\nPJ+QAXOD/pU2Ax/jz6vuNV4+KPN8fuqJiMjI7WzgVYOl72FQGgcabpsc/rRM\nsYSS\r\n=cnRG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"0c5a41e13b0979bf9e76d3a2ab83e339faab4808","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs-test":"linkinator docs/out --silent --skip david-dm.org","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","eslint":"7.20.0","codecov":"3.8.1","typedoc":"0.20.25","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.0.17","linkinator":"2.13.5","typescript":"4.1.5","@types/node":"14.14.28","karma-mocha":"2.0.1","@types/mocha":"8.2.1","@types/sinon":"9.0.10","karma-webpack":"4.0.2","lerna-changelog":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.15.1","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.15.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.18.1_1614976552566_0.41474010906993297","host":"s3://npm-registry-packages"}},"1.0.0-rc.0":{"name":"@opentelemetry/api","version":"1.0.0-rc.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.0-rc.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"0c7c3f5e1285f99cedb563d74ad1adb9822b5144","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.0-rc.0.tgz","fileCount":160,"integrity":"sha512-iXKByCMfrlO5S6Oh97BuM56tM2cIBB0XsL/vWF/AtJrJEKx4MC/Xdu0xDsGXMGcNWpqF7ujMsjjnp0+UHBwnDQ==","signatures":[{"sig":"MEUCIAriqSwPzWmU6+ET9hzHgiimIPX0Pn7Uk8Un1S3S/oYxAiEAzG8Q4hLyOJqsh4bpM23IE3HRD7D/NAS1k0qKFFXhbKs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgS6E6CRA9TVsSAnZWagAAxqIP+wV+iKm3K4US7a27D5+o\n3YdqJRElgdCYq3pW5JoGP4ZTCYNs4o8hUaJ2P2AZQnwHNJjlUb6DBkEJaXqQ\nOT0bXY8RU9O4rzZX3l93mguxu9U7z/jTW/J06CpjHbAYlQ1HJ6++rYT+kj78\nM2ZYr+5nUPxKmn9Y7SBhr4MkObUx0GT0CmBtZ80/zddVi3WZYsAr3cl4V3ac\n0qzRhSHC+kbguXOVvLGLdU87uneEfL9p2OOiJ1AIfSmY3F8JUDX+kl98UXlQ\n6tJYZ3rXnXBOXci7YyLa2VjjRJSDc8q5vYf5sYTOTSDMsYfkg4mYBPNFb7GG\nKgsIbH04xTWWB3dJVH+eyzXlV1h4awRERu8G586b6A75x6cXRsLUeRaHf4O3\nMEOW5Wc+TcukUyci532D8La5JeQ5ZvZ5e3RGjjKmpqRMT9IpjHdaSqLIX5qE\na6af8gGD46jS+G19Ml+tzlkw9hivk74ye9daBEQiiGYuZLJLKzz5EXQEXnT+\nO6bsHkiL/leBVPm4iLhMHy8bAARFFl2reYLMmvutK/cCSqWYb5u8K4a67Mwf\nC5/w5T7SzQGNTb6IhGyVNLYs2Hs+qm/F4ZJj8iLT3BElezGShfP/4dxHCxir\nZv4i17e2evKWoXsRLvFyuvkEfmdhCiLGYUgakV6xEVwjObWCi9CofpH9hCnD\noqRK\r\n=IzTM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"504041a8aa8442987a95f675af0a402084678682","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","eslint":"7.20.0","codecov":"3.8.1","typedoc":"0.20.25","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.0.17","linkinator":"2.13.5","typescript":"4.1.5","@types/node":"14.14.28","karma-mocha":"2.0.1","@types/mocha":"8.2.1","@types/sinon":"9.0.10","karma-webpack":"4.0.2","lerna-changelog":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.15.1","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.15.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.0-rc.0_1615569209615_0.9333898318169607","host":"s3://npm-registry-packages"}},"1.0.0-rc.1":{"name":"@opentelemetry/api","version":"1.0.0-rc.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.0-rc.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"ad68cf20e361523d9a6fcd3589add8695ea10343","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.0-rc.1.tgz","fileCount":310,"integrity":"sha512-bCPRNOSgqmeDY36Q4J5ylbBtvHfQ0vzPmRaQ1JQ04MwTJclE8/By5jgDtMe9Kh4tMxDUKHIDAzJi2Bo7uxlSnw==","signatures":[{"sig":"MEQCIH/ThtfwBP/2dv6whobqi46Klxcmwi2YeS+c7JCnsBSkAiAbnTCP9KrWb9Oa7y9WrVuwOcGmvCVVmeXrDbExZqF/JQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":358580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpA/TCRA9TVsSAnZWagAAfxwP/1F5o/ZpNi+Ws4wTvJXj\ntMUKE7PJ9X+KVD5VXoO1ai0iLkKpMvKSQvJ5Wwol+t7QbP+1Q7J+52MMiYZh\nZL65wmP3ywJquWEYkToHDx3VaAoeistXOiyr24SEQ34O6PQFkD5YC7pXF8if\niO4T9HnVkdJ5Gd5X2Tl4QRCpkhlnxG5TdSE0SCLn8fOnPaoF0EGMVf+qkgp2\nvRw/ZfwDkmkGCy1EDRAGJs5QhEnckY341wiO9+5HxdR46RP9xuYr3mabTZ5w\ncm50tczroEfctwegJQjMgystXcyubPn9djjy44OQpqqAJ6Oj1a2dMBP2H1kc\nqqpDn5dvU1Eu3cMxf1jODjGkbCsFJY6po6I6ti7335vhPocoZq9yf6BE99YG\n+lbMwZ9Hr36co27h/sS2u0YvhLD29HpG8vIuLj1a5g4+ezn6o0Tg6UCLQRnJ\n4Dha00bvGs5CAZzIIMf3otITNcDvyxVBxOGg7m3KPS1M8nugr8VSby6HAI8P\n0R0OR8bPVP7QL+n0JdYawqJjOdOvfGGbrnTim08/pwf9R8gObauBuLyboVmn\nVkHN8AZH2RxhX4IihtDA8x6T/rAYxljqDwGGZA49Ec5F6Y10WN5Ya4IQe23P\nMmFyyqEMN3nPotok9/QMKvQ5ueGxNeU+gqnGrITVKM3+O9+U2VCUBTwhTWy+\na+z3\r\n=OAv8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","readme":"\n---\n

\n \n API Documentation\n   •  \n Getting In Touch (GitHub Discussions)\n \n

\n\n

\n \n \"GitHub\n \n \n \"Codecov\n \n \n \"license\"\n \n
\n \n \"Build\n \n \n \"Build\n \n

\n\n---\n\n# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\nThe methods in this package perform no operations by default. This means they can be safely called by a library or end-user application whether there is an SDK registered or not. In order to generate and export telemetry data, you will also need an SDK such as the [OpenTelemetry JS SDK][opentelemetry-js].\n\n## Tracing Quick Start\n\n### You Will Need\n\n- An application you wish to instrument\n- [OpenTelemetry JS SDK][opentelemetry-js]\n- Node.js >=8.5.0 (14+ is preferred) or an ECMAScript 5+ compatible browser\n\n**Note:** ECMAScript 5+ compatibility is for this package only. Please refer to the documentation for the SDK you are using to determine its minimum ECMAScript version.\n\n**Note for library authors:** Only your end users will need an OpenTelemetry SDK. If you wish to support OpenTelemetry in your library, you only need to use the OpenTelemetry API. For more information, please read the [tracing documentation][docs-tracing].\n\n### Install Dependencies\n\n```sh\nnpm install @opentelemetry/api @opentelemetry/tracing\n```\n\n### Trace Your Application\n\nIn order to get started with tracing, you will need to first register an SDK. The SDK you are using may provide a convenience method which calls the registration methods for you, but if you would like to call them directly they are documented here: [sdk registration methods][docs-sdk-registration].\n\nOnce you have registered an SDK, you can start and end spans. A simple example of basic SDK registration and tracing a simple operation is below. The example should export spans to the console once per second. For more information, see the [tracing documentation][docs-tracing].\n\n```javascript\nconst { trace } = require(\"@opentelemetry/api\");\nconst { BasicTracerProvider, ConsoleSpanExporter, SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\n\n// Create and register an SDK\nconst provider = new BasicTracerProvider();\nprovider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));\ntrace.setGlobalTracerProvider(provider);\n\n// Acquire a tracer from the global tracer provider which will be used to trace the application\nconst name = 'my-application-name';\nconst version = '0.1.0';\nconst tracer = trace.getTracer(name, version);\n\n// Trace your application by creating spans\nasync function operation() {\n const span = tracer.startSpan(\"do operation\");\n\n // mock some work by sleeping 1 second\n await new Promise((resolve, reject) => {\n setTimeout(resolve, 1000);\n })\n\n span.end();\n return output;\n}\n\nasync function main() {\n while (true) {\n await operation();\n }\n}\n\nmain();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Upgrade Guidelines\n\n### 1.0.0-rc.1 to x\n\n### 1.0.0-rc.0 to 1.0.0-rc.1\n\n- Removing `TimedEvent` which was not part of spec\n- `HttpBaggage` renamed to `HttpBaggagePropagator`\n- [#45](https://github.com/open-telemetry/opentelemetry-js-api/pull/45) `Span#context` renamed to `Span#spanContext`\n- [#47](https://github.com/open-telemetry/opentelemetry-js-api/pull/47) `getSpan`/`setSpan`/`getSpanContext`/`setSpanContext` moved to `trace` namespace\n- [#55](https://github.com/open-telemetry/opentelemetry-js-api/pull/55) `getBaggage`/`setBaggage`/`createBaggage` moved to `propagation` namespace\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[opentelemetry-js]: https://github.com/open-telemetry/opentelemetry-js\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js-api.svg\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js-api\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js-api.svg?type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js-api?type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n[docs-tracing]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/docs/tracing.md\n[docs-sdk-registration]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/docs/sdk-registration.md\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"da597304cb6b0b944514efd3df6b93c9e5043d7e","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Contained changes incompatible with 1.0.0-rc.0. Please update to 1.0.0-rc.2 to revert. New versions will be released as 0.x.y","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","eslint":"7.25.0","codecov":"3.8.1","typedoc":"0.20.36","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.2.4","@types/node":"14.14.42","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.0","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.22.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.22.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.0-rc.1_1621364691162_0.9387718191369825","host":"s3://npm-registry-packages"}},"1.0.0-rc.2":{"name":"@opentelemetry/api","version":"1.0.0-rc.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.0-rc.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"f63c845621f1e7a68ce024842e0bb6b63d982473","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.0-rc.2.tgz","fileCount":4,"integrity":"sha512-xXKfllRoe2qFsJVVm4XgmhUNbRE9OWkmHaznGLRLOcMEPSMP6UfF6l+pU0HpxpHSwAlZJXNo2ebswDqHxqELNA==","signatures":[{"sig":"MEQCIELo4EfNVLRIfWt8KjNdxBu1FLxr21oYB+nmbLmIHvOlAiAv1RC2Iv9+IOdze7hv8NL0dPovs+9SegW+87P1lJgxvw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21244,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpQHtCRA9TVsSAnZWagAATDoQAJkaKoK9OxA+EDL+R9zR\nfKwIfbujS1NKUqdqOPLaAhdK14ylN6IkVxBIO/pS3v5lQdenovJznfg0a3Sc\nzWq36vb8lOHSnW93daSmkbwcEI0cJ1utQPvKB16FS1Ckd1IVsA36I4eUbTeB\n6JYtpv52E4nYx62tHl0vVrsbnTdmXiJzpxKCs+ROayq3x69WYwn3Gb0czvT5\nNZ7bHjOIzWpWe+TXL1FaLL5Jc9XoH4AQMGK2isdepWU7PBhlYDHB/iD6JcCd\n3oiiXo4nyusoSsOAq8f85DQYxMR/kvpALxrF4Im5Wh8bJ8YqDNVjfCZt/1i9\nH0e1ClSi4TAbuQcZj+dtxZr5uSIdVzvoKAJ3c7yirKhptiIoLuvIc7TG/oon\nlK5latDvVIiaXvLSag+L6Bx8GtzN5qMKEUEdP/41T1mKlWXCUFhHsTKsx6WZ\n6i3mzMS4V4GYhVeC/Pux6myv9tHcjpWN5qC0j+cinnAK1Ssfd25vvn+QtS5c\nXVlRUvOx/xvZSHwim58MfoC2fI8fneI9Teb8pqRbvhhKGRzV2Zmq6V0a6ISG\neLal4cOvIU6rNgAPtJV8VBe4ga/kPlErKjpvBs7kcl4abA/Y3nBZQZmpedNo\n+en41L5FtIsOO7wz61tDkTTcLW/9PpTMojThQFj9FFPgmmty+v3AMJZxuR0J\nenoZ\r\n=HIpa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"ea37cfecdbff6598558a3545cccec8e13dd25a91","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Missing files in the distribution package. Please update to 1.0.0-rc.3.","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","eslint":"7.20.0","codecov":"3.8.1","typedoc":"0.20.25","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.0.17","linkinator":"2.13.5","typescript":"4.1.5","@types/node":"14.14.28","karma-mocha":"2.0.1","@types/mocha":"8.2.1","@types/sinon":"9.0.10","karma-webpack":"4.0.2","lerna-changelog":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.15.1","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.15.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.0-rc.2_1621426669490_0.652050118574828","host":"s3://npm-registry-packages"}},"1.0.0-rc.3":{"name":"@opentelemetry/api","version":"1.0.0-rc.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.0-rc.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"903ef6dddf04410d09072d43a060b87ccc162545","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.0-rc.3.tgz","fileCount":160,"integrity":"sha512-3PlJD9uN5iZrKmX054vOifGxZ/iH24+UFD5eW8Vyz08GUU7SdW8PNu4VSpTixWeuWo+Q6TELfSv7vVu43t+tbA==","signatures":[{"sig":"MEUCIQCW4A/yySfXGE/gob7foWtZun0q+VJ176u0tjhYw8c4CwIgczmGeZE3c0U5ANhPO6tr1z2lFXb9QFfsoke1F6bdV7Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpRUICRA9TVsSAnZWagAA2gkP/3leRMPBuXGxeoIoB3YW\n87wskQYq+pXq0IKa33BD8aHU0sQkaVSeRdcDJfLEgOh+FsbrioR9+vE32m+E\nsyGAuH7Mz+th7MK3IvraqPD+U270GXsL70ptLKe8GAHMq6/16fyeer7SFOmQ\n8zIgmqT7TkQn89jXvXZDzcPs0o8GZ0ufyJ8mhXkW1FlOFcxal7hFMWweW8QY\nX5f7r4VtoXBgq1c6iy5s+JF6ItDAVgeo8qKV7lv58cvJfQdTralZKhec97wQ\nNos6JeQKwd8Sz+MvkZ4O1LgESqAInPOi9EW7xqL9d7AwFm3pgKYEIUyN+Ayy\nKn4LwU1/oYhsDk0VI2vY18s7vm+RjidhGLiriSvVCUnsX17f80M2iKujyml9\nY7oJqGl46LBkWZDiabX9y3/6pp4zgftkXybNu1oM+fhNKmnkWlS7hdEVzdwe\n6TDy1O/erdDwwakoqPHLLO8tYqdzXrjIUAR55BMEaC8wHVreNvKWHPN2yK+t\nDJ3bSLpollxgJ2V41lzFI6PATWLZxFB/POKDCZ0ylKi8s980D9WVQOHwr8Z4\nieChUxVM1DeNb8TX3g1oP0lxxZZeigqrFJTPq9pJQN4u+ZOw1qo4e1u1W25A\ngIldY7cviKLo5l9rjWNG95PF0hZxu0q8zAhdssihv0ERA/HH9iq1rbPr0dgl\nj4or\r\n=mvVX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"791e9f7f9e9ee339c5cd57a2245891f85e8e5147","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","eslint":"7.20.0","codecov":"3.8.1","typedoc":"0.20.25","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.0.17","linkinator":"2.13.5","typescript":"4.1.5","@types/node":"14.14.28","karma-mocha":"2.0.1","@types/mocha":"8.2.1","@types/sinon":"9.0.10","karma-webpack":"4.0.2","lerna-changelog":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.15.1","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.15.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.0-rc.3_1621431559180_0.18345750516195514","host":"s3://npm-registry-packages"}},"0.19.0":{"name":"@opentelemetry/api","version":"0.19.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.19.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"d2997338c106ad8b00d4c9105fcbcadf1dac4ed5","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.19.0.tgz","fileCount":310,"integrity":"sha512-v+6ZPQZMKKRVCwLMdjfkrUhBNIQMPrbyMo2R07LdLpCKmq3KlEeyua2LsI19WgTWIj9R9QgqfD8EcUgyxUiw+A==","signatures":[{"sig":"MEMCHzZj5aK44IQBbQoUgAxszs+eQBO1j4gBWMi1qCocCNoCIBQT2NnLMvePePbOSgvu8v2DVOQAF8gLPWFmWLR7Fq7E","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":358560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpRyJCRA9TVsSAnZWagAAGm4P+QF+kErLH85247nHP9D4\nfrxWBVfMv4J/F8oPeEZIXq2bRikSOguiJwQlva27a+6n38gUWYDL1H29N+Vz\nPar9maxGzcIBVJDtje7G7jZ979HyuVfNe8kRpS8i1gIz16ZS0jlIC+U+6v6y\n1spTKlZw/EITJXBlkvR1LCWGwTIrZgeFuvw12QVoOWgK6/OTOIl8Rn23KUY1\nGNbOEDVNs7tSui0D0M2jiM63RjSSne6J775Oqj+2ECk8Y1YI/xH3GxLljcax\nDZVQp2vbpjKMwR4ZmQ3QSQYFULMHN9Jz4MYmCP6W32ppvXkccnDCq/ZnKIuG\ndLooHnkQG9WI+CEiljWo4h6QlCFhEMFkAgY07ha6AtthgyxLoAEW6zysIL73\ns9TtQ32JwjP7zHUl98tMKgGvbbhCd48gbhkmshEl/XPMSrGETm8u2pwbXTcR\nhO/67009Q10D6F8gdN6caK/ico27LYIj38oWjgnpFTmeci7hvWs4DSkTML+2\nj3LctYvSrUGV6qpsrinqQM2udHn2+2oU2Zewua8ZHbaT4gfklzrhEafY1VCi\nZR8t3N5GMNx/7FgtIyuPbgpS0aofRKHb0i6q6ivws5Eg1zpgJTauCg3AkcJf\nc3Vu2MwY0CJ001p+UvoYh6eOadezz3EFDJbYsMG6dSLkCXGjgQVjMJI8O9RC\nCgKU\r\n=/RN3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"8bd1c6e5d2cbff86851016f2c1948a01f02a5105","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","eslint":"7.25.0","codecov":"3.8.1","typedoc":"0.20.36","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.2.4","@types/node":"14.14.42","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.0","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.22.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.22.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.19.0_1621433480608_0.251099208329693","host":"s3://npm-registry-packages"}},"0.20.0":{"name":"@opentelemetry/api","version":"0.20.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.20.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"d4e26d30dc0c5da697d1ff51434ad8f0cf30e565","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.20.0.tgz","fileCount":310,"integrity":"sha512-n06MtDYEc2H07S/NTvGMlxF2Ijp0YbNrI/rBgLcxpEh3hxOkPZA12gxlUoZkBHWCZYau2j3b/uL+QFpiQKOjSw==","signatures":[{"sig":"MEQCIAkPLgmwkLht59P9eRvrKLiiidy9RMBcItAHJvlJXbcOAiA52yYvt+TW+iSe+pXCzxIueO2Q3opf081rrfspZINb3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":361954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgq5ZWCRA9TVsSAnZWagAAhwoP/jewlq93T98q9h2r+N6X\nWFlSBc9ktOA8gmzhgV9vFfvvWTJO3MJ7+IoqrBuMLEZsuPChEabHEYqidZHg\nVdGsSDBOxUvb75bZBul4AZvUPwW0INsXAY7yT85kwRTZR4suHbOQMh5lPy0f\nV9mNISLHb8bs4NsNpkcvekIXMPgaM+sCRq/SmBdcOZEK2im7p2w+/1lbraTh\nKBr06RM+M6rRcPk7OYUzR4flfB//tba6sbsqqri22UeYEsFCy19/zv36qnN1\n55SZgO5bxn/mOaE0EDjmFFqPXHPxxUqnnOlumROG6nDK0MTB48G8LkCTJlop\nUbJMh0q+P+mPmTWZS+p7ts+kIxXgSGHYQOFwEQo0fGd6mYeRxB+YY+VZB6wx\nPH8przx77AaoOy6Ncp+p9bjjPFqMT9AdSUv1fV/AQIoN7YRyezS8QLQpalPM\nO6cENEchWt4YGBtJY8r7va3SYmp78FdzqbPWgsi7DoqZ34+hHZVpMNdot3Wn\nUlkic+n/HoLWqp7kLd1MjMJrm9irFU4aGe4gNXJD7KIRo8T2vBbUN/EAlC6g\n8POSemWhO5v8S8BY+rzjtl0huuyXbLWzcOFbvs4442MHhcUfO+v8KBre9lY6\nrsP3UFX3SDixllkm6wrXM8QcOzjIMn6/qT1yFNtyybsuacKNS6It6WFCg0Sq\n6dbd\r\n=C1Uq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f6673258c06ec80f03dbac102c2ebc32a1e05d31","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","eslint":"7.25.0","codecov":"3.8.1","typedoc":"0.20.36","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.2.4","@types/node":"14.14.42","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.0","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.22.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.22.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.20.0_1621857877721_0.06068974397357141","host":"s3://npm-registry-packages"}},"0.21.0":{"name":"@opentelemetry/api","version":"0.21.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@0.21.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"aa360bf840ec70a7a056c6685aeed47af408cacb","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-0.21.0.tgz","fileCount":310,"integrity":"sha512-Q7hHb3nidPgnBS2fi+y3K64F3EV48d9v09/6EtigIgVF43NFNhw/dboDKC7gECEkbTwuvFeLCbwKs9JaC8LDEw==","signatures":[{"sig":"MEYCIQCdpdB2Nj5P5LHQ/QAD+NjjxksA3FHFI0mYpllSnJGgBAIhAKrsWMXLKRc0NlXn7/E9s0CZrCTkUIE/Mr9eWV/me54F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":363649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgul6rCRA9TVsSAnZWagAAUEQQAItjJXDma1vnrYxzepmd\njKX+xL0Ep8uz/lqqirnj3M4qUN/PVF6+kr+H96heVRanXTi4ccqxe5YTdz7I\nTT1Rgv0+yifLLZhNYRLQ75UsLAmZjLPbnVZC0Nb/9kA6oW6zlTauQlCV+6TE\ngkR8jHyUmFzjN9sqbagBP0VBUzT0pc7RQZZygOp4DxCM06NQbGJqxpcUSEx1\nW9qXQLHUkWWBOCj5GQwmt0qvDVFyo8qGi7Ily5JUWGqjdQzAKigWJhfkIs2H\nxd81pLR/TykvrUvbp8uFmZ+51A/aE/yEEp2P6X/qpMjs+9eN+F3z/0MELX4B\ncNN5yrANXRt7bWuIwNGk3SVEYfG1nwmxzxyoJQWrEnsj2D4HfoVddNNwnLp9\n7XBCv7JTnJM6h40Icmtv72KvBfzZYZanbiE/LFFh03JckG1VY68xJZRvi01e\nfDtwAjOCqZLQo0TeWz9MIQtQqFfYaFkeENxLPhdOojPmjpYD1bU5BTLkbS3m\n9Vzkp8dD7Uhvy63qphDk9vc9t2cc5dta+Ukrp8W+s9pdUZ4+o7iP9fDpytOK\niM0NmI0YB7RFGUan710b1E0U9TOvitjqVo2nuafnkAu2pVThNscOKCu6o6O0\n6E9G8ovHzaUHXvQgIypgXxPW9lp+HH1pd4zPm9sGHmq5nFrwysZuePOPnNJs\n/Kej\r\n=nNBi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","readme":"\n---\n

\n \n API Documentation\n   •  \n Getting In Touch (GitHub Discussions)\n \n

\n\n

\n \n \"GitHub\n \n \n \"Codecov\n \n \n \"license\"\n \n
\n \n \"Build\n \n \n \"Build\n \n

\n\n---\n\n# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\nThe methods in this package perform no operations by default. This means they can be safely called by a library or end-user application whether there is an SDK registered or not. In order to generate and export telemetry data, you will also need an SDK such as the [OpenTelemetry JS SDK][opentelemetry-js].\n\n## Tracing Quick Start\n\n### You Will Need\n\n- An application you wish to instrument\n- [OpenTelemetry JS SDK][opentelemetry-js]\n- Node.js >=8.5.0 (14+ is preferred) or an ECMAScript 5+ compatible browser\n\n**Note:** ECMAScript 5+ compatibility is for this package only. Please refer to the documentation for the SDK you are using to determine its minimum ECMAScript version.\n\n**Note for library authors:** Only your end users will need an OpenTelemetry SDK. If you wish to support OpenTelemetry in your library, you only need to use the OpenTelemetry API. For more information, please read the [tracing documentation][docs-tracing].\n\n### Install Dependencies\n\n```sh\nnpm install @opentelemetry/api @opentelemetry/tracing\n```\n\n### Trace Your Application\n\nIn order to get started with tracing, you will need to first register an SDK. The SDK you are using may provide a convenience method which calls the registration methods for you, but if you would like to call them directly they are documented here: [sdk registration methods][docs-sdk-registration].\n\nOnce you have registered an SDK, you can start and end spans. A simple example of basic SDK registration and tracing a simple operation is below. The example should export spans to the console once per second. For more information, see the [tracing documentation][docs-tracing].\n\n```javascript\nconst { trace } = require(\"@opentelemetry/api\");\nconst { BasicTracerProvider, ConsoleSpanExporter, SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\n\n// Create and register an SDK\nconst provider = new BasicTracerProvider();\nprovider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));\ntrace.setGlobalTracerProvider(provider);\n\n// Acquire a tracer from the global tracer provider which will be used to trace the application\nconst name = 'my-application-name';\nconst version = '0.1.0';\nconst tracer = trace.getTracer(name, version);\n\n// Trace your application by creating spans\nasync function operation() {\n const span = tracer.startSpan(\"do operation\");\n\n // mock some work by sleeping 1 second\n await new Promise((resolve, reject) => {\n setTimeout(resolve, 1000);\n })\n\n span.end();\n return output;\n}\n\nasync function main() {\n while (true) {\n await operation();\n }\n}\n\nmain();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Upgrade Guidelines\n\n### 1.0.0-rc.1 to x\n\n### 1.0.0-rc.0 to 1.0.0-rc.1\n\n- Removing `TimedEvent` which was not part of spec\n- `HttpBaggage` renamed to `HttpBaggagePropagator`\n- [#45](https://github.com/open-telemetry/opentelemetry-js-api/pull/45) `Span#context` renamed to `Span#spanContext`\n- [#47](https://github.com/open-telemetry/opentelemetry-js-api/pull/47) `getSpan`/`setSpan`/`getSpanContext`/`setSpanContext` moved to `trace` namespace\n- [#55](https://github.com/open-telemetry/opentelemetry-js-api/pull/55) `getBaggage`/`setBaggage`/`createBaggage` moved to `propagation` namespace\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[opentelemetry-js]: https://github.com/open-telemetry/opentelemetry-js\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js-api.svg\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js-api\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js-api.svg?type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js-api?type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n[docs-tracing]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/docs/tracing.md\n[docs-sdk-registration]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/docs/sdk-registration.md\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"726fd827eedf4d3442293dc690313674af38d4ae","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","eslint":"7.25.0","codecov":"3.8.1","typedoc":"0.20.36","webpack":"4.46.0","gh-pages":"3.1.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.2.4","@types/node":"14.14.42","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.0","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.22.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.22.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.22.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_0.21.0_1622826667360_0.1272796368276481","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@opentelemetry/api","version":"1.0.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"cc7712009095697f8a9492ee375daa08588ba263","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.0.tgz","fileCount":310,"integrity":"sha512-TcdhrGy+ehLIFs79/TcWiHiPujishrhSgQ7wxvWvk8WY2YT8Np/pYXmRP94voG3N8GJ/5nIVyzacfViwhN50AQ==","signatures":[{"sig":"MEUCIQDj5mzfWanWIIGVc06eDFm9HlSOId5Z4yLEKMcIHOFu3wIgVTVbTs2RDC1F/A5zvXTjgMCUr9H8z7xDZXM3FVdimwk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":364607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwjVICRA9TVsSAnZWagAA4xUP/R2b+02H4/0BwmyMgHIE\nsq49hJbr4WF6nxFxXWf77yjrIH+WdfWpmeq8UIHgiBhEZSeSfCje/d56tvAl\nSW//GeKFGc1eS2GC0rTPyTO9MC6zhGRaY5LhBzkMfiiiXasiJv/BLQaKOkeJ\n0hcApkt0Ir0oSx6q4sfLSRevdNGjOYKAQv4eYBHeGEU7qGtx9cXTgyk+JPEv\nl3WnqhszhHnLx8BL0Llzjwft5K8OoCkDpSYf7a0zFvlB6neh4/mLA5Sx4l3e\n2k6JOKy9Mvow/xDwO1jW6W4ucW0pKQ5m3R5AOUcJSvUB0g47ZXCECN74hVlJ\n8AVZqkZzHylb3Is5Vi7SNywpdufUPONm/OC6gZl8rETtuqJOaVwHY4h6kNtr\n6eLLbgEhXJUxo9E1tG3I/5UoJ/LmwIyHCpc6uc/xLmZs4HC22frnaU8O1Yqd\nPvL7NBlUGL8ukxSfqbJNq4Qbs5KeUNA7Lneg+cQt0UKKsQ9eMfysFfvbhoKm\n1dl6FqSa4SgxPToViQYbohS/YPn62SCGx83TbdUVK9L0avvqdt+UorEHpXsH\nwC/pkoQ43R0PqgcfVMjIi8mPmydTsDH64APLr767zoy/LhVjAMIngUcvVmqZ\nY/YfPuEW6JDDZ9s/YidPCFMn/EJ8sx89Zk6vWwQxq/e0voFXzuh3YZZDH+6B\nKmF9\r\n=sjDC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","readme":"\n---\n

\n \n API Documentation\n   •  \n Getting In Touch (GitHub Discussions)\n \n

\n\n

\n \n \"GitHub\n \n \n \"Codecov\n \n \n \"license\"\n \n
\n \n \"Build\n \n \n \"Build\n \n

\n\n---\n\n# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\nThe methods in this package perform no operations by default. This means they can be safely called by a library or end-user application whether there is an SDK registered or not. In order to generate and export telemetry data, you will also need an SDK such as the [OpenTelemetry JS SDK][opentelemetry-js].\n\n## Tracing Quick Start\n\n### You Will Need\n\n- An application you wish to instrument\n- [OpenTelemetry JS SDK][opentelemetry-js]\n- Node.js >=8.5.0 (14+ is preferred) or an ECMAScript 5+ compatible browser\n\n**Note:** ECMAScript 5+ compatibility is for this package only. Please refer to the documentation for the SDK you are using to determine its minimum ECMAScript version.\n\n**Note for library authors:** Only your end users will need an OpenTelemetry SDK. If you wish to support OpenTelemetry in your library, you only need to use the OpenTelemetry API. For more information, please read the [tracing documentation][docs-tracing].\n\n### Install Dependencies\n\n```sh\nnpm install @opentelemetry/api @opentelemetry/tracing\n```\n\n### Trace Your Application\n\nIn order to get started with tracing, you will need to first register an SDK. The SDK you are using may provide a convenience method which calls the registration methods for you, but if you would like to call them directly they are documented here: [sdk registration methods][docs-sdk-registration].\n\nOnce you have registered an SDK, you can start and end spans. A simple example of basic SDK registration and tracing a simple operation is below. The example should export spans to the console once per second. For more information, see the [tracing documentation][docs-tracing].\n\n```javascript\nconst { trace } = require(\"@opentelemetry/api\");\nconst { BasicTracerProvider, ConsoleSpanExporter, SimpleSpanProcessor } = require(\"@opentelemetry/tracing\");\n\n// Create and register an SDK\nconst provider = new BasicTracerProvider();\nprovider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));\ntrace.setGlobalTracerProvider(provider);\n\n// Acquire a tracer from the global tracer provider which will be used to trace the application\nconst name = 'my-application-name';\nconst version = '0.1.0';\nconst tracer = trace.getTracer(name, version);\n\n// Trace your application by creating spans\nasync function operation() {\n const span = tracer.startSpan(\"do operation\");\n\n // mock some work by sleeping 1 second\n await new Promise((resolve, reject) => {\n setTimeout(resolve, 1000);\n })\n\n span.end();\n return output;\n}\n\nasync function main() {\n while (true) {\n await operation();\n }\n}\n\nmain();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Upgrade Guidelines\n\n### 0.21.0 to 1.0.0\n\nNo breaking changes\n\n### 0.20.0 to 0.21.0\n\n- [#78](https://github.com/open-telemetry/opentelemetry-js-api/issues/78) `api.context.bind` arguments reversed and `context` is now a required argument.\n- [#46](https://github.com/open-telemetry/opentelemetry-js-api/issues/46) Noop classes and singletons are no longer exported. To create a noop span it is recommended to use `api.trace.wrapSpanContext` with `INVALID_SPAN_CONTEXT` instead of using the `NOOP_TRACER`.\n\n### 1.0.0-rc.3 to 0.20.0\n\n- Removing `TimedEvent` which was not part of spec\n- `HttpBaggage` renamed to `HttpBaggagePropagator`\n- [#45](https://github.com/open-telemetry/opentelemetry-js-api/pull/45) `Span#context` renamed to `Span#spanContext`\n- [#47](https://github.com/open-telemetry/opentelemetry-js-api/pull/47) `getSpan`/`setSpan`/`getSpanContext`/`setSpanContext` moved to `trace` namespace\n- [#55](https://github.com/open-telemetry/opentelemetry-js-api/pull/55) `getBaggage`/`setBaggage`/`createBaggage` moved to `propagation` namespace\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[opentelemetry-js]: https://github.com/open-telemetry/opentelemetry-js\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js-api.svg\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js-api\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js-api.svg?type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js-api?type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n[docs-tracing]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/docs/tracing.md\n[docs-sdk-registration]: https://github.com/open-telemetry/opentelemetry-js-api/blob/main/docs/sdk-registration.md\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"25cf8a4f3fb97af933190e0557b281293a168816","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.1","eslint":"7.28.0","codecov":"3.8.2","typedoc":"0.21.0-beta.1","webpack":"4.46.0","gh-pages":"3.2.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.3.2","@types/node":"14.17.1","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.23.4","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.26.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.26.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.0_1623340359892_0.34908205000666737","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@opentelemetry/api","version":"1.0.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"03c72f548431da5820a0c8864d1401e348e7e79f","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.1.tgz","fileCount":310,"integrity":"sha512-H5Djcc2txGAINgf3TNaq4yFofYSIK3722PM89S/3R8FuI/eqi1UscajlXk7EBkG9s2pxss/q6SHlpturaavXaw==","signatures":[{"sig":"MEUCIExr2UkFiHum2r7Sf1xBePqGgHbFOeXQAPgjcpt2nIwbAiEAxv5O6YEqG4m13Jj+rTo0WNGUqpEmZCzYVaSpeBihBtw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":365959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1j8gCRA9TVsSAnZWagAAfZMP/37ApqByTwlCdwmFTK7V\nhprSQM3Ks7IT819U+stsM7axM2wFokD1vEd6u5yhbSQ3TB2f/2VRtA8Ita31\nPWFWRUjpIlpDA+LYlJjClFzO9BqhhK55Zn8U2IESWqyoTKo9S1F95u4oTaCd\nJd+uT0eq59BDmGuQD6o4IotmrSyAUCqQVIa97VZtiA2HO/lEIS38HgJ0X7ad\nj4UgQZsbimRMtFBn/bKvPcJHVq+idJd6EoqSjrWWOW2NcUuxYQNNfUivPfFV\nrYdeOtZHOry0WLLtO4Z2DkfyS45cQaU/eNKsJy0c3w7bX/9sOuui6FHzWr3y\nz+v5IbHXzWG+569yINlpK6TPlcksOmEN5/kYw4l9h+vgIULPf6W1mbI8DUZo\nYWDyv/SFAVAO5oynlEMMuGEDqiXu1rA6THHAzXEBTZmFGp3gQAmjHwHWFFfW\nOf48qYG1cKnycWdEixTbejVX8Ei03jl90x/RBpcc9rb4G0UN95tCamInl76v\nd1Zl1Go2xcaT9ZU+6ljDAsxgQMNIG0oXCSz1cYeoio+3scOgcnelJgdlZRXJ\nebE7vvmPXGRoiIEh34U/K/frsZakBm6pwy4gjcd/sbSSqHCvo/AbNWsfbAwf\n2GEYfEI0nTIOocH3hNMigvCMM8oqYmxubACFX8KWOhybji+QzdvB6m27rlmR\nsXvW\r\n=IDIa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"821a007a713ca1840b77e76f92a443191c780431","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.1","eslint":"7.28.0","codecov":"3.8.2","typedoc":"0.21.0-beta.1","webpack":"4.46.0","gh-pages":"3.2.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.3.2","@types/node":"14.17.1","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.23.4","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.26.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.26.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.1_1624653599673_0.3700085723088007","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@opentelemetry/api","version":"1.0.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"921e1f2b2484b762d77225a8a25074482d93fccf","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.2.tgz","fileCount":310,"integrity":"sha512-DCF9oC89ao8/EJUqrp/beBlDR8Bp2R43jqtzayqCoomIvkwTuPfLcHdVhIGRR69GFlkykFjcDW+V92t0AS7Tww==","signatures":[{"sig":"MEQCIDRNn5fvxNWbs+lgXuaSR/PVKiAfgRnMBMw2bumqMDwBAiBM8i8XGWyDVBccbhhZJjR8j3x2WJWJMzjNKxZJ3cwYZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":369470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAqHfCRA9TVsSAnZWagAAaxMP/joxepRMYi+dAMfJ6Z5h\nCU/z1LcxwHToXe9qeLdZjzxaA70NSMx4qvuTsfJhRvtOGqWG8csNuhJF97kw\n/w9fKcS9H6YxeWIKTy3RgFSpG1URBrhk1zDQeHxiCE6CK4PaKOwIHBSXZDb1\nH+WQqGw+a62GN4HNzWcRfk4xt6Tnh/B4Ae0u+k9Q9+0tqc52psfOyujY/CGq\nf868DPFgBuKSOnz28AGm/hbD5m3Y9f6XmT4CujEj0JVnvi2Zjo66xDk697Vu\nTKjY7C5jU1C0AcNPAnO61QBD2y/TVswc9FbFmM0A3vbfGENbEz70xECtRSBf\nMLC7KHkLE5UPawi48HpqRVyDPXBP2YjcIbwmd1sR+ZzC1izH8Cx4qAaHJv5k\nx6jsvXXHUJSteTkqsXbhjdH19eAQPj1wSVBbk3nDIkg+4beEn+UmA1WY1YNa\nhRteYs9Nv7xSrtwhUY9BFP+UYMt+AbWeatiRhcpo6hBmKe1ZU0NScyguKXwH\nSE/aNFqX0+rdZKVUMnhkkCVvtXmrqS3dVyiAptQkft9ujSAUhUhx7REibK9K\nTftjUNiqV44kfJSzP86+OLAlkSFNRMBZw+qL0eP92fYTfghLziZEJ6BylgpO\nrwDJRE0TIDJJbvN/f62/38rh171YFjjC68OifxxsBgwIBeq2BZXrHlgF3BSI\nwV34\r\n=dBFD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"5f45865d36ee9b0a7d9a66bef87c571869df8242","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","build":"npm run compile","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","docs:test":"linkinator docs/out --silent --skip david-dm.org","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.11","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.1","eslint":"7.30.0","codecov":"3.8.2","typedoc":"0.21.2","webpack":"4.46.0","gh-pages":"3.2.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.3.5","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.23.4","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.28.1","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.28.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.2_1627562463049_0.48723097483601063","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@opentelemetry/api","version":"1.0.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"13a12ae9e05c2a782f7b5e84c3cbfda4225eaf80","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.3.tgz","fileCount":316,"integrity":"sha512-puWxACExDe9nxbBB3lOymQFrLYml2dVOrd7USiVRnSbgXE+KwBu+HxFvxrzfqsiSda9IWsXJG1ef7C1O2/GmKQ==","signatures":[{"sig":"MEQCIBTY1S2E0m18p5kfloB5aJrYDRRoJoA+Zut8BgA7cOlQAiBlYKNZyds8D07zoJVmF5DkMN14yv8+8vjSF2gNgZboqw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":372854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLhmoCRA9TVsSAnZWagAAwkkQAJt/SSZ4STjocJfu6m+o\nkNx8KGJXWXrOHeiaQkZtP8hh/09D0UaL8fwgAeUw4jHrsb3GrZ9y/mdDVMIg\n4xqxDukEL5xHRjF89aa3656tZ3AdEaE1XQOilINSBXOwl5DFu22ilHenJ4UY\n1MtzRcX+Q8z1Tuua8ribztDkE19SzVHMaq+s91hU7p5SMGYP4qmfA1UMpBSX\nRlKxGFCjlJXa4SlDg6IQw/7yXlLo4+yb483iAR3tXRs3n/usb4R05vjpI/8+\n/MFE7oaJ5UbUAcQzVsMpuxwcBdBU3Z1gR3wyo3sMYtkq/FNrqCHx3Od8nIxr\n8d3vkiZVMjIpS1I/96CVLGMVPDuQ2egI3Of43gwY4G47pdAZehD332tRD0b6\nDqHUhGd6inNCMZU1gU7ChmN4PDwsCw3SzkRWF859lT5J//BMLKE3Gx0TzTSh\nbMiTnIo7KIxiGHHulG2vfvuE8ZX+lJ3kyKoAh5BP1YZSbcpcvew5jbcShvyl\njoa9ckcCbkEOK55uA+BxjI2uzfiAEQavrg4jmIwH60DW6ceUV3ZnlTbqalhD\nBFfhaAGe1wOu9fhoEK31fMDT9gfgTjtKM0fL0muh6snAi7yhCSqv3RPywUjf\nDXuOu0WgIdDVpYj2lO0Jb2vYLz5hkR+FeMG2mFT1tQDcM06OSv5FNXNuGFcg\nZEVR\r\n=ZL31\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a752e7f814e7b335e50705d281cb2c6e1bd38a35","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","prewatch":"npm run version","docs:test":"linkinator docs/out --silent --skip david-dm.org","precompile":"npm run version","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.14","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.17.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","dpdm":"3.7.1","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.1","eslint":"7.30.0","codecov":"3.8.2","typedoc":"0.21.2","webpack":"4.46.0","gh-pages":"3.2.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.3.5","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","eslint-plugin-import":"2.23.4","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"4.28.1","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"4.28.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.3_1630411176029_0.8446706895073408","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@opentelemetry/api","version":"1.0.4","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.0.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"a167e46c10d05a07ab299fc518793b0cff8f6924","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz","fileCount":316,"integrity":"sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==","signatures":[{"sig":"MEUCIQCRimh8L2mpIo9AEMX8Q5Ta6tDGhRWknQ1pjlVi4LWv9gIgOl0I5lmexee5+MaZ9he0JFMPBGcJwki9vqaKMouk7ts=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":595555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhw0xICRA9TVsSAnZWagAAEHkP/3+Z6lJz2bLgX4Qb5EjI\nN4frfiBqx/DZqTFicACTNNIeho2j2gDCvtNSFKrvdH12h9RCVwPfwbJpHtIN\nc36pn2JZhhaRP9T08GWQLEI6zavF7s9T8eXzbS77VCTdVEL3MmvCFMEif99B\nwdR+8DG95DtiKi5FQRrY7wDpeBkkR1JidtXCDGfsF83rBQG8d3FAAmJEmEpc\n0mrY0KowAIOP3C+qXyrtwXF0V+5lwgB09YDjnda6QDtDyizLuMIyjOhx+Aet\nRKYJEKdaU855r84X0y1wJaXi2TApbuxI+q3pfVlczA8Ip+rpQzlXhHsgEoj9\naMzYUyOD1iuUQljbWu3oistnbUDHE0E59BXE/KqDfjb7zClaWzUJXwmbctdE\nixMRHPmqx/r+rO88mCWL9B2/G1zJGL/0T2pXd0ERJ4FoXM8DmMe3C3Lwr9zI\nv6tv+Yfm6fhKgUOPd/Fuq0oYXdciQVmalOKOGTMJL72JpvOopKVoLQYMkC6Q\n3ZqOPs8m1CMe6yNTDDg39a8ce1FbKL++1AcAnASoc3HSRjqIeO0wHcOyuh1d\nH7K867t/DfmQgcI6dA3QfEuOx6/jQGTflhMiXD7SOXlak5dwodKQD5BZO16m\nGXtt7hhoOM9eCtll98r9lv4EOQxg+coFFkrpbtFUepxnlzbtKzJBx5GJJf3Q\ndJbb\r\n=PlAq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"51b958e8de7c98e61c84f840c688de1d016f9310","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","prewatch":"npm run version","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"npm run version","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.15","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.7.1","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.1","eslint":"7.32.0","codecov":"3.8.2","typedoc":"0.21.2","webpack":"4.46.0","gh-pages":"3.2.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.3.5","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","eslint-plugin-node":"11.1.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"5.0.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"5.0.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.0.4_1640189000362_0.8159627187702121","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@opentelemetry/api","version":"1.1.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.1.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"563539048255bbe1a5f4f586a4a10a1bb737f44a","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.1.0.tgz","fileCount":346,"integrity":"sha512-hf+3bwuBwtXsugA2ULBc95qxrOqP2pOekLz34BJhcAKawt94vfeNyUKpYc0lZQ/3sCP6LqRa7UAdHA7i5UODzQ==","signatures":[{"sig":"MEUCICzcWlT926QWEdH1gPyxwituL+9telvQ7dGU07Mh6sXJAiEAvlCbrWhUmFgEAM++gp8BCvT0gU/ZZNhVwT4tlo4N01g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":646983,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8sghCRA9TVsSAnZWagAAOZ0P/1Dsy0/JLjaXALUQyDVB\nioNO73OqFyxUx27JTNSOhpF0PtTogR6BYGyH3ATkr1IXfcGQtQpYAkE6oad0\nsuk/Lta50g4Aav9H9Rsg6616d81Ea8LvHhFL8ZgXRgVzD2BY2rf1aFOEb/JQ\n3iWsRkP+vOY3t+F6eQJ4mQBdHChZjWRure/h7NTewSqPowFPrH7oR5bXFbTC\nN2BAyIObFpJeIRkpxt9MAnhvw5U3heMfHu1nwixenAteESVMqFC+OQam8Djr\np7IkKpQLnjHlr65Z8acLa8Nj1XCMnq3e3/GBZ+mTUpt6cXfX6viG5eM4+U4k\nbATVe0sd+wvOkdPKAIMeDUXSHbu2vGevk5vKg9O1FKbncs/M6ezB8bVYaWXB\nLu6C9rpbd+jw/LfMrpybJ8HY2iSmcMOHEBumXzCRh1VsZKbI2K3RBz45u1yp\nqyIVLAb+h//m02s4GSw3v/A4xFd61WCLfhn2MoyMf5kzN0QI9uwG7+iJLy8U\nUXtYz49Y5ejO4Ovv4A4zwoMA3h4BeAu0+r2PNuyfstvQYNbW5FWQ5FzYTy2m\n0ELy+PMAFl/C1aDqDf5HgBVnT1mhLwWA7PMOgntYFOIICk+i5UpqN3MVHpGD\njtW2y1RMbqsCVvQ9XRu5b8iCRJJlt+vYHrh/Gzb8FCpoNjwXnHVMWLzgM6zf\nNFis\r\n=yG8N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"24f1cb8471249f0bc10e41a3f07e6728a137682b","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","prewatch":"npm run version","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"npm run version","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.15","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.7.1","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.1","eslint":"7.32.0","codecov":"3.8.2","typedoc":"0.21.2","webpack":"4.46.0","gh-pages":"3.2.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.3.5","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","eslint-plugin-node":"11.1.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"5.0.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"5.0.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.1.0_1643300897048_0.701795531041127","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@opentelemetry/api","version":"1.2.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.2.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-api#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-api/issues"},"dist":{"shasum":"89ef99401cde6208cff98760b67663726ef26686","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.2.0.tgz","fileCount":346,"integrity":"sha512-0nBr+VZNKm9tvNDZFstI3Pq1fCTEDK5OZTnVKNvBNAKgd0yIvmwsP4m61rEv7ZP+tOUjWJhROpxK5MsnlF911g==","signatures":[{"sig":"MEUCIQDCrM7FtetADSEPCNwo006CB9vCsxiQXJCDG0VfqKqWZAIgOR2cxI7GoCSplvigzpcRDE+fffv6SqA1nf9wmWV8jsw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":650533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/o9mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo7LQ/+JLkcjBaKEBrlmOMsddIRLdgRG9Rldxr1/imcsjrisvICz3p0\r\nonimOV8rYw3wOJ/6Mj3X00bNXkspd/u+QCefMc7puNxhhQMrdF/GQ8l7MGZ+\r\n/go/ABmJaZ553aHrcWQy/HpWv//vMRJ6oCwjXshHChA5wYTaQbHaiolodeqX\r\n5aEKr4zRmApMrZVcJolj0xW9QdyWgSKTvp6rdaI0neCreuoKqSE9cN5lHnaA\r\nNWUW2HNmYb1ul3ZpLVCJlAw8hhxTWFaO3cZWsxa0xOEbafRk6wcRKDX7EbOi\r\n1vnS0cINdXF29T+u/wnrUG8CTv73iWKbnd2XtvPolOIUdOlEqEBpLcV5tcOr\r\nvZamYQOK0+GALG9hfi+Y4nLucnjV/OyZ77acBSiWWcIJs91VgrvlzLTYsHgl\r\nTsvX1Vy8Zdyly/n+c1O8bVayLHp2f7QHgX/1Ej6jCzdnx4Nlp6QPqk44RGHS\r\n4PHmZ8RQAvLzoylrSEF7gkAB8L5vYOnVB2Ga2ijahro3BVGZ+4fhoVtq+A0/\r\nwux7qmXobe/EwQ+ja/3h/pN+f8KlDTgm0091SDlK2fkF4U3Ubx2F2tllCyqp\r\nmGFU7Pih86R1i7y7xzLo76LJqCwW7YwEpdTGeZqrCRaJWuUb3mwyvFSTrval\r\nYyvxMBGmrB+3HjrZ87V4Z4VaxBSAqT8zy9o=\r\n=2JVf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"d2fb7061a87c48dc68acc384dc68821174323a32","scripts":{"docs":"typedoc","lint":"eslint src test --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p .","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node scripts/version-update.js","lint:fix":"eslint src test --ext .ts --fix","prewatch":"npm run version","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"npm run version","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ."},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-api.git","type":"git"},"_npmVersion":"6.14.17","description":"Public API for OpenTelemetry","directories":{},"_nodeVersion":"14.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.7.1","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.1","eslint":"7.32.0","codecov":"3.8.2","typedoc":"0.21.2","webpack":"4.46.0","gh-pages":"3.2.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","linkinator":"2.13.6","typescript":"4.3.5","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","karma-webpack":"4.0.2","lerna-changelog":"1.0.1","@types/webpack-env":"1.16.0","eslint-plugin-node":"11.1.0","karma-spec-reporter":"0.0.32","eslint-plugin-header":"3.1.1","karma-chrome-launcher":"3.1.0","@typescript-eslint/parser":"5.0.0","istanbul-instrumenter-loader":"3.0.1","@typescript-eslint/eslint-plugin":"5.0.0","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.2.0_1660850021932_0.3542051796664316","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@opentelemetry/api","version":"1.3.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.3.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"27c6f776ac3c1c616651e506a89f438a0ed6a055","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz","fileCount":411,"integrity":"sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==","signatures":[{"sig":"MEYCIQD8CUdBXgBkidMYp8gO+zbiJh81FHln8Wr5ltsbK1u8gQIhAJmJMrNmi/q6kmuoM2G0CP+j8RGXvPNVQaHUBB+ypkov","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":773758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJja/LuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqz9w//exrZU19kw9PBP/k+dBsXNwRRwWvCHv+pJ7QaRPpQ9HdXJOX2\r\nNmbEcSKGGL9DBuK5gCq4jTxpAPDi+zzSIFOb6QPaKZXYF1SiQb6HmtpKyy0p\r\nj8TdTSENkF+vOK1vvFte9TVwdQ30fgtinJffuKipu/SdUBOsnXYhmWg8j2bK\r\nVghv0U7Dxf/C8gYQOdvdfE6fAWw5KikhR58JYviM3DZsY755II9cKqI5NkBb\r\nB4UTvKiNsVDDJIyqgQbspVWr38KNo72SkXsQTSsDqdafqMKLr2JW4SINSbGO\r\nVNqpVUK5yX2AUegXZ59wRARMVEiBx+WTSaiOO/SwkV9Gbge+ZAE2Y7vAyyRp\r\nAhCCnKN1vq9juXoAXQUsCurEvNpquTbnj17t8ANvkcMctBBKyja+0Yg/SI85\r\nFzEEMvO5GK61N4+wJTQadEmkI1HwfqeRESBXh2pawZFtLa56ryxg1kf5r6hE\r\nYhw19nu4mm1tlTVMzThXejsw+5s64VYyd+i7NR+BNInb8TMOHOYHlDrLj6DG\r\n25jSP3aa68BpoMm5mDY3m4evo5IElRZS4zWvG3ja6WIl1TecNH7m517Yp8Mp\r\nUtddN/jNO+0EsgCqXKeRkbe+THPyJT9itN9oizNYi8FCavZ39j7PM3eRz8pO\r\nheYkwpR+S3hw6yj3jQcur9mwtTc5Fh1aU8I=\r\n=a6Kw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","readme":"\n---\n

\n \n API Documentation\n   •  \n Getting In Touch (GitHub Discussions)\n \n

\n\n

\n \n \"GitHub\n \n \n \"Codecov\n \n \n \"license\"\n \n
\n \n \"Build\n \n \n \"Build\n \n

\n\n---\n\n# OpenTelemetry API for JavaScript\n\n[![NPM Published Version][npm-img]][npm-url]\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\nThe methods in this package perform no operations by default. This means they can be safely called by a library or end-user application whether there is an SDK registered or not. In order to generate and export telemetry data, you will also need an SDK such as the [OpenTelemetry JS SDK][opentelemetry-js].\n\n## Tracing Quick Start\n\n### You Will Need\n\n- An application you wish to instrument\n- [OpenTelemetry JS SDK][opentelemetry-js]\n- Node.js >=8.5.0 (14+ is preferred) or an ECMAScript 5+ compatible browser\n\n**Note:** ECMAScript 5+ compatibility is for this package only. Please refer to the documentation for the SDK you are using to determine its minimum ECMAScript version.\n\n**Note for library authors:** Only your end users will need an OpenTelemetry SDK. If you wish to support OpenTelemetry in your library, you only need to use the OpenTelemetry API. For more information, please read the [tracing documentation][docs-tracing].\n\n### Install Dependencies\n\n```sh\nnpm install @opentelemetry/api @opentelemetry/sdk-trace-base\n```\n\n### Trace Your Application\n\nIn order to get started with tracing, you will need to first register an SDK. The SDK you are using may provide a convenience method which calls the registration methods for you, but if you would like to call them directly they are documented here: [sdk registration methods][docs-sdk-registration].\n\nOnce you have registered an SDK, you can start and end spans. A simple example of basic SDK registration and tracing a simple operation is below. The example should export spans to the console once per second. For more information, see the [tracing documentation][docs-tracing].\n\n```javascript\nconst { trace } = require(\"@opentelemetry/api\");\nconst { BasicTracerProvider, ConsoleSpanExporter, SimpleSpanProcessor } = require(\"@opentelemetry/sdk-trace-base\");\n\n// Create and register an SDK\nconst provider = new BasicTracerProvider();\nprovider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));\ntrace.setGlobalTracerProvider(provider);\n\n// Acquire a tracer from the global tracer provider which will be used to trace the application\nconst name = 'my-application-name';\nconst version = '0.1.0';\nconst tracer = trace.getTracer(name, version);\n\n// Trace your application by creating spans\nasync function operation() {\n const span = tracer.startSpan(\"do operation\");\n\n // mock some work by sleeping 1 second\n await new Promise((resolve, reject) => {\n setTimeout(resolve, 1000);\n })\n\n span.end();\n}\n\nasync function main() {\n while (true) {\n await operation();\n }\n}\n\nmain();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Upgrade Guidelines\n\n### 0.21.0 to 1.0.0\n\nNo breaking changes\n\n### 0.20.0 to 0.21.0\n\n- [#78](https://github.com/open-telemetry/opentelemetry-js-api/issues/78) `api.context.bind` arguments reversed and `context` is now a required argument.\n- [#46](https://github.com/open-telemetry/opentelemetry-js-api/issues/46) Noop classes and singletons are no longer exported. To create a noop span it is recommended to use `api.trace.wrapSpanContext` with `INVALID_SPAN_CONTEXT` instead of using the `NOOP_TRACER`.\n\n### 1.0.0-rc.3 to 0.20.0\n\n- Removing `TimedEvent` which was not part of spec\n- `HttpBaggage` renamed to `HttpBaggagePropagator`\n- [#45](https://github.com/open-telemetry/opentelemetry-js-api/pull/45) `Span#context` renamed to `Span#spanContext`\n- [#47](https://github.com/open-telemetry/opentelemetry-js-api/pull/47) `getSpan`/`setSpan`/`getSpanContext`/`setSpanContext` moved to `trace` namespace\n- [#55](https://github.com/open-telemetry/opentelemetry-js-api/pull/55) `getBaggage`/`setBaggage`/`createBaggage` moved to `propagation` namespace\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[opentelemetry-js]: https://github.com/open-telemetry/opentelemetry-js\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/api/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/api\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi.svg\n[docs-tracing]: https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/tracing.md\n[docs-sdk-registration]: https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/sdk-registration.md\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"27c4f762948c9b8d693d5ce1c2df5aaa5b0e92ee","scripts":{"docs":"typedoc","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","peer-api-check":"node ../scripts/peer-api-check.js","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"8.1.2","description":"Public API for OpenTelemetry","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","dpdm":"3.10.0","karma":"6.3.16","memfs":"3.4.9","mocha":"10.0.0","sinon":"14.0.0","codecov":"3.8.3","unionfs":"4.4.0","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@types/webpack":"4.41.26","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.3.0_1668018926306_0.6542671449937483","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@opentelemetry/api","version":"1.4.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.4.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2c91791a9ba6ca0a0f4aaac5e45d58df13639ac8","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.0.tgz","fileCount":411,"integrity":"sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g==","signatures":[{"sig":"MEUCIQDzaltzlePvwfUMmb5B/niIOf8gficyyY1jK6Ryi5LHhgIgCI09A2uiKcTDL4sPwiODox7eNceH9hYVII/kwNEY9jA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":777562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvy4iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpxVA/9G6yhWyPFHrp5F7e5PG1Wzg9OLbW3eB/TBxSNCZkPkfRF7gE1\r\nqgv/mNYEjx21AKWN02FqhJ2ogF066NrLy2DWivBe51xj23bQjBbytPTFlRP/\r\nbRpyJtGZLnH9URmOKgDCW2yTLWECjY4wOoPK+jTlUdyY4xsa6pg0Pa5SPWem\r\n7ZVk4RsjWK/DnRI4BqWHSGXXEG2in5maWJxxPzFLq67EEt81+Gxiwj6xzWAr\r\nXRBvioNz7DjduykYPGkcvnOxKUJtJNBH+nMKNJqqZ+2tgNBtjL+XAc+nfAWx\r\nsn8RKHjaquiRVOgWraCcjlocu8tQ+hr7Eu/xE61uze6yUent/1BaNtrIon96\r\nXNonHYblW6XaSiPw1Q3zxcZEfa+yuvncOmBdFL8QA1Z5gm48piBStgyT9XH5\r\nMmG+s3CeLHSwE2l/zKgDFxv1tHVh4crP7AXa7LRPgbBv/ITnUpLC+fBxjJXD\r\n3yyrs+DbrggH0PZX9b7qVPxPlakcScf8tK36yovR5NqVP2PIxu9dxbk3FViw\r\n5swpDUYZ5wbyvUerR+I8Fj559bbAxVISHXGfiDi0vTWpU+c0xJoAOZRvwLCc\r\n/e+bhh8fSx1aHePpQsaN4Q0MnZgOJ9A0m0sW42/SUH1LOh6Ng1wFgq+k3dvI\r\nhAP7fvZsT8k8TxPf54RRw83ctxIKFRexXzQ=\r\n=EXfN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"08f597f3a3d71a4852b0afbba120af15ca038121","scripts":{"docs":"typedoc","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","peer-api-check":"node ../scripts/peer-api-check.js","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.10.0","karma":"6.3.16","memfs":"3.4.9","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","unionfs":"4.4.0","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@types/webpack":"4.41.26","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.4.0_1673473570251_0.04609694096080963","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"@opentelemetry/api","version":"1.4.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.4.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ff22eb2e5d476fbc2450a196e40dd243cc20c28f","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz","fileCount":411,"integrity":"sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==","signatures":[{"sig":"MEQCIGT5pnxH/gHoj4lSFF/LYoK5dpTtksbtDAAemi+bpOECAiAhxBThmaYqEv3rTBze2JWhZjD+TPkokIBqHf/LalWt5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":780322,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkD0b7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9Pw//bgiXhyvN22UV4wtA3hk6syJD5/SM/0OqmJIs8zy2OtvtdAt4\r\nWtS82IKN7efWXUYHuFggizBTKoP7RvO/urzQ4W9eNNy75O30aCmNxjhYvtPD\r\ns8szpUwbOaFqoIlQlJdfagkJGOArdikUVf8eDw4MQ0E4cpYsBJ/XCb34vEis\r\nzQLb8bjKxe6LUdHoX+uPaHS5+uNqXrUOJl0S3n6yf4qHa+uDLAZEbPboj4ow\r\n+CZxkRpfgsBqeQWkBCMam/8HORTdP/pnzTtd2D7dFxnw6d0eZLZ81NSMBTZG\r\nYfKr955fobrjDYDtdR5tiGEhQHePJPrBc/5pQNEItXGPfQ7Ha5V38I8FJ8YN\r\no0JOAlalfRdDFOQl+hZML9hNsZg5tP5v1uipSRWu8fgdSd9LVSQrAHrw6oPP\r\nlL0cmJ5eSXzA0rOHHSmvtZmZ410ZR9x0mtE9K2reHJFCyqNs2XueoFyXmqgJ\r\nWSW95OyO+wPSaZeVBF1NmyfICgcAeo6xowmXzOX3GClkxxAESFWzaFSsPLZm\r\nikt3rQolfBK8Y0ygAcFRpERAkR16qitIswe/1MLnX7PTb+c/iVQ3u46EVrpx\r\nvTZcAV009eF8C+aPJS7WSizcUADDXEY3hPlWfKhWtPqH2o2TCiiPE03lA3oD\r\n5PIT9eVFkC/wk/AhQjcHUxEXqDMMXlHL9C4=\r\n=7zw7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"56e6b1bb890f844b8963a146780d0b9cfa8abd0d","scripts":{"docs":"typedoc","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"nyc karma start --single-run","peer-api-check":"node ../scripts/peer-api-check.js","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"Public API for OpenTelemetry","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.10.0","karma":"6.3.16","memfs":"3.4.9","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","unionfs":"4.4.0","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@types/webpack":"4.41.26","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/api_1.4.1_1678722811286_0.7216115275740891","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@opentelemetry/api","version":"1.5.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.5.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4ff2709035a9896ec1aa8f5353ba2277737cae5d","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.5.0.tgz","fileCount":411,"integrity":"sha512-636km3y3pVyJldKGp9qM+lPvxuOvhThUED9cHNPsERkp+APbdtCtj0sALW+mZsbQqnqQkNRHqoGw/Uc82UP6fQ==","signatures":[{"sig":"MEYCIQDxDkiDAocHnmMuctR3QhqFxZlJ1HnrZYy/kztPaTsSNAIhALrZw8K0AeJjLLwTsrERbt926cTC5h8txyLJY1fbiMNt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":782488},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"5fcd8cf136e2235903dde3df9ba03ced594f0e95","scripts":{"docs":"typedoc","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","test:eol":"ts-mocha -p tsconfig.json 'test/**/*.test.ts'","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"karma start --single-run","peer-api-check":"node ../scripts/peer-api-check.js","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"deprecated":"Version 1.5.0 of @opentelemetry/api mistakenly contained a breaking change for some users. Please update to 1.6.0 or later.","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.13.1","karma":"6.4.2","lerna":"7.1.5","memfs":"3.5.3","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","unionfs":"4.5.1","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","@types/webpack":"4.41.33","karma-coverage":"2.2.1","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/api_1.5.0_1694434462548_0.5315848607176739","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@opentelemetry/api","version":"1.6.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.6.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"de2c6823203d6f319511898bb5de7e70f5267e19","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.6.0.tgz","fileCount":411,"integrity":"sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==","signatures":[{"sig":"MEUCIQCO9WnTvxA6MQjm3TXCujesARChZYWOdfcGpAXmfl6xNQIgJln63Qa/062urWUpgGiBATq39nrzYlEVpBHfpcDx354=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":780443},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"faf939c77591f709afbc23fadbe629c9d3607ef6","scripts":{"docs":"typedoc","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","test:eol":"ts-mocha -p tsconfig.json 'test/**/*.test.ts'","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"karma start --single-run","peer-api-check":"node ../scripts/peer-api-check.js","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.13.1","karma":"6.4.2","lerna":"7.1.5","memfs":"3.5.3","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","unionfs":"4.5.1","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","@types/webpack":"4.41.33","karma-coverage":"2.2.1","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/api_1.6.0_1694524345231_0.5100705712274942","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@opentelemetry/api","version":"1.7.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.7.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b139c81999c23e3c8d3c0a7234480e945920fc40","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz","fileCount":615,"integrity":"sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==","signatures":[{"sig":"MEUCIFWqxhqKSeEezKywFrho/r93NXg8myaF1+B4xQHQsUymAiEA8zPBvQG5638UKzLCh/tacBb7wYVxSCdVX1jm7HXB9hc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1146473},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"73b446688f10fd8dc4cf403a085f0a39070df7b4","scripts":{"docs":"typedoc","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","test:eol":"ts-mocha -p tsconfig.json 'test/**/*.test.ts'","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"karma start --single-run","peer-api-check":"node ../scripts/peer-api-check.js","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.13.1","karma":"6.4.2","lerna":"6.6.2","memfs":"3.5.3","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","unionfs":"4.5.1","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.3","@types/sinon":"10.0.20","karma-webpack":"4.0.2","@types/webpack":"4.41.35","karma-coverage":"2.2.1","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/api_1.7.0_1699353880416_0.3872071570298008","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@opentelemetry/api","version":"1.8.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/api@1.8.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5aa7abb48f23f693068ed2999ae627d2f7d902ec","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz","fileCount":642,"integrity":"sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==","signatures":[{"sig":"MEQCIBWUxegCVK8RYSQyADGNtLgr761+qLVha4WzG5CugornAiB4xtg6ge+jo7cCJSjJl5IaQ+3MaQWogD/iOVZTLeC3Lg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1206276},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"exports":{".":{"types":"./build/src/index.d.ts","esnext":"./build/esnext/index.js","module":"./build/esm/index.js","default":"./build/src/index.js"},"./experimental":{"types":"./build/src/experimental/index.d.ts","esnext":"./build/esnext/experimental/index.js","module":"./build/esm/experimental/index.js","default":"./build/src/experimental/index.js"}},"gitHead":"7be35c7845e206b27b682e8ce1cee850b09cec04","scripts":{"docs":"typedoc","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","test:eol":"ts-mocha -p tsconfig.json 'test/**/*.test.ts'","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","cycle-check":"dpdm --exit-code circular:1 src/index.ts","docs:deploy":"gh-pages --dist docs/out","test:browser":"karma start --single-run","peer-api-check":"node ../scripts/peer-api-check.js","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"Public API for OpenTelemetry","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","dpdm":"3.13.1","karma":"6.4.2","lerna":"6.6.2","memfs":"3.5.3","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","unionfs":"4.5.1","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","@types/webpack":"5.28.5","karma-coverage":"2.2.1","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/api_1.8.0_1709198284897_0.4745281152459706","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@opentelemetry/api","version":"1.9.0","description":"Public API for OpenTelemetry","main":"build/src/index.js","module":"build/esm/index.js","esnext":"build/esnext/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"exports":{".":{"module":"./build/esm/index.js","esnext":"./build/esnext/index.js","types":"./build/src/index.d.ts","default":"./build/src/index.js"},"./experimental":{"module":"./build/esm/experimental/index.js","esnext":"./build/esnext/experimental/index.js","types":"./build/src/experimental/index.d.ts","default":"./build/src/experimental/index.js"}},"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"scripts":{"clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","docs":"typedoc","docs:deploy":"gh-pages --dist docs/out","docs:test":"linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent","lint:fix":"eslint . --ext .ts --fix","lint":"eslint . --ext .ts","test:browser":"karma start --single-run","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","test:eol":"ts-mocha -p tsconfig.json 'test/**/*.test.ts'","test:webworker":"karma start karma.worker.js --single-run","cycle-check":"dpdm --exit-code circular:1 src/index.ts","version":"node ../scripts/version-update.js","prewatch":"npm run precompile","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","peer-api-check":"node ../scripts/peer-api-check.js"},"keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","engines":{"node":">=8.0.0"},"publishConfig":{"access":"public"},"devDependencies":{"@types/mocha":"10.0.6","@types/node":"18.6.5","@types/sinon":"17.0.3","@types/webpack":"5.28.5","@types/webpack-env":"1.16.3","babel-plugin-istanbul":"6.1.1","codecov":"3.8.3","cross-var":"1.1.0","dpdm":"3.13.1","karma":"6.4.3","karma-chrome-launcher":"3.1.0","karma-coverage":"2.2.1","karma-mocha":"2.0.1","karma-mocha-webworker":"1.3.0","karma-spec-reporter":"0.0.36","karma-webpack":"5.0.1","lerna":"6.6.2","memfs":"3.5.3","mocha":"10.2.0","nyc":"15.1.0","sinon":"15.1.2","ts-loader":"9.5.1","ts-mocha":"10.0.0","typescript":"4.4.4","unionfs":"4.5.4","webpack":"5.89.0"},"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","sideEffects":false,"gitHead":"c4d3351b6b3f5593c8d7cbfec97b45cea9fe1511","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"_id":"@opentelemetry/api@1.9.0","_nodeVersion":"18.19.0","_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","dist":{"integrity":"sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==","shasum":"d03eba68273dc0f7509e2a3d5cba21eae10379fe","tarball":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz","fileCount":642,"unpackedSize":1218213,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5JhjunJ5QH3ifhIkfIf7mUTMZo59URC45qn9JaWvmawIhAJtiHfG88EtN6LBF70xACXxS71Sw7cISXhK9JYrMVLGi"}]},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"directories":{},"maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api_1.9.0_1717607724827_0.8780155939505339"},"_hasShrinkwrap":false}},"time":{"created":"2020-02-05T23:02:44.976Z","modified":"2024-06-05T17:15:25.222Z","0.4.0":"2020-02-05T23:02:45.340Z","0.5.0":"2020-03-16T22:02:14.091Z","0.5.1":"2020-03-20T00:42:45.891Z","0.5.2":"2020-03-27T18:03:53.660Z","0.6.0":"2020-04-02T17:24:58.636Z","0.6.1":"2020-04-08T18:37:25.733Z","0.7.0":"2020-04-24T18:13:59.797Z","0.8.0":"2020-05-12T16:35:56.062Z","0.8.1":"2020-05-18T19:37:27.242Z","0.8.2":"2020-05-21T19:29:48.190Z","0.8.3":"2020-05-28T20:19:26.388Z","0.9.0":"2020-06-18T21:22:44.283Z","0.10.0":"2020-07-27T20:59:01.199Z","0.10.1":"2020-07-28T15:12:26.157Z","0.10.2":"2020-08-03T23:25:31.312Z","0.10.3-canary.0":"2020-08-07T16:47:12.678Z","0.10.3-alpha.34":"2020-08-24T16:44:18.427Z","0.10.3-alpha.35":"2020-08-24T22:45:12.368Z","0.10.3-alpha.41":"2020-08-27T16:08:29.919Z","0.11.1-alpha.48":"2020-09-01T19:24:08.534Z","0.11.0":"2020-09-01T19:32:13.111Z","0.11.1-alpha.15":"2020-09-21T03:29:48.431Z","0.11.1-alpha.35":"2020-09-30T12:22:02.007Z","0.11.1-alpha.36":"2020-09-30T12:38:30.482Z","0.11.1-alpha.44":"2020-10-07T19:54:51.348Z","0.11.1-alpha.53":"2020-10-19T11:48:00.073Z","0.12.1-alpha.54":"2020-10-19T12:49:47.053Z","0.12.0":"2020-10-19T12:53:38.822Z","0.12.1-alpha.7":"2020-10-26T21:11:54.261Z","0.13.0":"2020-12-04T21:26:13.852Z","0.14.0":"2020-12-17T20:52:45.526Z","0.15.0":"2021-01-21T22:19:53.305Z","0.16.0":"2021-02-01T22:33:16.096Z","0.16.1-alpha.11":"2021-02-08T16:17:43.097Z","0.16.1-alpha.14":"2021-02-10T16:05:46.188Z","0.16.1-alpha.15":"2021-02-10T22:17:54.101Z","0.16.1-alpha.20":"2021-02-17T20:51:41.455Z","0.17.0":"2021-02-17T21:15:57.208Z","0.17.1-alpha.21":"2021-02-17T21:16:33.009Z","0.18.0":"2021-02-26T20:57:03.958Z","0.18.1":"2021-03-05T20:35:52.779Z","1.0.0-rc.0":"2021-03-12T17:13:29.772Z","1.0.0-rc.1":"2021-05-18T19:04:51.277Z","1.0.0-rc.2":"2021-05-19T12:17:49.656Z","1.0.0-rc.3":"2021-05-19T13:39:19.389Z","0.19.0":"2021-05-19T14:11:20.752Z","0.20.0":"2021-05-24T12:04:37.904Z","0.21.0":"2021-06-04T17:11:07.532Z","1.0.0":"2021-06-10T15:52:40.045Z","1.0.1":"2021-06-25T20:39:59.941Z","1.0.2":"2021-07-29T12:41:03.206Z","1.0.3":"2021-08-31T11:59:36.249Z","1.0.4":"2021-12-22T16:03:20.539Z","1.1.0":"2022-01-27T16:28:17.262Z","1.2.0":"2022-08-18T19:13:42.093Z","1.3.0":"2022-11-09T18:35:26.526Z","1.4.0":"2023-01-11T21:46:10.460Z","1.4.1":"2023-03-13T15:53:31.460Z","1.5.0":"2023-09-11T12:14:22.702Z","1.6.0":"2023-09-12T13:12:25.750Z","1.7.0":"2023-11-07T10:44:40.760Z","1.8.0":"2024-02-29T09:18:05.040Z","1.9.0":"2024-06-05T17:15:25.003Z"},"maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"author":{"name":"OpenTelemetry Authors"},"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"keywords":["opentelemetry","nodejs","browser","tracing","profiling","stats","monitoring"],"license":"Apache-2.0","homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/api","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"readme":"# OpenTelemetry API for JavaScript\n\n

\n\nAPI Reference\n  •  \nDocumentation\n
\n\n \"NPM\n \n
\n

\n\nThis package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.\n\nThe methods in this package perform no operations by default. This means they can be safely called by a library or end-user application whether there is an SDK registered or not. In order to generate and export telemetry data, you will also need an SDK such as the [OpenTelemetry JS SDK][opentelemetry-js].\n\n## Tracing Quick Start\n\n### You Will Need\n\n- An application you wish to instrument\n- [OpenTelemetry JS SDK][opentelemetry-js]\n- Node.js >=8.5.0 (14+ is preferred) or an ECMAScript 5+ compatible browser\n\n**Note:** ECMAScript 5+ compatibility is for this package only. Please refer to the documentation for the SDK you are using to determine its minimum ECMAScript version.\n\n**Note for library authors:** Only your end users will need an OpenTelemetry SDK. If you wish to support OpenTelemetry in your library, you only need to use the OpenTelemetry API. For more information, please read the [tracing documentation][docs-tracing].\n\n### Install Dependencies\n\n```sh\nnpm install @opentelemetry/api @opentelemetry/sdk-trace-base\n```\n\n### Trace Your Application\n\nIn order to get started with tracing, you will need to first register an SDK. The SDK you are using may provide a convenience method which calls the registration methods for you, but if you would like to call them directly they are documented here: [SDK registration methods][docs-sdk-registration].\n\nOnce you have registered an SDK, you can start and end spans. A simple example of basic SDK registration and tracing a simple operation is below. The example should export spans to the console once per second. For more information, see the [tracing documentation][docs-tracing].\n\n```javascript\nconst { trace } = require(\"@opentelemetry/api\");\nconst { BasicTracerProvider, ConsoleSpanExporter, SimpleSpanProcessor } = require(\"@opentelemetry/sdk-trace-base\");\n\n// Create and register an SDK\nconst provider = new BasicTracerProvider();\nprovider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));\ntrace.setGlobalTracerProvider(provider);\n\n// Acquire a tracer from the global tracer provider which will be used to trace the application\nconst name = 'my-application-name';\nconst version = '0.1.0';\nconst tracer = trace.getTracer(name, version);\n\n// Trace your application by creating spans\nasync function operation() {\n const span = tracer.startSpan(\"do operation\");\n\n // mock some work by sleeping 1 second\n await new Promise((resolve, reject) => {\n setTimeout(resolve, 1000);\n })\n\n span.end();\n}\n\nasync function main() {\n while (true) {\n await operation();\n }\n}\n\nmain();\n```\n\n## Version Compatibility\n\nBecause the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.\n\n## Upgrade Guidelines\n\n### 0.21.0 to 1.0.0\n\nNo breaking changes\n\n### 0.20.0 to 0.21.0\n\n- [#78](https://github.com/open-telemetry/opentelemetry-js-api/issues/78) `api.context.bind` arguments reversed and `context` is now a required argument.\n- [#46](https://github.com/open-telemetry/opentelemetry-js-api/issues/46) Noop classes and singletons are no longer exported. To create a noop span it is recommended to use `api.trace.wrapSpanContext` with `INVALID_SPAN_CONTEXT` instead of using the `NOOP_TRACER`.\n\n### 1.0.0-rc.3 to 0.20.0\n\n- Removing `TimedEvent` which was not part of spec\n- `HttpBaggage` renamed to `HttpBaggagePropagator`\n- [#45](https://github.com/open-telemetry/opentelemetry-js-api/pull/45) `Span#context` renamed to `Span#spanContext`\n- [#47](https://github.com/open-telemetry/opentelemetry-js-api/pull/47) `getSpan`/`setSpan`/`getSpanContext`/`setSpanContext` moved to `trace` namespace\n- [#55](https://github.com/open-telemetry/opentelemetry-js-api/pull/55) `getBaggage`/`setBaggage`/`createBaggage` moved to `propagation` namespace\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[opentelemetry-js]: https://github.com/open-telemetry/opentelemetry-js\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/api/LICENSE\n[docs-tracing]: https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/tracing.md\n[docs-sdk-registration]: https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/sdk-registration.md\n","readmeFilename":"README.md"} \ No newline at end of file diff --git a/tests/registry/npm/@opentelemetry/core/registry.json b/tests/registry/npm/@opentelemetry/core/registry.json new file mode 100644 index 00000000000000..6f45d257e01c54 --- /dev/null +++ b/tests/registry/npm/@opentelemetry/core/registry.json @@ -0,0 +1 @@ +{"_id":"@opentelemetry/core","_rev":"193-a2644088a0343addd0da273fa09aa457","name":"@opentelemetry/core","dist-tags":{"canary":"0.25.1-alpha.23","next":"1.8.0","latest":"1.28.0"},"versions":{"0.1.0":{"name":"@opentelemetry/core","version":"0.1.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.1.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1a87cf78a847a6b05b38eba43ac8bc9b100431dd","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.1.0.tgz","fileCount":3,"integrity":"sha512-eiWpXphOhTmxzpVzdsRm+nZqpzkMA4dsgrSXHhIydI288c+I2puH1pCngjIOI0TbXGBLSW6zCgV0PPqA9Zn8zQ==","signatures":[{"sig":"MEUCIQCyki1TlTWnRC2OfPfN75yav9JJJYDohDbMMh5EQoRqEQIgeVx/KEx9FX0W8/zl7MUEBX9iNutqPAUXy98+2uoC3S0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnRF2CRA9TVsSAnZWagAA2EEP+wSitVLFGnFPuH58mwb9\ndPUsL6zsqZTag0ZvVVOdA2dH+8JuoheGOI9cf+paDfwf6iPxHSFWFKlqAE0z\nMWBGCXRfuyR64lof8Gp0/47B01x2MWZh6mUebBrTQvRLuJbs6oskIAeww1xc\nuACdNzfo9JFXBC9p7hJh7KWyHAa3umc4HvKYVirJ+a+AglqR36xknHRRq49z\nixAYUpKVOus/AsqA2clj4KIN2Gx8QwnEqqOQ9gw2I51bC0iXq06V36kPkN+a\nf2x5lX6HRwxGvI0chMiCD9dQPa4yqefRs+bzP78OJ39DqpG+CLBfdQQJbjs3\n1l7b2jkVuzkH5i/Yaiy59hFAcRNZELxL7zkS5Bib/8MsJXf9ke3XE/CvqewW\nN7DzUK9EXj3GeB6GMxxRn/CBfkmFubWedZ080zEiASkKkZyO/KJR/VXfU9MD\nun9AAn1KEbtWRUgNNpGBrtkAL4TteElY23g459x3K2ZrS8ZF0Tgxdd+CAjpY\n6yqH2nAFsbmj6SRTJ3I+eSifTsBmx7fvkKMI39q/r7f/P34Lm1r7njjycLRa\ntUEp1eO5/u+VRWnl6dQPgrL9UYMfm8Fqb3Hp8+2LvjH07170eChEJlKbeDCf\nyy15nHCgMHxT9wzlHbQHTe8fdQVOkn8M2D5h8Y2fD52s7weELKEyOtxO4IF1\nZh5M\r\n=DwnP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","tdd":"yarn tdd:node","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","check":"gts check","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc -p .","tdd:node":"yarn test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"karma start --single-run"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/types":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.0.0","nyc":"^14.1.1","karma":"^4.1.0","mocha":"^6.1.0","sinon":"^7.3.2","rimraf":"^3.0.0","codecov":"^3.1.0","ts-node":"^8.0.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"^3.6.3","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.15.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1570574709493_0.27126380746414736","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@opentelemetry/core","version":"0.1.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.1.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a7411ebbefa5798fc069c239ec51c5f79d91dc73","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.1.1.tgz","fileCount":63,"integrity":"sha512-BegDWh2230/9fufGoPehFd1cljYcewH4q014unsSnzFxldbwRujOrglB5T9i8ovvEhO3WtiXXLmK7jo/vEs6VQ==","signatures":[{"sig":"MEUCIQCMIxS6Cb64CXMn2Zce1To0/LYBc7Aq5kEfStHof2lbrwIgYuZhUAKu9imx5B7lm3dznvtRl3qhwsujX9UaqKF9IoI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdplqGCRA9TVsSAnZWagAAokcP/iQK+Ok1qtUrrPSJo79V\nZU9RVR1QVl/unks9tyIlXSMyn/MLoJZOHz+EIE50QLQF7YmA/sYPRbmRz2vk\ndPiJsYQIvBxy1I4f73hb+VTlLbSVGV4uRV3OU7VS+NEImyoEgG49Sly88RhI\n8ktOgFu83A0p+BcQhB5updryIsSf9b5odhI5NOVVVPOriCImy63fqBOJhW69\nJ+0q0vw6SQC6uN09raKUhw9ERNaxCUgfd7QJHrcIuUh2bSjRd/iIx/p1bgO7\ngYfJDRgEtFmZmVa7dq8mUgM4t5L8s5HqOLVzOsEO9ZhNL9vVpnCE3BXPaiux\n7hDio5wNYcn3J992Tm8x175sp3q9aZLdz+tsAqqJ6gaaBcs2LjviXzQ3RJ9H\ns326nxtMECuUsowTmDECbDwdP+OZoycd6By9V0/1R1icKb2bLhZM31Yz4MNS\nyopf6a0zBhxnI9Bl0Q4gkRNRXMXY1pt24djqoSRdOiqymrx63PmMYJEtXg8z\n8ezMUHCIvjSSbltKKKVvV9O54ZU3h1FlgoMK+I5VzKXTlCWrtrrGdsFl15lP\nQUfx5Aa/aLFTrjnES/QqqCoXpUw9fU5bayNOSCIb1+cm+5mzdLHGRbw0qVaC\nWJN5IRRq9eQGE+810zLV0K7Wq3qtf374kkY4gzi6ieP3uCrl1OpDbNmLti6X\noXqs\r\n=WvCi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","tdd":"yarn tdd:node","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","check":"gts check","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc -p .","prepare":"npm run compile","tdd:node":"yarn test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"karma start --single-run"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/types":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.0.0","nyc":"^14.1.1","karma":"^4.1.0","mocha":"^6.1.0","sinon":"^7.3.2","rimraf":"^3.0.0","codecov":"^3.1.0","ts-node":"^8.0.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"^3.6.3","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.15.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.1_1571183238194_0.6649760642188605","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@opentelemetry/core","version":"0.2.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.2.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cccc84399566fed20c84a44adf7127f9b117bf97","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.2.0.tgz","fileCount":63,"integrity":"sha512-YPsx+NhOX9MMGuSLvNEYwp5oAr5ZcZtAoQXErp3rpe7iddKuVYXvwTtIxr/Eg7RWy45WvA1O7ZEbepE7tSMX2Q==","signatures":[{"sig":"MEUCIBsSBGZGv0K8Qzz3TPOwcVYomJtS00cd2gDi6spEaG8aAiEA6V+bxjNfWDiiZ9M474mLfNgNkqn/hbYjyKyRqnelqms=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwIdTCRA9TVsSAnZWagAAvRQP/2r2R1VVW14nbjhp+KxJ\n+yoMAqlN6tPWUeymOEREY3XcJhhK56Aei6ULnpwjGbzCAHzCNcr36fcgFfuQ\nyRiVHGbgqkRa/nE1Y5H9552/PzOP7qT1GiT1hEmNfQd0Q6TnHAfN+1xuhVZE\nrluld2aCsImTxdeQ0oMBU6DqBGWskE8Vj1BpgM4BAsim0IxHO89Ixe/ueejm\n9JoASgtxjyU0Mj4bThSC4nfKO/VLUgXka41mOdYYJ0oIa8ghkfa4Kme6azjI\nfoAZgpWUPX2D/GTPafzL/7jzYp8XZTNbmtRbw31oKAVQbdAF6f3xImBMYySQ\nDLPiHaSYFneHXzXR6ORLxP5rwX0b406OLWTksJ5i1PngLeWEcMFihkkDhibs\nyoFYy3xnZovksc73IJEf6/1X5UU6HmUg4PeVySjVV5zVYGjBCq6fgbdpLuLs\nswtGXANs67Rn+GGhJutO1U+wb2hZ6MsP3ScOVPTbUJQHZFxqV7UIHxgzeBKU\nmq/1zVdqEFutBuTAl0uE0gO/cWk+8aesA/HIXnwHbSyshpl3Ajnj92xkKU4D\n7U7iG7zOxhLGfVkREA3q/3G3huMcEcwSAbpcISJhsjHOBVEP+L6oKTJC2qpE\ntIiEyCbOFCtJR0b1axTcO+c1xEndSwsh2a1eDL4vcXvNnsZMPciU1dCwnzAm\n1ihq\r\n=u03I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","tdd":"yarn tdd:node","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","check":"gts check","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc -p .","prepare":"npm run compile","tdd:node":"yarn test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^6.3.0","@opentelemetry/types":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.0.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.1.0","ts-node":"^8.0.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"^3.6.3","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0_1572898642459_0.26707944253000404","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@opentelemetry/core","version":"0.3.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.3.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"836f81adf5f0b9a0f441a247c84306469adbcedc","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.3.0.tgz","fileCount":69,"integrity":"sha512-77NbqaUOUcVk+0ei/Jn7hxorlCCTI8594ohs+wkOzzGsft0IkvOKxDXdMuG0BUGEFeIk0BHQ9IVNicpwXtbUoQ==","signatures":[{"sig":"MEUCIQCJ4ocW/VU+aecmRZcwpAjkcOlBWkuOLs1fVt+GimWcnQIgfTQo9lgQpQK+j8qBqfSvI2WpoiCNJxxgGI1IFeXN/mc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":114240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8+hMCRA9TVsSAnZWagAAbUYP/izAr1YOQ6ho/YFpgChr\n6yMd/MltQq4l4Al2vLiErr/HO3MjQ1XJjW+VLtBQIZk9Zt13hjJBkZzvr72H\n9uJU35g7iVlquxex8N/nU4x1DfFvw1bkOvI/Q9walgtrIr8wzjqYRsFel8G8\nm0cM67CqNYszGAwvkX4lMK5TB1W3b3rvPHbJJCdZSL/+X/wCZebZhTF0DsVn\n5uK4F/NG3m1Y9BPObBO/6qVgW2y2Iv7BQhxYolCvI105p6YQ60pQrUClMVPR\n2Yg9Vlcfyz+Q478WjdjaChx5Wfz/51TFdDdyDSu8I5rGjZWOqxLEydnE4FHu\nkJsnvk4bMfggNXGrtw31rpVKHC4OLyujLsqVGcLyOp9CJ301K04RdgXyVfCv\nhh+QAmF/viUViLba57qPrejomG81Mgama6HA/hDo4xUEfGL+Q/2UxcaNL4Fo\niyYh5DAB9gVtl1cUei0CudZU4HErVaYLzZaPvkhmDAxLkHfJ31MLaM9WiNoo\nyb1vPvHjUXFqZpDqMttJgCTbRjCsPjgv8z6fv6nBtL+RxsCEiAr130ckLdM3\nJBIdBaP5sNQYrjdhPJcIlENkBgWnXAVE6iKTeOf3g/isatS5HwhKUnN1QhuC\nJGeLrL8l6m2umvewNlt/awwcfaScwRddoiu7rKTH6h42R92tmBvz4Nkk6IDm\n9xMn\r\n=n6WE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","tdd":"yarn tdd:node","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","check":"gts check","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","tdd:node":"yarn test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^6.3.0","@opentelemetry/types":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.0.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0_1576265804375_0.07693236937968173","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@opentelemetry/core","version":"0.3.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.3.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9cee72df3511425b5a2406eaf4478f72df4c024b","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.3.1.tgz","fileCount":73,"integrity":"sha512-311ErLTUu0V9PUdgiiZEcVrWcJhPoOaBQ10QXGRBb1BXAw6MuT0t31xO0+ou50ArCttyBIx4tsqus+uJEcE+hw==","signatures":[{"sig":"MEYCIQDZjHTzFPcUbCwxThder6Xb+PefQPU7zweb/CJryKpHxAIhANalJg5p2gfUmXuq3meurvyMwBxXHF3gzDWmg2CPlQ6m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/WCcCRA9TVsSAnZWagAAMqoP/ikwNNf7gw/B+m0cb9m4\nEXywlhgaJiU6eA+iPVde689Fli91Lflib3QGWUY9Ts8jviKeM7HCSEUJqmGw\nD6Oat4IR5LYbAxsVZ48zrGA+stqSZu4VReuPr1LtPSk50PHagNz261z/UB0u\nUCAu6cDK7sjDDpOfKqipJfgi9PqEh3GrEDmMEP5Cf2IBlJlQnkhzbxri28vu\ntPY21aADvDzih92fVUvVfd4umouY7HPrycnrCCo+UtA+IXK59Dk8+Z8RLNF/\n+Tqy7OW8+f6YDSWV2shRu7h/j/WN/y5m6VxvBxHCx9zc+LtjAyJYtUA8uWBo\nS9mwgt3hJsyCJOClPI2d4clCDRMSagF0ne0GnivETgHMTgyLjKD85pr3ed8M\nFIlTARECKbHlz338V3kgj3OXkgBarWPeWADjsh97NMOhWGyOwkIOglK33nZQ\nIu8Y2c+Bu4sOZc4JaI1p9N+n7eVoKWgD0ChXugn1P/Q5uXEmwPKq1EgoXri7\nxcOONxKeaZljGCYiQWcDVXBue7n+w6uWbBt0q4BUjWAcp6Za+lP05fr9lGJa\nlUQ5y8w2eYpL6QoS4ztF4HQ1k0imvP8hljHZ1x9xMpQ1DzsYVyHJsDewlCFP\n482VaWdyGbAdPAWhloeaopZWWkV1nmccVHnWH/M1S9HKV0w3tPVyqUrMoGNS\njhEh\r\n=fTCK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","tdd":"yarn tdd:node","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","check":"gts check","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","tdd:node":"yarn test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^6.3.0","@opentelemetry/types":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.0.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.1_1576886428056_0.326875652082949","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"@opentelemetry/core","version":"0.3.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.3.2","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"958a111ace6e405c4d4607e846082c3c849f45eb","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.3.2.tgz","fileCount":75,"integrity":"sha512-HXY4BTkBR4ss9kdPwca1Dpb3KOizuGoSrXHfqdGdS1h6mzGd7zpia7z89w7yRhj4tZiHQcl9rcw/V+qdroCGkg==","signatures":[{"sig":"MEYCIQCVaIolni6qDQcW1zRt5IvTASiv8NAwIKT1B0nArq1C3AIhAOCvOwnVcg/iN2ngQhXk1SWkEpHa7nUMdns7jn/0Sip6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":120284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeD7ihCRA9TVsSAnZWagAABzAP/ja4WqcTh+SDnpCblL1J\n2y9c+lQDSeikXbL4B89o0rWiyA0hj/dkkEE9VGbD4ihmhKK6PBuWFg9Ws62/\nsr8F3vPiHt56JSVgfhIyLUy5PCtwOeuICKRxFmwEqg984jn0lY72yQ6LJ4Mt\nkxd5y+KM9quw2Vkge6SoAQKa1Pr2LHr8YRmsFaHy4cMKB2LNU94HrJEEWR4d\nPgh7OICHetBHJkCH05x0YBtk/H62eb899HxV5aCfm43iZqXLVuAbpE/M1+j0\nvp7FSsIHvd71CrCA4wZrVAc6mOlIPFb7Hj+Ej2qXDuEEnL0hD6H4L6HnxYNo\no32zIKIZkl37GldEqZZmPOsdnnIB7XdCm8F0jSMtl6IGWvB6HoUmGLZMXUsl\nVCeZyxYRyYFymicBTkRd/zKj/4D1MxiI9O0OYh4kZu1hny1jxaxbLK7WtDcw\nUu2zQr7CipkCZHMTTJgDgGiV09NPeRXPszCYgzabCPCPAECrpb/Fvj0MM5YN\nigH8GqjZWzYlwO+la+iNw9S2lC6tgsBbL5RZgYgVMIbtgmj7oCogCiM5Rqbt\nddudtJTRNvhDEeeqVDtGiMD9juy+nJXj3pL9FGAxfEx0H3CEpmDK/bMPoIv9\nqpvlBWdih/9uMiZql0F2xAQVjaaFKbiOkRSLZSwu3mBtoDtDhO1HskhNv1wz\nBXfp\r\n=LWNX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","tdd":"yarn tdd:node","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","check":"gts check","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","tdd:node":"yarn test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^6.3.0","@opentelemetry/types":"^0.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.0.0","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.2_1578088608627_0.5188007964676522","host":"s3://npm-registry-packages"}},"0.3.3":{"name":"@opentelemetry/core","version":"0.3.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.3.3","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a8e9fd5beaa14a66e89305383e7f4e81557e1d8b","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.3.3.tgz","fileCount":79,"integrity":"sha512-cG+Q0y59HMZaKisUBge8nsk0OavmVXoOeiSjBbSNzvcbFF94y85dsXNYKI3UfNeQjWy5OAE6U3m9PBqbmK5aGw==","signatures":[{"sig":"MEYCIQDo83+Ecp2JmTm0IxpYZKlKtmU6RtKKehcEluPIj4+pHwIhAOvSVoL6+CuzxOyiwDwUwPX96GiDbyDPgxDk4RuApCi5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKNEhCRA9TVsSAnZWagAAdWIP/1vK+cBnW/eJq+grg1D9\nFg7jpkS5LgbsTvYbCs634ww6rhHWJndAG3eR7HqBiqytVGd98zIwFShRu9Y9\nzcZQAV6zMwfHOK3NKnJmSXqZqOexpi3KKwIPMLm8provVZdX+Pip+aiGzbBS\n/bveSBxAkrM1Z17qmoWBHWdINttxCD7wLk5DOLcvkAHlpYoxR5fRhzHaZ89V\nJ7MHL1Fo1xlC95BHdtjBB7gzcQ3x8o1gia2tRvHq9R00vM0fy0oNEl73o0+5\nohGAi3VPqibgTowqFVnKUgFPDwrl1kxGietu3uHKUNdRnJ0IHVYi2mrgE+D6\n+2ROqs3JKxb+25WefFK/Jl9mcw2rVVDR64qHPDj7b0YRYReLfphSSVc2o7cQ\nvxToJOAb5pXd2KH8T5RIu2KOu+BUWSMRahk/tTI7JVips13/6zoz/OngYOlo\nS5gc/uh5tn94tiHOaILU65Wh5NBG0nB02khYfIe2USqWSwRkZrFY3VmQadJQ\n7O8pY4bEPeZLfPnAdcduLeSdXomn5mlMQmXmwmaWT+OlJGeeWIe7lrQL4uQ5\nrAK8o2ivZpvF9VkUkK1ngWJyWNOnIhqbz3MOgM1lUoTib6/OMFtIgQR6nu6q\nvKFXUVHXzdWB+W+TNq46IUXVSKDRuhr/mzPMhU+20D8zIaQIWL1gVfnzIDfR\nboCk\r\n=sL3P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","tdd":"yarn tdd:node","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","check":"gts check","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","tdd:node":"yarn test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^6.3.0","@opentelemetry/types":"^0.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.3_1579733281053_0.13547402955117982","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@opentelemetry/core","version":"0.4.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.4.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d6f07d1a61a7a3c8faeb98aa3072f3af138a966a","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.4.0.tgz","fileCount":81,"integrity":"sha512-VrnP0tCVZqOW5iM+sGRMHd+pRgkKMvORGCB6sdy6ftwZcoo8pokvC1KUFF2Eah/TlKDcMJOwFWEWYCPV+jIvLg==","signatures":[{"sig":"MEUCIANo9Gq772fNoVb0kstQfP37vs3P12L4jTgi4aIv4oDjAiEAnbblqQmgdmU/nHgBbkto4ODBZR90mTsjjZQ7Gn5jS7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":126169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeO0mjCRA9TVsSAnZWagAApxIP/1Y0TNlRR4G3cowd9RrD\ns3xAhCue+ZVdRDwU6D2Z9OcpLcsZrZhuburQaLnWIwJGZtIsk5XHW/LjVwfM\n6418vrz+O5+X/P0Hiy+N9JIYFwkys8NGs4p5VUoPnQC7PIvQF/dx97nBuCug\n2Tn6djOWvPfKlNQM9AHMszGA9dnu+jbi4B1lO+Zh4C83lQ+Zd39ewSbyJk7Y\n/FLs4KyH60iwSnrm4yVJdORUOfXEyAMi+1Z82B2iJU5c+ZKV+It06MX3E4r3\nKdId6rDjdGy2KnMtfbU+ZPRmUUr9YnmuwbhqT2U9GdrHpdAMLZwvX16/04/Z\nz11PegF/jVKBF1A/fOUy95/6QwHMCVWSsbTkd3QYhsA0wd2nxjB+7pidYQwx\nqwSgIfIudLtAZrOBHRFhWmzzTLe/1LwU+xuDfli+zEJC+5M8E2c+sdB6b8kM\nX4iLkymnMGGQwKgiYGFEbnCLv4plqLScTexhCdkf9NB3S7xOuESOx/owBuTW\nj+35HjqpqDNPxHxjB/manNftoXOOSDxyQmxesBjzzplC4+S57RUX/6czWoPT\nrj0mW+0Uxq6uyvNOdyH2nkmA5x3vV6sl92gEE/jJ0/XOT/QmWrPE6FSY+ZB9\nSig4kxvx/+aOoWYKh/ra3dJIGaPyxlJg7qCfJ8Mzr6ScGloikaVnDZZdREyC\nQ3lJ\r\n=rQnJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"fix":"gts fix","tdd":"npm run tdd:node","test":"nyc ts-mocha -p tsconfig.json test/**/*.ts","check":"gts check","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^6.3.0","@opentelemetry/api":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.4.0_1580943778388_0.9682686848527735","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@opentelemetry/core","version":"0.5.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.5.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b5e6ebdd304796f0fb27a3e03d31c80fdf4e8d54","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.5.0.tgz","fileCount":65,"integrity":"sha512-dh4gNuPkdRgPCRCIm0tgXiOajhens+saWXHCCMHfKqsCWvKJAfgw5Bi0FMqUIgE24dGGYuu/PJy3L6QLJvTebQ==","signatures":[{"sig":"MEUCIQCRvmOkE04hHSduLx++cPAmzlDnAwI0FuWczRNRMH9emgIgVMF86PY4254ZQBXjKze54cbNP/DcXO6cI+aj0yIp9So=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeb/emCRA9TVsSAnZWagAAWjIQAJql22D6zaxCnU/hdGrv\nYMhbTdObKVPVfdW+nHhf9sJOIIpBxV/qaaxPV/OOGlRNvmQMstCq1dsr2ecY\nJ4Z8pYcpvjJtuPegjeTZvj9z82BESFMMINHwzl/tOccHUZ7KHEYDpkDvyQ+1\niHbtmSvKQrrh0HYjf8fhuNiKbo5vpTMw27HosZfxpF058s8G2jqdZifbscIB\nW8z1+3NdGX1JvI/QJM9GHLVpGfwUKijwMGSASvXq5m4Z0cIy7WyK9dCwkoTB\ng/WKyTmcBvbc77EXDrRv8Dh4COSAxR6eEpRfVkyKU3nHyBonUt0bcX5Ap4D0\nF6F74LNuYd9UC2b3i+QPa1nOibHRYPt/x7Muejknz4HZa23lQAKqZEAzS0CG\nUHXdOucl1wDc267jSJS837x8ohDoUc5M4Ze22pzhBBJGpjDgOhi4zLxR3Tkt\nL1+Mfx62+grnENZQ7m+OlzO0TxX6F9mHBNZM9Vm29R89rCZy1bhWPTh2Nw4Z\nKdHo9KfM555XqdSb05aDtLADFHqCi9a8VcfmQJ6LR+hNdmdux225DTwZ/rkf\nMRdPlkdEV2tMNFpAUJnVm2/BKPZt6h6Zq8tQQQscAk9vjlEo/GILHcDPvyrI\nsIGRYZL9pK8P38FXivnXcXsy/WZPfvXNL0WVKB2HX7YWNm8pYamlZGmAq1D/\noqox\r\n=dcQK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run tdd:node","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.5.0","@opentelemetry/context-base":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.5.0_1584396197509_0.035453989035695965","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@opentelemetry/core","version":"0.5.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.5.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e9ebdcf356be848864113a1d024ba3a1a4150102","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.5.1.tgz","fileCount":63,"integrity":"sha512-oBnyq+NI4Tk8zxAO9MGt1v2RcRUqoz8UTxPhKBbJm+6u0I/HCDqW2YlL/nQVX/gc2D+CszWBvf4ywazYTVZOtw==","signatures":[{"sig":"MEUCIEtgAuTn0CrabJ2pdC5GgfDO9YCwJF/iN35YPbyojlafAiEAuOB3hpr34tN542pcIRS/8EwYL8u+xmFIiqza6ggO2ms=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103840,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedBGLCRA9TVsSAnZWagAAN6UQAIb5nK9Xt2ETKk4VD2n9\ncf6vZPfWRkDBxMnyhtCmnxAteZNLyzxlABH9DaDCGTTTynKA/zZO/LlpgTNr\n29GOfEnFs/gTPqr3WkwnbFRABbvdX8TP5uZWiy3p+NwOZ+uoPbkL/jLBiKHP\nCmEVvZgPpFhTOL+Ycr1Sx8IUSXKIZtMqY6bpvICLYqMfSzH0cnr7029KvA/H\n0SkbnQcot1OhKwi2L2wtX61mDv5G4sxRQjDEsCWjE2RHA8pfnptJLDQu9u+5\nt+fUX0pyO+ZKB41rmyRYRI9iHLEsOjGMg7G4hdHe6e/g6GAHc4V7MXVfqw3r\nVF4QSTpkkNZ5IyelqvippeaxckJvmfsPqdo8CiAE7rmTWW9ahJ3ELVzj9FMN\nvXfpFfkpEWfSzJgGfoHGtlNp4+DnNcdVrnEhPBu8YthWVLmvFq5NUkuas6LA\nhN2A8aSeoQwvOSsyobLX3KXbLP9Qco4DFydZMNfTiCWPbz5kBnLFeAFJvztZ\n7+6SfUixWG6f6GIXbTRsjrtDb09CGDxa3qMucd9Xi32KfKtkQckCHgec7cUY\n8NDdyvbtL6vD6OR2jkdyJuvlMj9NnsAEfYI2O+74NrLtBXY9Biq3coFhXvjX\n3hxOGShGNj+EBX84PsUnyuCwTJJN9yr4bb1kxv2wum2YEV8QzV40Dueu7QLu\nKHYj\r\n=fGvb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run tdd:node","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.5.1","@opentelemetry/context-base":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.5.1_1584664971483_0.7254004628966708","host":"s3://npm-registry-packages"}},"0.5.2":{"name":"@opentelemetry/core","version":"0.5.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.5.2","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"841a71948d612d4ceb1a1d74744fb5cfd3a9b0cd","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.5.2.tgz","fileCount":63,"integrity":"sha512-bwUVXqWpUujce8XZTbsZSRwXz1HyqGYafwCx3a8wKt1erDKBwhxwTAagYk0D0gg/r3BrYwlZ89Qy3vnLGCqQEw==","signatures":[{"sig":"MEYCIQC2h9uVadCAU/X7WC7mjLu8Fh0FD9I/7VYHou2l3XY0+wIhAM1ojwGtb6euPLUHj+yizH4uRGjyrt76DKUgYWH9qC/p","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefkARCRA9TVsSAnZWagAA+SYQAJG6IWFu2qeL2+GTvkQR\n5bIqdILnJtWFNErqiqQrHrk6xV6WA3jByH5nWB64SAaweOJ9nVTAL1Mp9zY/\nLYLVHV26eEmfG2/gfpm1COhD7E2qCpACXLLOyz9qGCEQ4wRl01XFY7tsxUig\nJifT6nycGIdDnnDma7Qopej7ECTCI/UYBNPlu2xhSyBFWptMuttlChUugSK2\nmvcHL7SUBfEHTtPoIjEs8xLFl1pAElkbyKEl/4+iUMNueJo+faqhvUJIoVFz\nsDR36+LpIW3P7+H+9+NL6ULjOECAyl7TkwxsJEtuYAyQUmur0V0esOw4XPwA\nucykOD2qvFNj2b0Edh5zN/qfmJ7qYmaDGXf7KJpaL2/ng2x4yynKUxkQ+o0L\nk8wdHLvtfwJttxQ7m8xvuxAGTnR2YPeW3YpHjLOBi4jUWHYfi2fsochhzr2c\nrvLYdK9KIs3OV7JjqEW82qRl7HljyOe5rlUGkAj7MydxtbPUPfRgGPWY3P0O\nlW568BzHvf0m6UfUnyr1thh/IWTQGXgC+JSxh46sWS7+NzcgDJaHEYKM2j1A\n5yb81yYoFunEQlMLk8poqWzMbbI1uHivOYwyDi5j3BcmWMs9RvF15sD3gSjz\nrlt22ylaO9uIOKgjwGzOILIGOZUyoI5qgGnw6Rf3yac7fmmidybMZtV5EdgL\nH9Hf\r\n=s+Ap\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run tdd:node","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.5.2","@opentelemetry/context-base":"^0.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.5.2_1585332241367_0.4864436355030759","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@opentelemetry/core","version":"0.6.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.6.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"aef1f2fd57fe70bb2671630e4433f424ebd69f16","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.6.0.tgz","fileCount":63,"integrity":"sha512-f2I5MaidkSSznSr5qg7xSU9o+Bkvn2BlHoYMo2NlhMQsg9BWEWTKSyFlunnIf5yG2g923VYifoqJ9tfNkAaOKw==","signatures":[{"sig":"MEYCIQDDEEemA7/0PNl3X80Vr8DFVp3bgWUigG7xTI2KYv7MtgIhAIQoMOtu/FjU4jgXmqB/qng+1c+UL7uf6D0gn6rYCB6u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehiC2CRA9TVsSAnZWagAAVzcQAKCCP9gUGVKp2HdnjPmK\n8NuxtFZ/fuvcSXTkEw8Cdfcv0MyuAn5SmZHTXAMmVKm/LLit7tu7HtGfoeKs\nWOS1REp/CVGkCSqBzS9WAshkhx+JQz59RO8YtcQukMUSxiA6E3nilviqb0MS\nUTJzzc3zolQK9WrRucAQu/GYZibk1G4L1F7rxCAi9i71La652i0SbhPtPjJ7\nUjC8U4CA8nHJtXTnCDIOQyw/MT7SbwCDX4qKqMo4rlZeuWPmloSLwzj7fdVD\n16HuIMicWNfGSGsrPHYM0wATPZSn1Nfyw/5icBM7192636jsY/5N64y+QtfZ\nitS992kW8aF9i0nWmeXa433ySJJEV6a8nRUoGE54Y2KhHHnaokThhjU9Ha4w\ncGyHBcBNnIlopwFfnK04u79y2AiTGdUenVI/azcNuse71RkxldBQVw3tlOvl\nMJPJmvBRfmHEG6PZtM59d26mQMzc0VP9OAAHEOtbeFRk5XUFV3UfttCpGzBa\n8CsSPQANhsH4otSye0kcwr1gkHbnbfI8VV6NE+9yyE6SeWME42Ivn0026u8y\nVUlpoGu2qU21fR2emVSC2dqPI3z72/Mh0PhlOXioVSwatgyRZlfWuGTgQRPG\n9r0ZbkwBps3F5HwH5DU57YpiIJHYi8hmwAeIyS3qHKY7z8IlICcGc9BCMMoM\nOxDg\r\n=fNTk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run tdd:node","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.6.0","@opentelemetry/context-base":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.6.0_1585848501855_0.255208249372459","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@opentelemetry/core","version":"0.6.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.6.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0cf78e49ae5c52a8ae674e9009e47cd834d24b6e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.6.1.tgz","fileCount":63,"integrity":"sha512-4EtUcPljz+X62A9FKnyQrpaYCkUr747WwwP5txHFTgDwpDuLRrbfkcg2YkDORxF2SdSVeOuwiPhDflQA/nNFRg==","signatures":[{"sig":"MEQCICO3/fwgy0ly9184qRp+ujsmeVmME3PnAxoFnPAZ0Wx9AiAcdKOJSlW/5Dl0ZscG2PEbHuYic8hcoT+fYLUer10+HQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejhntCRA9TVsSAnZWagAAgecQAIk1dLgVtrxJ/Bmd0pfM\nnE86AxezaV6AGgxKhqhsTgCqS1MHjKS0bNKYdBKeks35BBte37Ev2D0NItBa\n1T/MMa1VP5Sd942wzowmN/UjFPtuJ9e3EfpqTmh39L3pf4SifD5i7PVsRrZ/\nkT461rL0k3+wYHtHeEzDozjGer/6ALnn+xhdxJb4ffNeZaofa8rgiYGVxCdG\nrIjwEXZTyiuGTQxsrIhmHkOLvjew4gJV3LdpgjBxVIs7heY/Rk8bFysvU6b+\nNteAqPKAWjHHqCAqgAyLIouf3HNXYDdt2HLRwlFd6XfjeClZn1z1ZuD07W8h\ntUZqbyW/8KfHkH93dLZC5KBsJiJvjjQAa+7WGsIOe6hZK0Cuc17rxY60wqTd\ng3IYEvhfq8yrkg7kgBJB+dRyuIchMUh8+O38yRSGx3I1irR59H/Wflb0mKre\ng/fyalaRxU5XZhetqUf0ehyHrHtB/+hNxe5DythsioftymnwySJvFyd1ktIq\nWbsHcTY3kf2mzSmCTZarlouHG2jjlBkX76lTY+BmZdGCqUfDzZRR4FxqaEgs\nr0AUtnHWj/NUZiWr+UdaE0EQh64v5pb8x/GEbujh0Yp2P7R1b5M7vd9MV/6O\nDvg9q4Kl2NSrX9R0Nrdtp2GTXI+msugmu4+WjCfmMcLDGjEDf4bu+cz//7sd\nPX3N\r\n=IykK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run tdd:node","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.6.1","@opentelemetry/context-base":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.6.1_1586371052554_0.8112940430400202","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@opentelemetry/core","version":"0.7.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.7.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"26cf1fb34af5a58b80a123d3303afb33df6e2f0e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.7.0.tgz","fileCount":63,"integrity":"sha512-QcS+5+R3JmUTQEyOtt5dn7mhoQMrN5fEZo7aVxOvjMMLqHDsy8S7esldsyAzHC+KsRTlLGFVY3ONF0Y/0ovgnQ==","signatures":[{"sig":"MEUCIHZc5G743+kUZHfAsQGoLhwz+fITdM6OOprHJMdaqPR2AiEAo+6z3KVy9J7nhED+aLi/asBZ9GGH8Kl80UhMVvFYBEY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoyyUCRA9TVsSAnZWagAAIFsP/2ac5wKHrxCwCciEx4wN\nAAYmyuWE5VX+GoRAN614/VEFHUpXgzrtJ71oBE9pZ8huXNn3Kbb+JZs8mkfr\ngy1j0g4cua/W4kjQWxSzs26ptnAy7goj8Gdgg79QLhv08VLDNSwHHaM3lcSO\nQNNmrTICegoB2HkHLHMa2ihxiVelr0DMfWd6g3C4YAgYLVYxVAOLI6jVDb8r\nKUGeMiTArcuMhkDruQoWUgoTe7Y76ow2JL2y80xtANW4h2ZsNJ9T/QExc19f\nM9OqfZANmMkK55f4FbgSC21vqfch/PUJ+B6Syf9mY0Mti0KV/6ieJWI/vON5\nyKRTKJABFiFaCFV3hZIuxv5GvO49ocZEzoVTf164gE/e4hp0/YQHNkjynQzO\n29tuMichRlmVVOcbhfiwNX46dxUdIQJUe3kyiclB1fbfkfEZfud+6GlqP03D\nybBUNOkqM9JlvfzVZiKjjWxclYzzKidfUgrB7AOlRNTpP9RrYgeSAu6tAAre\nApuESbkRz+vd9GQnNWvTqPZ5y1YvsEjo810H5z/m3ADh6+wfbkjvRMBNR6ak\nFyC/r7aApVoSZmlt6C/31ECkJzMIqlJligmPXiPcD1ARgyb0SuaN+S/wG4Pl\nr6QqtPz5Pg15v08AuHhyHHjNmvPfUkz17SG8bn7O1DEmVCYQd6yEL2jjtcbu\nh4Ap\r\n=XPRt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run tdd:node","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.7.0","@opentelemetry/context-base":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.7.0_1587752084222_0.6528130546987163","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"@opentelemetry/core","version":"0.8.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.8.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6ef2af9fbc23c9f16d014038af07240fc7a556cf","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.8.0.tgz","fileCount":75,"integrity":"sha512-YKB+/OrLRsHYPzEMIK7QI+mBuyIjqeNLec3KcsAQQ3BEkd6aZzkjF2L/OG+nu2OV3yHDcs1/HOPz91zwYA4TVw==","signatures":[{"sig":"MEUCIDyTy3YMyB5H+7UMHqVXdv11JyCDaIL9uUbFOS3DQNSGAiEA6kQTGxCuosQ91v6yTF2N8k9pbXjpNuZRUuG7rgAiX7E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeutCRCRA9TVsSAnZWagAAMcoP/1gdcDdnqpKZMHNj/PH9\nO0nijy8T3X08CBee1V7sP8lJx5vPyV5fxZeqce5TrYTGjNV4msRIEllP/4gA\n5QLzbdzi5Sx6CoPXNNyLfYo/3DLyteFt1cI2R7jj8+FIONMQBjpIIYz/9Z0B\neP3+rgdJN0QaN8yvIpZu0B8O8KuGu9MdSadLQkQLcAaiTQqWFHnJKGHQEWf8\nqh4teo4dWD1/iEuluyxnN8imCr5DtrHlGTTQwCLPO7J+TtzLze++u7zw5mDO\narsAq2TzfQRtUnhirOExJC/Ldc5j4ddk/KGVLSKBVgjH4R5zHNM57tBDuF4h\nMMG5jbMzu4M5A7+m432wnCUM6YZ/Kl8CdDlahfsXtZFoahcvdWza2Baho/kE\n63dmj2wTzrcj3nnKt4xGmkMBqL83yHPKyITdf15nTov415+lT54+g2V5TqHn\niWF5TyoTzqS6TlKisDvpo1LzR8ot6x0EIjNODSUKgzvGUttMP1b7F+g5hlGS\nbnBl8BIxopQwcanV0DfZZzZs7IpMCOfKhlsqUaMYV0A2Uo4K6a9GbEyBRYub\nlkrboNQu2famD7kzeEN4Jf/rf1Ya7SOytmTytSQHTaLvEg/Vx3CKtfNfolWg\nSc0/+18IouMlfcDXb4Ai2FzKFx860poGiA0vZanf1UNv9MmYewgyrT+Qy3D8\n4pNy\r\n=/zaY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run tdd:node","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.8.0","@opentelemetry/context-base":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^4.4.1","mocha":"^6.1.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^6.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^1.3.0","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.8.0_1589301392973_0.8795013876198314","host":"s3://npm-registry-packages"}},"0.8.1":{"name":"@opentelemetry/core","version":"0.8.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.8.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8a783f612fa3dad45b70810550127f7806bb8093","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.8.1.tgz","fileCount":73,"integrity":"sha512-RpWta/kg3LuJ2YxX02wVidXb++203OMa/m9JAfDG//BcbPPmuYguIDuEPn82OnCtBHzSXeYK7HT+YpOIefpk8w==","signatures":[{"sig":"MEQCIE2iuiGbpmYF9ef5G2SpD4y7ZBv1R2N7kIOSCuPNzZe0AiAXIzzEAISIivrhDCCsaqblakVBxDHxvtG4SnQ1YR0TtQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":115500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewuP/CRA9TVsSAnZWagAA37sQAIGn+MyO6y7nUKGb68vM\nkA855rkfLjRdOpdg2DexcDXRRZxHlJ+m2qL88e1TMN7TWRgfU5BjEg6D0rzH\ngjI8JDIuGlsjluwUDfBYsKSYxTI22YK8mJinsfVeHWFb8VZJQ85dzeVJDyie\nbw++hPUrXVYmHFilyLS4oj7EWYHyZVrKdQWMcNOVoFyVlPb7gpcpGYRgqas8\nZYrJ+8ItS4HH14D6gR4ei+1Qq6BAkn4kAkUphTnw1gdGwoAqP0I+0iq8+KON\nYFoTTkzDtXStlVlmsW2ert8Y8gc2Tmm7XcmigpoPInfK012Y4Vwk6AQ6pq65\nomy7AFRHLpdQn+7k105dFcifPs+DBHUoETfOTOwXoh7VP60bqHsYNfb3W9Qv\ncjb+RQB9nDORtrSxyquPfZZFklzGLKeNQBjJmjB6tjpQEFe4PgEC6pIi5t0g\nJfXtr6H9svnDBVLtO2Q6MsVlay2b1WXiE1iC+yU5t0W8LVrPq6bYDybPsp0R\n/yE/7D1u9Zhop8Ru4OwalKHbq66w18pdaClbZ4pdn+cmu6siGnB5c0W+i479\n0twLTpi+2G3YJT0p/CrLfObA8mjJK27mlE655O4HLG/kiUOL+DbwW3A5SCQ4\nqjvEoWiE+O0bvTBmCINBCw8omTOVxigxpRnbJo/OHziNm1/YxNJRuTwMhv7Q\nan/s\r\n=a3XD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run tdd:node","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.8.1","@opentelemetry/context-base":"^0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","karma":"^5.0.5","mocha":"^7.1.2","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^7.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^2.0.1","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.8.1_1589830654443_0.9177760856355242","host":"s3://npm-registry-packages"}},"0.8.2":{"name":"@opentelemetry/core","version":"0.8.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.8.2","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"044c2d9aeb834bcdf71a08dea9f86465dc8605fb","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.8.2.tgz","fileCount":77,"integrity":"sha512-/tS7WcrYLiqe0HqDvwhjO92sywqMTNVLV5LNOP8gg8UKlCuZ24rn5MWmzpfi8reXG1WKZtaANAXdqtRPkg77Bw==","signatures":[{"sig":"MEQCIH0svaqhcUCGdyrAl5QALZK0eYm+QCiQRhb34Zho2JH8AiBRyekj6GTQM5vKS+jjlgzl0dmfk2A8mgP365Vl4uo4dw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":123545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexta1CRA9TVsSAnZWagAARuQP/jeHpC+8sonu3dNHSxR6\ngeEYlty5i35aSjGrqk6gWUSWmv4s6z1ZfGi61ujKbANC6a13S+nYZdeND66P\nXaf/z5ruYGgRAonWLYoqaEJ+g22mllgtlmXW+pieNeQjWMtk0RIAkAXmTwQ+\n/7reKtI5+anKL9h/Eu1vQixTMsCAsm5nCO6bHABVo6szT16JcliHPnDg23fD\n6g0t1PvyG0pfv6tvLKRx1aXUMQr/MDILypng852283qYTzvHWqMxZqC688SO\nhpPrwoPJlIL0bV+9YIgyBCBewwII69/MsupwOH5OY1BCP952W5R2DAAFKZnW\neBEcNe/HEOJc+B/BsuK3dhqIVkmWA4mS2ldvcPF/jAesZqxWIBwAClOPocnM\nUdF9nW98eCJuhwM0NalGGwMs8lzKuLJkXskI12S9jhswf3TUgnQmxCvZoIMQ\n7FPB8cLrlkCmQd55kVxGiupya+vu/ufNTLz6vGtkpO8YJKc+awJnxw75t8pR\no5YMj391FHD5j1cU9iYnaRdRbPg4vcFcyUnO86MiskTikzbAo6nTFPo/ORbt\n9mbbwLTWQY01O6Jp+qvd/IK8ENVcQZIUalcQS9PtzR1yYEWagtFGlkKxu7eV\nQaftVIttoGJoo3wkoHMr0iw4IBhDaEWks/GnkSKEHn5T4IGiXLWOnE6jJMoK\nDzi+\r\n=40PC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.8.2","@opentelemetry/context-base":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^2.0.0","nyc":"^15.0.0","karma":"^5.0.5","mocha":"^7.1.2","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^7.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^12.6.8","karma-mocha":"^2.0.1","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.13.9","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.8.2_1590089397348_0.22284983598692554","host":"s3://npm-registry-packages"}},"0.8.3":{"name":"@opentelemetry/core","version":"0.8.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.8.3","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cbedef0cc40af9e9a96204671be1b9de76aec2e6","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.8.3.tgz","fileCount":77,"integrity":"sha512-3MSnQlFWj6ikZU5QLtiZseL25HzCi0XpTvMMKMW8x/PlOsqBBD/52eN7JC4587R008ZUbx+7afB0yewBTseY0w==","signatures":[{"sig":"MEYCIQD9aheChBYqChU+cTZ+NUkfWrbO7X07a+3aaYEbP+0LCQIhAOwguLFi8z4pZ2A4F58AFylk141RdPTwzIfRl2MFsj3H","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":123545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0BzWCRA9TVsSAnZWagAA1B8P/2fD+MkLYF1qc9t8saHj\nJVtD/+yWKyTvnpH2UivDmge5VONKqSAiQYzkdoPRxjKJEZUXBnOsCW882cYs\nyP6Y3nQmqnlm9DMpO5yvsCCZ0sSK/JxX6h/2Qjunz3Rw/rWEagPmylDg8xEH\nLwBroNGWhNRe5eyjzOb90D4b2g/GXT9gYRr0QFPAPhMC/FN2Qdd1Qm6gvhNG\nrfC+dembHvtz2qM1J8sP/BEZUEU3cnRKcxTaSKt11VrO9UerY7e9gC79hSur\nB3d2SXUT+D/Z4WNflJft5s6sie14ILBghQhLK94JCHz8Bu7W33YO77DHV/xs\ncunPuF8gLojbyd2D3ADog9DVjUm0n/Qv9ZwiSmzpFDnR+FC2Os6wh1RNnsJh\nnStIDqsuWr3fA7awNs/Fu50OA0tHgZd3NRSg7evsh2aGT1OLqUvFUEu05T0n\n3C+TJ4TXSW+KHOQwlfqV46sbFYPm8vd709j5yQBRY0kXUOuwCxLFFjqSVjK1\n4beO4zmAQUwaxAKzMrWjhWd+qfndQLenH9Hm3OvpzUahgyYeNXupEouPv6xa\nL4YqE65QSQJ6CdhY1w/15IZV+DhHtr5aUXSO0YSa7xM2KgHsA2jwhohkhXva\nXrl8SUj5WvelA1HB2tuJrcKywPsh9gY52iXgHik5J5su60R39WzA/o45LiWr\nkLA/\r\n=X782\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.8.3","@opentelemetry/context-base":"^0.8.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^2.0.0","nyc":"^15.0.0","karma":"^5.0.5","mocha":"^7.1.2","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","webpack":"^4.35.2","ts-mocha":"^7.0.0","ts-loader":"^6.0.4","typescript":"3.7.2","@types/node":"^14.0.5","karma-mocha":"^2.0.1","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","@types/semver":"^6.2.0","karma-webpack":"^4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"^0.0.32","karma-chrome-launcher":"^3.1.0","istanbul-instrumenter-loader":"^3.0.1","karma-coverage-istanbul-reporter":"^3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.8.3_1590697173750_0.6800951396210098","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"@opentelemetry/core","version":"0.9.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.9.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bd140ff017094150239430847fc7e2929dd91d6f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.9.0.tgz","fileCount":77,"integrity":"sha512-OU4qmYbDTilvdNgr9rXIGgBh1GENPbQrkyAzob5l/4/blqTDi75a5S/ZfkNjweyVvufVbp81rpvSxu9oN9tg2g==","signatures":[{"sig":"MEUCIQCtrw6VF2Zx42BJGjz5Ud74PW0c9yAMXCgBgNvesitamQIgGsNHiCUmauTU1VSnhI0UyJZA78B+mV876PS1tDfgdM4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe69tTCRA9TVsSAnZWagAAvRQP/jOfJRYXnw50uiqA2KjI\nluZIdux3R3sXy4yWIsZtI7ExV2apbgpBVSUaxML6Cytx+ThqwG0TJIoVKQ4e\n0He/gYqHtZ/oiAFmNlPvjUiFDCSVNMrit4BMSFoh9rtJdVuYNJrRuuJIdVPB\n7nB8UIGJbXaap70t2WzwKVzrlk4VgxEpbKFjZna8TyE7OOOrOI20wUXUhxzY\ngpknbiDWgaheCT6VeXOaYePK5FOzJUkfALcCozkhtwqPyEv/pvzN6SVY8EZf\nQzIVMURuVFfizVZA0ELxCjSrNMLO0yPXVOIUXBVFFzop4N2J/37NW0l5ckxY\nYApyd9VwTXA9tNUUpU2dKIriI/qPrpf6cG+87eR/hH24ptB8TpSzVEp3Ixl2\nEbP4E+t0DhGnUSPAsKldNQDNX4iRbgfgFEZnaW3xR2PkFu8kKEAXgRX/bGdm\nfjvB8W2aXbEJ7rzVd/JtxnLaUQFumImBBu0wl8IJL6shv4PC/GfFeOkKukU4\n967Q/RdI8ZjQFN17Ch47UgmB1+LWnXoVZZG7UEvat0+vuZfgyafGZvmda6mW\n1SPtXR8/aFr4Nwdw+osk7rueh4do4a2+8UE7Mtwd5yXMJAkhGXNoOmnnL2cG\nQA8u6x+O9kzV2vqguWCjnrS9YfImdWrGw0aCK9irh6GYA5BjnDkGUEfi21uB\nXMPv\r\n=p2bg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"10.15.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.9.0","@opentelemetry/context-base":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.0","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.0","ts-node":"8.10.2","webpack":"4.43.0","ts-mocha":"7.0.0","ts-loader":"7.0.5","typescript":"3.9.5","@types/node":"14.0.13","karma-mocha":"2.0.1","@types/mocha":"7.0.2","@types/sinon":"9.0.4","@types/semver":"7.2.0","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.9.0_1592515410507_0.750206273799493","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"@opentelemetry/core","version":"0.10.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.10.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9fd2ea1ca305c8bbf81292a4e2f9229075a1f392","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.10.0.tgz","fileCount":132,"integrity":"sha512-DmuoQHAFgrGXOtry4rGOjcmPXJtsnigstklis71eNccIzJmFXnXv27Tzud6Puaabvd7iqSThJmQASTLwJJQ8hQ==","signatures":[{"sig":"MEUCIQD7WugFvCQ43imbaOC9KeptbMViJpXhXfuL/QKZLUynRQIgSdaDR+9ysnsQcH7kmFS+m8I8VXLAG/NQgfZsikhAamI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":151988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH0AeCRA9TVsSAnZWagAAvJoQAIHZ9xDPpOJI6GwlQZBN\nlKkXzN6NTTae5L28EKyQqDFyiYKyeSTYS1g9pFMYdS6hh3uEhLV/C/C4kaYG\nAProGwBThn7g+Nqt/8lxxWlRrGdT0/qjUTwj0d/TxuvIr+vSC+4izF1E2adS\nW6hdk5rPlfUVmPp2QkRwxVLcSb9rxjFAyYeiQZbDqdwQbLSXgEwedfdFMl4q\nBxGkvPIcZFvtRn40lyTiF7sQryrT8qThepPMwkozjfYm98Dq/QXedWdRJhsL\ndTgGCfZypLQHCHsT5Y4PwCFUcv/2UDtd1vreND+a7sY9MV7iCy0xMzSS7Qqy\nF00lnOLqOqmUNDpVAB0mh98YC6lP94diIkNnKpaiT9Es8VvVfo6JGc3/N5/p\nBoJ9S3dApcYtwWtMfX1JQ7PSOkO9P5jLwTZb6rfg+uFSUeBecxi323ZR8qjH\nDZDKBa8Zc0fbgG8VTp/lW76+z2FqccL0KvRmOdcu8D0dtkDtSzna4ewMgtDz\nRF4Zohpj8wHIhfnxZcy/FoPncqXT1/tnUIJc6ct3xe8FvMsHGWp6T50BBbKG\n46dDdGUYt/2YqoM9yU9+PihACXAq938hRI5keAdvdOW5oZDS3wVT3WaQlQVi\n38aPld+s7M/m4v7puu70uScRqbd6UxW5q8WvtEhX6LvLbZxQJ6sPMUz8gp6S\nZHUx\r\n=dxqZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"ab62a4d69b99b3a8c9c26100c04f3226af7859df","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.10.0","@opentelemetry/context-base":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.0","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.0","ts-mocha":"7.0.0","ts-loader":"8.0.1","typescript":"3.9.7","@types/node":"14.0.25","karma-mocha":"2.0.1","@types/mocha":"8.0.0","@types/sinon":"9.0.4","@types/semver":"7.3.1","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.10.0_1595883550419_0.6377104376618019","host":"s3://npm-registry-packages"}},"0.10.1":{"name":"@opentelemetry/core","version":"0.10.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.10.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"03f5fa8d924d681e3d7d6508cca6f529eb686e97","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.10.1.tgz","fileCount":132,"integrity":"sha512-OiCsZl3BS12iBEQyOZHJnh6BsJ0QiOl4B8bYVFpaqdRfPZSpD4o6hUWti5Fwco0CXOBI+NUN9UYiZeNZY4AelA==","signatures":[{"sig":"MEYCIQC9HOvarOxaOTFzMnrdlOhsi0ZOFpgj7umQ8WUvkNj0AQIhAO907ZD7kPV6yXu8tl/Q4P5zWq8FRYD/S8sA204H2tV6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":151988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIEBfCRA9TVsSAnZWagAAXBUQAIJ/anPSlRCEUBeKLMOs\nT8Z6sLgBLiM4Dw2jnglRvI+mhYUrpy4P6japrgwuoxfO4iEztUJcwO3mI/FA\nmQbYwNzLOfUnXJC3aEWci3cOoSdnO/RAWujnLbSgDDhyFe+zR43ATKqltL11\nwbQ0nqQhL2Iw+8p50bQDCX0uUUH6du0Oah+sT3ThV2kRLr4gPz30w3fcXPKG\nz840t1ud857ZmrgW2SltaD8fVTvAqolO69BOoSeO8Yhu1qDNB3BeQqavr8yw\nrwA2gzefGHsWvALOmKdIOq7BIFqCcjDHpj+7TL+8Y3v3Pi0Wuc/ma99VjPDA\ngbC+/uXJRISP09Zkk7BrXsaeZDE9REFHhd5fxG2sVethoXPcCFPZl4D6qycO\n3OZpE1i/nxNmmeNPowxMIgHGUbjpqFYGOYyUkw4dauD1bkdKP/4gl/PEePRH\ncz91z4rajz3QQohpmyD4al1h9kTwWmuHh7shUsP4HUAwclRhznV8z4WuBG0Z\nz/zz1DT6iKMvA1LShRHc7p4x7c5urmM9NlK2I43Xh+ZQ/QAlYkqcxeJKgb+H\nvnC88+BQgXA+iqFWjJQ/qOanpRmiFvlekKwkqq17hon8Z9l5Zt6vjKA40aHr\n1NpYltGe2lrfuM9MTSXt8gYZLBlP3e2KkRCnzgHWTk49hc/J9URmjfKjdzAG\n3Go6\r\n=cHvu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"03981e4299282d0611d1255ab0076368d5830753","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.10.1","@opentelemetry/context-base":"^0.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.0","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.0","ts-mocha":"7.0.0","ts-loader":"8.0.1","typescript":"3.9.7","@types/node":"14.0.25","karma-mocha":"2.0.1","@types/mocha":"8.0.0","@types/sinon":"9.0.4","@types/semver":"7.3.1","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.10.1_1595949150752_0.37596087245173226","host":"s3://npm-registry-packages"}},"0.10.2":{"name":"@opentelemetry/core","version":"0.10.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.10.2","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"86b9e94bbcaf8e07bb86e8205aa1d53af854e7de","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.10.2.tgz","fileCount":135,"integrity":"sha512-DhkiTp5eje2zTGd+HAIKWpGE6IR6lq7tUpYt4nnkhOi6Hq9WQAANVDCWEZEbYOw57LkdXbE50FZ/kMvHDm450Q==","signatures":[{"sig":"MEYCIQCJhnyg20w1iCz84/0q35iHFsDKUUOD7NQa9wuBsVPvgAIhAN89EdmtsTsqD207mJf6w8siQJOvWzgqThZ7i1+K1SBg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":154190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKJzuCRA9TVsSAnZWagAAa5EP/R63gy06JuAUC7rfTOEM\nsn2lCsh4yvANzfHIsG8OSOacTNk9anAWD29wcP+AkqP8Y+RBAzitDfNdoNLc\nMaNzmE9uJAT4QSSzMznMxP7s5hWGEBb2HhJgyF+UNxyEdbPs1J5a2AxkIX2Y\nLBthInJyaIDwLdLkwx+amOTKtCWyE3cViaCkH70y02syCpuU9me3Faus8/Tb\nJaHQ5s86wQ0csNibvVVVd+pBQgK/Lik5zWN1cOX4p2jB4QVDctD0FN/HdhKn\nAcg/dtRwnzURDnmFEj5ixo5FZ1nMehYV69Q5qZgJuV8Y+Oq4N3D5NDTxD1XA\nWV5dS40Xvys2moR8shj3jRz6oS2CwZJfNGOSjRz0VWSbTo+VHxsaMtdLVa+U\nDhtLoeAa+Xq08QDJeVVA2TCr+v5T6imQGlT4rYoLtyct9XHAVSMn0YjbJ0hx\nc+0YWqjMYt1OjBPqA4rMdU4K04VjKbDgGocYwMhEej4dirq5fI/ZKK7XWDzH\ntQZEYUKidco0T37X2fZPAhjQ+175lrP5p8h83YYMzVFv1XWeAdx8AiXqTsWj\njBGh2XsEsrdTlDbc6gS28KHxs9pZcfvwcCUEp6Lx01H7P/ZUERhQqNy35Kw2\nrj8dyh6E15Xc9O4tV4ZWuZe4qvOHyvKYCxZBZgc2OcnNSW2pOhQlzVJZnRuv\nDb7C\r\n=xNMg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"b247e69034a7888a842fe75e0a5ff06f8bea44a8","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.14.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.10.2","@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.0","@types/sinon":"9.0.4","@types/semver":"7.3.1","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.10.2_1596497134283_0.33114896641461433","host":"s3://npm-registry-packages"}},"0.10.3-canary.0":{"name":"@opentelemetry/core","version":"0.10.3-canary.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.10.3-canary.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"257f5ce9485325b846e2897869babe3318e006de","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.10.3-canary.0.tgz","fileCount":135,"integrity":"sha512-LWFvtLUXVVs4vaTJZhsoq0G76BVcBLj3bj1uB9ayu1ZqbhGMZloTKsTLGxr8hu/y7mjRn4dsQhV7rx+mXm1rdg==","signatures":[{"sig":"MEYCIQCLZDXVwf3HqD3VgWZHlLiXgJdsSRAE5tlmVoXxRGJ3ZwIhAOeaR0wvDBSiiC7p8kOQOw5ss2uZY/xby049P06jfKh0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLYWXCRA9TVsSAnZWagAAEUkP/RDubIHvFSfvBAQurySL\nZKYToSxWiGgkoo9Anb0Pn471r0EonQYNAXDAB6EgFtCfPABa1AhtQsILq+R9\nRL05oJkh9Zb8yiB75kxGLZ4gvNQm+1P3czXVRwDq7L7Fgw4n/TxPYnifqPj1\nvOamPRBF1WZio7MT6Jz0HvnLPPIimK0VA9qctjYicgV+wDwv2eKeP9o6yQ1C\nRoFxJkMPol1DixyE232jFkjk+TcNUlWYS8BFLk9Bs18CeVzEDLNMrhWPTdH7\nRYUArKqARzY0XWnr3OqY6ISMHKkxLl+l4mLtbsVKy9EMiyqgKyjJeCi4xirx\nVgsyTZcP3kgHDH64ieKu9vr3UJygKKm+h0GxK+IbypuOT44J8U04fXfov0mG\nyFmY+j5oj5V2ZBs1cDr/kgfLttL28xfO7vCHrSdqv9YXzL32u+NIwRkfrHYZ\nHMPsthHxNJ+EN1x5zvFHKdM3p9PEWknh7zLn/ua+cBiVQ+esVGamcapyBWNC\nKXYgr75IO9drayHHRavGHj1bugODt97M+Uz3W6Rqicd5KhM4XCE9vDmi1c0a\n0D3R8ro7F5TPLKT9nzckqm/8uDwe8upQXKJ6Zxg90yltfWJlurJKhWsWbBBL\nRRO4aOfda/4QkEclC1EPpo3SnBRL+uJHkV2m2VXYY9ZjowSAlBKxwoGlBXXP\nQFdE\r\n=Fehc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"f4f2f84bc087389b3206a2e17837b7b0b95fb2f2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.7.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.10.3-canary.0+f4f2f84","@opentelemetry/context-base":"^0.10.3-canary.0+f4f2f84"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.1","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.0","@types/sinon":"9.0.4","@types/semver":"7.3.1","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.10.3-canary.0_1596818838873_0.23312838143124281","host":"s3://npm-registry-packages"}},"0.10.3-alpha.34":{"name":"@opentelemetry/core","version":"0.10.3-alpha.34","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.10.3-alpha.34","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bc7d74da0c4f8df16ab8c86d23c47fdb387ed231","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.10.3-alpha.34.tgz","fileCount":141,"integrity":"sha512-5zJvnIsUAg5ihzvwkqaiUIfRXcXzcE4NWJ0pKtiWZ6yQyijuqd8AQDDFa6fSmeGJSsiuIaB7WhOgne9hTNbcaA==","signatures":[{"sig":"MEYCIQCHdpmhamEKt4VTQ0akG6pXL/Mheom0XhsCI4vby1cI1wIhAJEsOcpHK/+LUNFukFPujveJtwBOjIvHWxFZF3l/d8NH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":165473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ+5mCRA9TVsSAnZWagAATbUQAIdNvpWbS48R4ECUiRZh\nvaKRNlVu+Dtm+QsSTKtoSmVMWpx3cCQWKUa+FjWJ4bjfobinKEQTPZ6RHW0i\nJ8N4MIWSDlt6/CRvWsNdWQ7S1M0HSoZP+63Duhrb8+4bUDL0MROUUV8Q/bxI\nkp5MZRTdV5KteJ3KBUXu3C01HCwnp55fEK7HcbZIXHLF4WImpG7RvG2/0UXT\nGpI4o8MwFhAMX8p7oRFcM1ZyZv4jC7iSVuNyUt8WUQ4nP5G+6YEp4EvzRagc\nC9MYE8RyyEtNI8LwhuKCJzIB+KHfxMVR/plYyPDmUkxCEWoY+Spyee+5XYh9\npCoX5Dg5V3q1NMoWuc3V6yoZy/xWnNYXWi76qaDbOK+MmnAcMtNq/O8zDCrC\ndjDWchRmvdX45GVCRosVMQ73vxt2pERx/ks/2Yz4F4gRpE6ypNOqTXhzrXny\n4r0JWSvYzkYojBni4kSniacBn9G/1PSZPkbtuFi/7paYDuHH6MKJCqULMB+E\nXFLUeNX/618PtN0aS4xzQGn09iOgZ1CLeErY1VKD/5ylAKuYGx6spbnmY3ZV\nM4o8hpR7vLH6HKlQrpCSDmn8bpB4LQnq9jYUD9lkXjQizixyksp2wY2hddiz\nTs453T6KJ3ukYxDHUAG2/DgP2Fm+ckwsPJfX256QA4I8xK3IR4W/jbLWEN8T\nh0Jg\r\n=Uz3d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"fb06b5bb1142286acf5b326925f3af3353aa9d90","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.10.3-alpha.34+fb06b5b","@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.10.3-alpha.34_1598287461608_0.8371412348277365","host":"s3://npm-registry-packages"}},"0.10.3-alpha.35":{"name":"@opentelemetry/core","version":"0.10.3-alpha.35","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.10.3-alpha.35","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"91f534955359f7144e42a108b7780c22fe8fafc8","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.10.3-alpha.35.tgz","fileCount":141,"integrity":"sha512-Bl48Cv9Yy9Bnq5jW397UmEWPJlv9UvpBQCmgD8xafjH3t+mp7BWTjOOhKcnzB+j91T61wbWCQ4a1ZAlCP0m+OA==","signatures":[{"sig":"MEYCIQDOM11iFKWopRpBVIhQGdtbNNnuFlxFbaHsGQyVHmtHngIhAPKWkl/Zch7HIB6UJl/EXVVMGh/dOsIoooHdspbnyZcG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":165473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfREL7CRA9TVsSAnZWagAAlAMQAKBTriKI//ejrJLaLYo7\nQbQf5xLUq+Fgg5u5vY7xfqkoxwUljikUH59Jr28ln5cJ5ZCR4yZZ5vqCg5Wn\nBEGGSGQryDOouxALGGOjG15uq/UpKWVkyuxOw4CUMjtQAD6yOfHszWQUezLi\nNlN7vxnFHsPm44AqQ1WpPqkQaw3mAXNfBd6XEd53gDYwgttRMYJt7z0PXZm0\n/1OBwd8/c+EbWUFllkIUOdifiqgvmF5/xyIXrItri6hM73bmbFghUFAWJntq\nx93Lpnh5nlmq6ffaeaD4V9iPkgpwH4WFeHE5Riyh/eos4sHAO7Kh1o0d99+u\nrQ6JADrjktJmfwozREpT7M50qP8lQ2Uz8pwvXU7B7KwgR1gcPfWxQv0eoZGS\n3BMMKK/IEh71b5HP99uZu+aIBHlhcJgj3qJi0DUR2Y7zX5FUTIjHwi5iTVi+\nz4Vc+TSo1bVJ+OCrHEXFnbOWs5LGNCyKy85iLaZuye2t8euulIM0qjJlbY79\nmGuX/an9co9zAKJSW5N8pjHmzIUBFZ6RNFmQsZjJbvVNMGgcYNJM5suL5a8M\nsbk+qABaYuSQEpSezR3NyPafWYQuxdPz/XAvItFYY2Lto8BOamL8QsTMuYYv\nRpSlod7dj9Y78XHgiHGgh7BcaIIX5CMJzVZy2bo30XhwDPEimXIuvPU0Hv21\nKnZR\r\n=YPtJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"2ee9f1aaf7b61c4b4ae6b748f0a07f8fc708f07e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.10.3-alpha.35+2ee9f1a","@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.10.3-alpha.35_1598309115474_0.09150559681239878","host":"s3://npm-registry-packages"}},"0.10.3-alpha.40":{"name":"@opentelemetry/core","version":"0.10.3-alpha.40","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.10.3-alpha.40","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"675cbef390ba2f89c923f5aed2e9e1af249e85bf","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.10.3-alpha.40.tgz","fileCount":141,"integrity":"sha512-feJX2/9Jc4VLRx/N74GnkUlb+oquBm0jYN2BemA90cu61IAcBJxQEzBvmnjxo2ulhd4MdBEfCRtiYHreMuZI+A==","signatures":[{"sig":"MEUCIQDHnsEx6NmVCgq6WCUbjSVQtbG21EcCElbVE6TJAVQoVQIgGHYUPgk7DOqGkM1abKi1daeu3OSD6/Axype4lrxELBE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":168361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfR8HSCRA9TVsSAnZWagAAqYwQAJpcmrTzULubJFMGNx6A\nSvhMHwk0pbQJ27mfG71NcGXK+N4TKrb6gXiZW6g7Kfn0j367XBuOBIhye5Yn\niVh/Vrb2Phu3t1fONKBnHgufmLU1p/gyqFwzQnQJzDlCvsJCRwc7H5LYfgp0\nlTykcbJVV1DY7zuOtIr+9KqhjjeFflkU5zv6dcGr9r7xN9b/y07Uvg65XrqU\nVLtvdMPVTptuh+Gpe94zcs5e3K3iyfnlnWtiui2oEyJ4hHZpE3qrUvQ6Tb0t\nJq2+tZajGHCUav/oZiHstzzl9/1XBAv6haQupLOh5Eefxp7/xQvknDrxBuiO\nBk2zugGiEeeIjo3mRsFlIHJJ5qAnDlzFpac4xVnWWc81nSPbrz6tclpa1HYV\nKNlzT0mBpT7jc/b6Z7CD9pwSIumdHct++117gJvUXqPmrstYzF0EKyqw59qA\nD2VNLANrrPFUnkYbjfYzZ/H8NyPIdH4Ct2sziarFdIReCfJC0iYqs1z/iltx\n+l6C1bm41+Q/gnpNjXCp2Vk77f7BPhLfmcia5zG2C+stKNLzi/dCnqKkwEq0\ne28Pd/haUb5/TSWhk0qn147j2qtp7IDVMco82oq4SmommQKd14s+PKExWlSo\nLvd1gFnDyi11VqL+jCNbD6IElblOsnW6GhNbh//nQpa2UzWdDMrbmcPrgMYP\nlhLN\r\n=gwAK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"2052a245bce0d7a6ddc273cb3657bed5d3d21dc4","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.10.2","@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.10.3-alpha.40_1598538193616_0.9025083332269366","host":"s3://npm-registry-packages"}},"0.10.3-alpha.41":{"name":"@opentelemetry/core","version":"0.10.3-alpha.41","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.10.3-alpha.41","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2aa2ab74434cba0ca09909f08ac26bc167209e4f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.10.3-alpha.41.tgz","fileCount":141,"integrity":"sha512-tRy52acWWZft51YieJernHfbU9h4sTFQfuPwkGkhA45xClHbIDTrCIT4geAFcycajxxOI9EVxY1UcGVVjIeC2Q==","signatures":[{"sig":"MEUCIQDBmksS5Btd7rV6npmPQpMzwvJvf4U/eubl2b0pCs/XvgIgLISYMNd+AsHIcISYFifkKPgvCEuKtn7fFdbsLgODGxU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":168378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfR9qCCRA9TVsSAnZWagAAUNUP/15Fx+fj1SjZ4XJZ/r5Y\nndYuAYYLETkXo8OHLhBZu/+goxJu/mI+gdz/aw8VnDa2k3Vvnj/vuVjeCCSL\nVPhsmoL6e+CtV5F3Z1E+WntpHVB0zRp91XQHSGxd/uPl4cusiBHMUVHwbyp1\nInVZol/z0UcNhtPAgV4JOSgn0+KSECNqbO61IP53vAG+csCS0YRfN5d4kur1\nLMI8wWdbUW/dibrlNKlQdDuPVFgei047ND/YArvrea3a+Y/6QTdGWn7zCGb/\nycJXMOfBOaN2NB27YhzTKVJCPK6lWPM48I37gTzu0I1GltDfdTi+O/U3a/sm\nzFbZHSFJsb95g9QBoaIuZAafig3it7xDq2TEhUP1ovZAOJd52oSyZ5PG1Njm\nVjuSodcv6gUChO0Qw2JrtGYjCAoqSsjEpouBRTGoXZvo0Ovtuw/z+qx01Fgz\npi51QHjWHcZqsvzZoi9tAS9HUxMpSHC3wD2jPtIQdfHaU7+X9sYP3xQvF+LZ\nLgO3JZi+7UsB9HhaXCQBffVDanmrYGZ5701L+J6+qqVytvU5ypCJ8VTLjJwT\nl/i8qcR4zxQHQIfyrZvL1mnANPg7/mbUFNKoyogttbnQO29JUR4NorXCh0fm\nlrLCWoLeMbAqvG+TxP3PezGkDAdtFG7ANFadpiNNU1F4z/Sl0ACabn1/32fX\nWX56\r\n=0Kf1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"5c7753fe6534a34f0f4eaf653d53f8c002ee299d","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.10.3-alpha.41+5c7753f","@opentelemetry/context-base":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.10.3-alpha.41_1598544514090_0.2988205037230296","host":"s3://npm-registry-packages"}},"0.11.1-alpha.48":{"name":"@opentelemetry/core","version":"0.11.1-alpha.48","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.11.1-alpha.48","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fcd2e4be193a0ac2ceb5715fb18d023be9f44815","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.11.1-alpha.48.tgz","fileCount":138,"integrity":"sha512-o5sbH5ujO9bda8cy3vsHVbiRTlUMFcs/4Esz0MD0TghJFDaHh6Eu9tJ9vGzBJclOTlKtwB7dAf0Z9788GryGog==","signatures":[{"sig":"MEQCIDlsPmBkdS2/pEQN93y7WkRlBdKRagBW2xM9OFaePlYbAiB8s9Pjgu02yvFsD+52+ZvQJwtEPWgurE7VVnk+Duh0Gg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":165880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTp/cCRA9TVsSAnZWagAAg00P/j6YJ57D51N/R0p0pWHh\nug9Yli8OGGk8hbcA1UKLpevuRb0FzhiAej0igJWuT8vGfEnmI9R0RCT5SRU0\nq1WzycEFo7FTVCvBx01Uo64HU5a5Ik08YoXhJTXXNMvdQ469GPyr7smEwnrM\nj6hKPbHLibUd3819EhSD8l8eYWNxs9KpWXus4zVef/KjEfjYs6wNg/j4nF+n\nAYhAtHlE/rA4CgTMTrUTM6FRKJb1QpFY+E3rQgQAold5ilcXY/V2F3xAuMu4\ncBqBufJ+a9s2/r/E2wC5dAZLrEHzFZ4L8gXIhP6BKD9I3XhY6zuVbfRx0hOH\n5D1LjyCCbyGaclk2E7Er27xrrLknE1VV1HQsc5jv31fuvns2nv84e6fcYEaJ\nQIPjII2d34ywrM+sS2nMC8Ae2RAyKRwjnFuOkEtnDoWVKM13Dyy1f/9kKapQ\nx+gMuWpkE5mSNdKLhjfWwrEEIQS/GZxuaEXOINXAcFFd30W55eLZPv9kLSQK\nsb/6XNAt4ROyLy4kQt7v9NcumfFufK7xZ2tyMy19yuBQCYrjWMYlSVDLf0jG\nNzaAKNsHccdvZnggYFkUAi9zEHMEIIW5X2aG1n6RKmbCOPR6oa/GqWIO0mmr\nTmZs9Tj5Obajp88ZB41HLef3+YEI768q8kS+5WeUIo5VToaSSmj1xJk60kIc\nxspU\r\n=9HPF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.11.1-alpha.48+15174c6","@opentelemetry/context-base":"^0.11.1-alpha.48+15174c6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.11.1-alpha.48_1598988251616_0.38278051460402396","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"@opentelemetry/core","version":"0.11.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.11.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4f1aacc825fa25bc1b0977a9983713f814e27f98","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.11.0.tgz","fileCount":138,"integrity":"sha512-ZEKjBXeDGBqzouz0uJmrbEKNExEsQOhsZ3tJDCLcz5dUNoVw642oIn2LYWdQK2YdIfZbEmltiF65/csGsaBtFA==","signatures":[{"sig":"MEUCIQCfYm2QMB/2HGoDkys0G4Dj2aoXJ8fjKoPAhlDSIzpClwIgSW0dm/Oz5tx198zSc9LqzTrrulT2dkYevJl1TSsjc9E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":165793,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTqHBCRA9TVsSAnZWagAAvykP/RNmLFQ9UfSDmqAgggJC\nPADUwm6rRirZ5jRVzFBOA4FbtMZ1qJqEr790MdJo1auPXH3d75xvykpSDHpU\n+kn1OokN0Hfj2ylmV2MMjci0v+5OBdHzFc3AxFQiPXNOwVrgRSqiemiYtWZG\n1wunVKOf2WmVLoZWya7633hEzwhGNHN39VlQoVjm7q7bCtNgLyQsJ5yyyIjI\n0yoMqrgxwqSefp7583B3IOAIPBxnqvzjlCIBFR1dCD9qD3CN1eLRFaAHFr0q\n+Up2DK4i1cCTS7Wfp1tig0pDcEeCSJQqYjzVpQYY+8ZJWuO06ThHJVudFi5W\n88CHbI4DO23xKY9/3+YGx2VCNGBchWlayHOZ3++/Wy/3HY8j3scZcNwFmfuh\nj8KYv9QuVZf5gUbWQ6uB03GhuJbTGoufJvkRBRCuRt/4kvIW4qdTtfeX1Imm\nlpB1cxZo/1m7gc2WPHYfDRjPNFnJWaNiDcYF4tfdo3Ty4YeFDXRKRsZHgHcQ\nBS2RRw1xluFDvzsMBa6exQ2ASTI2ZSVv14yrLoEurguIw/kHbkmD8RL/sE8E\nNnuM32PReO/tdurcW6SVoCIgiJgO078EeergF2JiTarBh2tnSBxI2vQ0hX5E\nMUJzEbnrzlJ8Kw3Xaf9oF92lQGIVFFih77sND6hbcNuMQslLY3O8oVGoRLGc\n79YA\r\n=8MMW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.4.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.11.0","@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.11.0_1598988736286_0.14085343664303807","host":"s3://npm-registry-packages"}},"0.11.1-alpha.15":{"name":"@opentelemetry/core","version":"0.11.1-alpha.15","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.11.1-alpha.15","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b110f84ca5a08950624ca355d31966e89369e2dd","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.11.1-alpha.15.tgz","fileCount":138,"integrity":"sha512-VCnf1TwRDI9SThtdGcoo19GEXH416t3dTNd6Yq0gLYSKBRev9pBQmhKpppTrL36TGMQUPXC8SuCtwQYLTCa28Q==","signatures":[{"sig":"MEUCIARGH8SV/jTymOeAIOAUbnhIa6kuE8AQnABZ8mMVmnr4AiEA2ocqJUbpwB5Eq3gFPtCJFtTYpdyPHnKJLa52+tCCPm4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":165863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaB4xCRA9TVsSAnZWagAAwU4P/3ChyoQ6psd9HppRJW9M\nmmPJNJI8+M7aP11aYdbuMHY2VRKRmLBi8ojn/1gVSd3VHVDIk1gKcA51XFVA\nryW5hEeVflpVnwMhC+ZTjV78HT+NDjgkdsTxoLOTtQo/t8kYs/gGV6DGIsGK\nBMdYjWZ5+31+FSAwlpOZVhraOCElCB5V0uD7JX4WFg8IW+TQpk/apdfHf9m0\nbq9V8p9e5FEybDmGrlnVj3eG1ZjnelpEE3klU/Y8r4TLjd1WN3xP2h64bAop\nGd6SpVAxIrFrGJy2oQY8QIApKm98QZxA+hgkXs9InqbcJ88+UkR4UAEqVzYy\nPEn17CPd9UD4Nq20XArrp0ryf/ruf43cJQjuACJX4waHQFG4yACKPK3dcOP/\nqOhmmowW6rqk1K6yFD0SHpmJjCwXY2af7hRtiFAnFLL4m+ynhG1cIZyTlTRZ\nTuyjCtoPSIInkRgkPtyz5N9JowcCFqjcRbjkaK6GMJU5twWk7f16eGMUH0AE\nK/uRbIayj95HoxHvqFG+mASTWTXxMslL21nDI+SlZvn2b5uLdKXXsT2NFnQ1\nYBCoDOlbqWfa0CNqCy4rImJ+lyEk1Ym+fEeRtzhhBJNVfay+5xJ/6tYD2dHr\nN42zp2IQhBg0sKozsHBNs/D52hsj1aWOSSzG9ZlkTx2z06O60R+ECZ51cYfK\nWQwk\r\n=aFNf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"e170039015e8a1a7419bb835a00659b2a734b8a6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.10.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.10.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.11.1-alpha.15+e170039","@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.11.1-alpha.15_1600658992803_0.19452482814379257","host":"s3://npm-registry-packages"}},"0.11.1-alpha.35":{"name":"@opentelemetry/core","version":"0.11.1-alpha.35","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.11.1-alpha.35","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"879f52f79afe8c95e935cd55ecfb343bb252bfc6","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.11.1-alpha.35.tgz","fileCount":138,"integrity":"sha512-l4KizAwtcSQzc4fHPDKr6bJPSjo7wx85cqBbi6quIWkU9KLB4PJz54t2TLvDi41L2w5t8RqV7OZlzAnZ6w1j5w==","signatures":[{"sig":"MEQCIHPYvX8qGq47Zp2kR7azSPokMUnWdu5T/Osdj+QmH+P1AiBqTltB4WLSPClmgfdDKXu4IegOoJGJMKiamvRVTNpuEQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":168344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHhtCRA9TVsSAnZWagAAikIP/RMqlNV/hiIvxq+5739D\nyO3BRtDV5esgXMYY0dDvrA6wlBXx9ABaR0EVWeJbg5pFf+YYZtJDoCmeUsIW\nU7UTEiIcpYkmoc6gl529kh96P0Xt/n+LgsY+CyKTdKSQiUq2zgD7Ee/GD/5g\nrJnw2l82v0ytuJrlQzmfn5Tnd8DFi5MbsdHRY4YgE+kfLJnHLJUzZqZzXbBj\n7l3hW/R2QQOWDIQfGxvIN8rUS2i4jv6g+I1ijk+Vd9eD8cGZWtvGTr7OFYXo\ntakhUQGW6dplDwKetGZI0DeJBa7nq+6ANLPVyk7/HtCE9EwRhnSAKN9wZyXm\nLU+y2LQUawlZWpfVGWp0n8xXietYlInw1pMlY7QHvQ2ZQEJ43UytO4WqcKZ4\nfU8HEDBhF5kRepTRwCwgPArNHhfPibSWSZgJ4vpRaCWEmvH4TtJ6q7+Mwikg\nKjFcpOhcUpc1+Y9wu97hW82SZWtF7gc0hXdQhIJg8WT8zF5iU8drfAB+VzI6\nC7vTZgB0ge8S56ijbK26Lf5rO16jgvPcwHDTGsaDd9VvocF/8WTHleBfWM9/\n4r7NAOIgmEO11xIq3Yx+6myHvMDGo0EbNtyi7zOwz+J18xQhF2MecQuDLcct\nJ9QjPkIJCwZUcF7rYK8HxyxQ/Bar2E7G22o3lCF+u2DjKwS9GBIQ0cntKWP/\nyoeP\r\n=Rzah\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"c6c993bb16c58ba907337a5667da01b3c248e350","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.11.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.11.1-alpha.35+c6c993bb","@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.11.1-alpha.35_1601468525331_0.47403870374857693","host":"s3://npm-registry-packages"}},"0.11.1-alpha.36":{"name":"@opentelemetry/core","version":"0.11.1-alpha.36","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.11.1-alpha.36","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"da72db2cac80b7e8be0bed1292c82509b3a568b2","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.11.1-alpha.36.tgz","fileCount":138,"integrity":"sha512-0Skf/8YStUKq1MaER1GH7AdErFSjLyzpYvvLRHodTwf9Au+dIM/VUl23+1X5e91TKGqLnTPDIvF7daBxQX0jyQ==","signatures":[{"sig":"MEQCIB5s5834Lma7Uj8kXbAMbuO1BO5x6mjZgAbXxqSfiiaCAiAOmnruSIwDS3519eOdNV+arIfDt2lOzfpiu7IyaYke4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":168361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHxPCRA9TVsSAnZWagAAIKMP/18M6faxgYsoTF29LpzQ\ntTFP7yRy7wRcVpzJw2aiJGsKjumm/4m+JdUOd/pFVANnnZx/d3qWvkHHiReN\nYSF/UHwYEoZy0RMsvT2kRr8ckY2eAs09S4jHBqaNkBUMvzF1a3xCUOXfzKyK\n1wqkeGt/62JGUg7T1A75gPVz3va9l6ss5hjwbR+pZB+kRJ6yPjWMApTK/OXL\nmAUveGoWiQXbAbZRD0Ny5taVT9lXpSRxvRNvxvCCXyfeuezpYsyGvJX7PcA+\neinjbhQHr+Sp2G8xF8cQK6dX4t0d/Fz7dQZ04tbUf8fusZPWIuFqwWgr4kYh\nrdK214w7tHHNIMhvyU3ND8SBpJ7/j4L6x6Od/deygDOnBDtApTX8kOeMpeFM\nMNa0w5aXuKgkn+53UA+IbbYIWJ2GQo4pp+nw+Y2DYAkXxUH3BSeK4BPE5AZJ\nOSasmhCsYVEuddkqUt24iq+97BI7/6hKm1lkzvAFCGEvOrkulrGGZNFRZ3ex\nrl3Ac8PJo4EEai0f/ck2eE0Lks8QQhOeU6XOD9cs1nYaTDJXtVh8WyRPftS8\nN/TtFe707sDQAT8qYnx77FuUjGQ03E+ix8kstS10sydboCxLlq4Y+ksBt6K1\nvjt75OlYYXtlg9SW9DUz16RVqQIBFEOfO9iza/kv3nbZ/+5YucThu52KVFzA\n6eFx\r\n=LUVB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"6eb157c66925fe84b4960f247a86678441f3cb60","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.11.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.11.1-alpha.36+6eb157c6","@opentelemetry/context-base":"^0.11.1-alpha.36+6eb157c6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.11.1-alpha.36_1601469518803_0.08287400135137313","host":"s3://npm-registry-packages"}},"0.11.1-alpha.44":{"name":"@opentelemetry/core","version":"0.11.1-alpha.44","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.11.1-alpha.44","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1dee0f54c8587f702b1ed11e4d21887820b57a9d","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.11.1-alpha.44.tgz","fileCount":141,"integrity":"sha512-GOnUE8f0jdA04Ur6gyQE0UOR1bFcGhIp2e8d/gLTBeUw3s3OghBtw3rURRooP/BYTCf8IFmTp4PS1omgjtCq0g==","signatures":[{"sig":"MEUCIHJ+HkQ3MAUXdG2r01BzaArAIeiMl94wf+xZV1QfYpPmAiEAumW2hdqHcnFLoXXDRRJv1xW6EkGZ7UMq6TZ6CnLap0c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166599,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffh0QCRA9TVsSAnZWagAAtQYP/2tMQKHhAhWngaBMm2jM\nkG+LqTD+9R/82c95YRtwhHNhZOfmZAhuKSkPwAI1o+ahxXP2nr79Q5szKmbj\nDYTxVO4z6TzHsgCEjqRvFBY3aqEjvM+eRAfWxd1aVXrEBZugZrky7nYIxYNM\n3ZVUkESfLvH2MsR1tnfLmqLVqITZTdiYdTlbaIUdUiBbP16dDVryl1I400L7\nvqSB6uCz/rErv2B60/75OYZdkDQfwVLQ42gfaROt6aItiawOTJ+LSk840RQ2\nd+nnehQRxBFLz5e8oxXZ739Nm1RgmVw1nDZmtjtXJNkeIPwbojy5qDyiFjic\n0+VZoYwaoMbKkurR3e3EETeuskREH+91+1TOwX/AU/4p90I0hAAiq4Nzw2A+\nYMgL4hAAMn9xe261gZfvY4D8culpqAt0+5p5g9627L0QVK2U+WS5OzY/bg2z\ncGboPblNRE4Zuffk+Vm3UwzqfhF6DNlshcC/YroRoIYj7Y9eTugKQOfD4YH/\nWqBn7Caz1i0aBx201+LuGzwXhw+Tth6afFmb2uerrxf0jw7KOQKKkAYvQrMU\nXgfDGxJwRTD60VURhxS4xHD77L2BT2+831/52Q7K/1vZz3CoIf91/rGkMBb5\nYZGDUrPSONe8+Z75/284qnfG4PirB5JDb5gMbZ8MPXL6RWBmVXk7AQXHPPhC\nuuLT\r\n=eep+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"240f852cc41707c751f28811b7ce3d243382e3dd","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.11.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.11.1-alpha.44+240f852c","@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.11.1-alpha.44_1602100495843_0.7210955939015289","host":"s3://npm-registry-packages"}},"0.11.1-alpha.53":{"name":"@opentelemetry/core","version":"0.11.1-alpha.53","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.11.1-alpha.53","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"78e96b9630a00f23069e69af590851f03d1c9e91","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.11.1-alpha.53.tgz","fileCount":150,"integrity":"sha512-cvg8/s9MsEwgIrBUzuwDrT08S1cMZK63WVsavfV6P2mtFWSbSU3RmhrJz1kC5r5WR67P2h9pwcFeWZoid0c74g==","signatures":[{"sig":"MEUCIFREH89bBeiUJwxxvsDOAkP/of1VVnqJnlrU+1o+Gm/fAiEAtUl8wV5FM5cdu5EGbDiP8j71YkhzRqEmI71B6IAX/OM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":181189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjXz2CRA9TVsSAnZWagAADJUP/jbvAuWPVQmLThLpimaW\nvC4h2mK5qRQg/Nq6f7V8zT2/Cx94+qQ0uyufmRB7JkvKL4ARKkkKcqSn9fme\nj9l+BVXMxjaiMDY/xP9BLvZlQvyGuP+f5t2BFOOeszVHQyQX+SdBrb1CpMFC\nRjPmGZ4plIwyyX45uvsRbbfchNGl73JDuofM4NclVIuR8T2asxLXM4gujjiw\nfCfuqcDgtp875QDkmRQqxEwUhJjXxq7ARtRg1qna8Qeyuyh6dV/WUBxMVTDp\nnlemBnMRacdE5GxvoIfahCuGzBtZFnmUelykoN1frpIp4pO6bHJF9O8DxPV8\nc3pk782mCksOVcgPIn0rB7KSNN7f3gHuhuPYajki9pbm+IHZBdiE1RnM0LVq\nRsqxfLaoHK7jV+WSq3DTtMjHJSKillFgTxAAig8BNWX3EL91hEJHq9miJeNp\nETTs6CEnhZbt/nNpFKOLJCUIrhg1pUYIdyUBMmWkfAjaxZ0Xwkx37JlD2j9Z\nz6mUbHy3y6TUOEnCrPVzSY3aAN1Diao5CXiNF1E9kKPK9p6TOZwsFhhU7zxY\nEvp5nrWNaeS2Stj7O19IOyskWYR+Gpf87zSFJgZPWoZYtdYP7rWwcyvdxQ5F\ncuvHEEaX8CtuayEWJXSjTOHmzLv9rKg2x6qEx5G9RTZrjCMdIX4zLrSFDq/0\ncm6L\r\n=RfeY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"00a8ce7f982ea24bcd4bc398477112894078ab29","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.13.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.11.1-alpha.53+00a8ce7f","@opentelemetry/context-base":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.11.1-alpha.53_1603108085821_0.406648513012418","host":"s3://npm-registry-packages"}},"0.12.1-alpha.54":{"name":"@opentelemetry/core","version":"0.12.1-alpha.54","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.12.1-alpha.54","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"470eb2743baaad727d728e5e79ff9a878d40572f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.12.1-alpha.54.tgz","fileCount":150,"integrity":"sha512-lj9caZqTLb2IJYfStKHehLfZ/4v595dDOtSYU6eBqDSruPyjXfM46U/6Q+DIGFfcWw8H8e1VpR6dWtJeLioUXA==","signatures":[{"sig":"MEQCIGogF2gfkurZqh7zOCgxscSucJUxomApdCB1fN4aOkn0AiAmtu6FUE3Oa3sY6hpLtLtMb96feCGqxY6/Uxl6nsty/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":181207,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYtxCRA9TVsSAnZWagAAqY0QAIIYY0m6DW10I7HA8oAw\n0Y+nPqAU8UUxnwLForJn5tmwhBgXmOyDo0eVhP9OgCau4CbO3AuWV/w0M+V4\nBiwzs6xYChnpsmapkKRXzWEub7cU68b8IFcxBS7vH/UNJo+WNGMTE3hOG2Bf\nikgnReM18SvtyYWsoUHGLxus5he4xFSnqK9hY/ok5ZpCDPsWvqR6nup6VI/i\n3rUNkRa/S0VeoAyap+/7PDBMtuoTBgJBwz/82rpm+fqtqFJy209tEFXEPKat\nya6FRLVy03QO8C1NdBuPDgke+HBqSud02hZQjHLdUF4w0nm6kw+zudx+zoJn\nwOyFkfGWgH4bgvimBnRVYJWAbkrZAXYto+B179SIR5n9BFfQdwVZwm9uFC/T\naRFb0CEc/L8sBDs4Ll3mr7iXA1m2JCfKxrSWglrwZ/0RoIcZW+1SnYVv+Nsg\nvtxO3xV0O9lXZCv4bcMKXoBbJ/YMWejqDBRp0ldWIZy9bSYXojqJ3KaPkYUz\nJWueEmwpe3eCPZkxoIdsnerVhttzLr7t6iIfdhmqGXGT5z9kPhXMvkqkyy2J\nWTbri/gSdRaR6Go6MBIgqVwpvvtYjxuG/bkrTa7FKyptQ+3gMVqjvEJYewMa\nOlXsk03V/Fd5l+PoUXu35efVVl2GWTsu2386Eag3zW42KXL9RV/oiC8Nmhzo\nNluC\r\n=tUvH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.13.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.12.1-alpha.54+3f72613a","@opentelemetry/context-base":"^0.12.1-alpha.54+3f72613a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.12.1-alpha.54_1603111792912_0.0668266023616726","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"@opentelemetry/core","version":"0.12.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.12.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a888badc9a408fa1f13976a574e69d14be32488e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.12.0.tgz","fileCount":150,"integrity":"sha512-oLZIkmTNWTJXzo1eA4dGu/S7wOVtylsgnEsCmhSJGhrJVDXm1eW/aGuNs3DVBeuxp0ZvQLAul3/PThsC3YrnzA==","signatures":[{"sig":"MEQCIFiqngEMbyF57cnfCe6rCv7MFetpPbjEF4VxkwW32h4VAiB2lPvKB56u1ykQe0EGZnkQKrCc1vMn+9I8SAf2zk1Wog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":181115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYxcCRA9TVsSAnZWagAAvd4P/1mVDNxZCE6l3dC+Zbgo\nvXixBU01QhrtDYyNVM8q39dRFHYE8Y9mEtJ8t2/XmlCFvPKKfypCvla55Axi\nLyfxZypzHdoQgmq30SZnk4/7fEegaN5cOlrZi2AzKiXEfjj/Cj9x4lA4QL5c\nQ94B89JgrMEDBs2yqvJjAIgzJ508IPw3iSTC2qRWAnEXQm3R/GCbqYDSlArj\nYn3pXV5W+lLTP339hujEH5c8GqBpkvadw3r/MAOzgbqIiBeq/JEkIvw8s/d9\n68R6sgLrpVmJfahfBI7m1+vcJk9CW/llxaXoU2Lj3uxf5657F6NA1QH8lbAG\nrOqAevmHgkUxazZPnRr9cj0GTvzIwbqY0eL9IVgpKr6Y1kcnDy4NIiblPaw9\n+eJ3X9X8wwcbr/cJz/LMDjjziziWVTgBBBD2tPypkvzny2tMUE7CBhRhFLpY\n/pYnr9a6EgAyKTeZkWnKUor7xhfc4CV0ApB2clv4VeUYDrYRkJu6EQglhDdG\niX2neEsyRJzI8u0uO2vdE8n5mC++ZJcS3S1O1YMNNCwvTw7e1wYGW65lBcDv\n6K4ndI+YF3+FXUudHr/z2mbsPcNXcq6Ne7eF7MSxO+J4ftfquQBBOEXryVLl\nYzCO2qkKtpGq+N0SJ42Me5pTvhFNbZONsPaS09aa7Bk0Ost13fDr2uWzYkEp\nqJ56\r\n=3++j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.4.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.12.0","@opentelemetry/context-base":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.12.0_1603112027751_0.743892469273457","host":"s3://npm-registry-packages"}},"0.12.1-alpha.7":{"name":"@opentelemetry/core","version":"0.12.1-alpha.7","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.12.1-alpha.7","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5d9100faeb17fdcabf97ca671677fc0431792a2f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.12.1-alpha.7.tgz","fileCount":138,"integrity":"sha512-OVikUQ/4kJVkPbOb0TYMH8FKjJzHc4b+9QucOL3xPoe1OthxtyCSbhs60T5pBvcmylsB6Lh+P9rkZTbXoSOGWw==","signatures":[{"sig":"MEUCIQCKSRdAIJeLnfzn4kpJLQpAniV+R3gzl/r15YECkOG6HwIgf0k3beycXGrdrl2Isks1ZOoK2NDehJXoXhMfGpJ2wQ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":160599,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflzufCRA9TVsSAnZWagAALmoP/14nxH/b9i6QsDj5xGL/\nOY1NU3pQIQ6pZiAswgVd9n7MoBceDYVwttkYVmNlbODmGoxkrW5TqYNheVCg\n1NWsZHv0DO/9Cc/jZ3uheLs2TnWtzuEK7MD2zriJ2F/YdFirYuZtIG3t4r+v\n1N8tKEKz1QzINXQs1gMCDs5MvzDYI9PJMvWieEOS3ztHmLuvPu1RS+IJYRup\nSZYF9z2PEB4aTOriibUZ5qfe4w3zvla/mL1LAnH0G94k84siGoNFmfXLwRRv\nLyyCB3rGV43x8q6Ikstn7xBIZWxBCgeRfQpbN2+PdjluAbAyt+hLdVQfkpAt\nbO5+17lRU3MSiuCJSkYHO7lnWr3uNialJxLgC6kT1Axc8puAmZowJXuvXVOe\nskJ34yFj0Pyr+TnB3Dg1ghFsu0xI4PTm0xNkwsSuYUV4/oZswtvVRSMtuHDi\n3PLT1tzfFVtR+q7BVwa2uEvYN0pkEtjg3U1aXvJT22Aijz4M8/t9ukxj+vlU\n3X3Wqbfe4d6rG2wJYviGcRGM8En4cVEA2KaCFnz6VUpKJWc4CU07k0W6MrVG\nlpvFUAWKiH3S9gQ2f7abDqODHAjValSgK3aUb3rttgHMHAr9YsVe+klCv8aX\nLfWMtPdNIwE00HI+RGm7xU0mrX7ymSamxlhap3fahOIUP2fGqdJB7xf61iiH\nANwg\r\n=3H7a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"46f31dd2285d55d239195032528c3dab1bf0e15c","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.13.1","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.12.1-alpha.7+46f31dd2","@opentelemetry/context-base":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@types/node":"14.0.27","karma-mocha":"2.0.1","@types/mocha":"8.0.2","@types/sinon":"9.0.4","@types/semver":"7.3.2","karma-webpack":"4.0.2","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.12.1-alpha.7+46f31dd2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.12.1-alpha.7_1603746717516_0.22270207657211483","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"@opentelemetry/core","version":"0.13.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.13.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"59567ccfa5a8eb0fefb9cd37bd20821d6f196e33","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.13.0.tgz","fileCount":138,"integrity":"sha512-SFHr4uRnSSWqTLu1J1hadn92aGoGVb2WrPHvOgNIttSKYkUXNVyABO1pdtUN2AHE4/YBmk9eLwTUqwmFjVfZWQ==","signatures":[{"sig":"MEYCIQCC6lrKVEXWQTxLTl5XvpBkUY+Xb/SRS/y8OVFvunzcLgIhAK2BGhZ7qwrbJ5iOcDLGFq/Imqs+b7faNb8oLtLdiGor","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":162501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyql5CRA9TVsSAnZWagAA6TIP/3F5efRyVn9yIYWF08jL\n83rg8eUGY04zBX08CKxRkWbOh9UMnwrYkAsqMYChoe7qev+UcZyYxpuEAFm6\nmBUw6PGXyTsewMWg3sNHvaFi8FmmMV11Kat+T8Enn6TPNzMntq+sgTUI0G44\nG7cCXyXeSg2Vh5TnpiMwVxD4UPA0pkvfxxANUg14BT1MkTckd+wTgiyXUmH5\nKnmvvBt8TgjurB/+n9GNHA46CXPVQPtq+Y5QN4hH+Wn9DwnmN+ACej4gvnXl\ncRVPwXFf8eRmGFLpNXXKADOxn0vfhVQvEi8+pjzKgZMwnhLfubclmeAKT886\nqCzIK0P2ygtYj4+yOSh7OQ+9nzWH0GIeFxVJeGlA0xYvFnRqRs1AgyO6lUsI\nHOIzVFpih9Sb66sKwPdNiZmIXuTSvi/EelFc9IhSr9tkAWaNK0LoxSHN31fV\naVF73dni0QJApK1HkmRi0ftgkcwcfckc4CctYIH2ud0ydZx1J2n8tfRtkj6b\nzu6dX07mmy+n5+jhiJj+8gaiO72JSDseuZNGmJHK1b9m1DFVQGaeG1IGqfZl\n+SYuEHCHKW4ThNzyP/l6AV3mRjJ6gDVJwdIAMrFUmE9klHiyKFy5r4I3eB3s\nu3gcDWffoYftVHrMrZZl2UzT3Ejanv87KZhfNn8fZ+v49OeBOh4io63vKGgV\n8Xyo\r\n=Zv6q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"86cbd6798f9318c5920f9d9055f289a1c3f26500","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.13.0","@opentelemetry/context-base":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.1","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.0.0","webpack":"4.44.2","ts-mocha":"8.0.0","ts-loader":"8.0.11","typescript":"3.9.7","@types/node":"14.14.10","karma-mocha":"2.0.1","@types/mocha":"8.0.4","@types/sinon":"9.0.9","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.13.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.13.0_1607117177288_0.8921612415291631","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@opentelemetry/core","version":"0.14.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.14.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"35870e58e3d084dfc4dea99c973f3cf7479b3c6a","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.14.0.tgz","fileCount":138,"integrity":"sha512-HJ4VM0cV6c5qjdW7C7koB2IT4ADunCOehxnKFRslQkbDqAEA1w42AZ9679siYALpWYxNqcJyqF2jxCNtfNHa6Q==","signatures":[{"sig":"MEYCIQDUSKaH76UMBy7ZyoFVmBS7CCMXlbIWyfrwHSQcdayy+wIhAJGcwBofjHgmlhhY6F5EYB3uX/nijDZK4Z+UPT2kjcjl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":162543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf28UlCRA9TVsSAnZWagAAOgQP/0mw0YfWro8Jx18xUpvf\ntA1Kw43nRA8V4iMu6oKBZG/x+CRYHgDYfIUauipMQVx0HCOCp9xDPNkG7+rk\nrqVOPl+qTwZeoe+p7QTibiKYRf9lA+1my8DOLnYLthezzxVQY3g+UdHWGZBG\n3pQ6PRKk93g4aQ4BKK41AmoOoaQPcf5ZKV0fq6BXBH/rs7KoDRibiWjND/rO\nnLWfi1QMEAtIKAUbSMpWiroB0zhkfp13gzvs7VhPYiId7R9XU5oE1WBsGL5r\nXrGs24CnQ5AkIXRIPndtpJEo2EcFkl2GwSIs21S1WVeaXJCV1Q2QHAI9PFrh\nlwpJGJ3sp8iHJ+47QBhqM1f2qaVUC7xQ7yhY8QlNycA88ZG8yAu/9B2O3158\nEwNndreVDUquAqGDIvy/kc7U8EeC0lUFdlL3RA5XSOLYKXBqqjm8wPu0KS69\nvj2uU8G/NF5x3Lj4phVLgYQvwAzsCyMghm/oTLOhgvD2TvLm4iOW47m9zw8G\nCLs7MLkKO0yaQ/61QlfFAAzi2d5bPYjdfZy/zGxnqNKbGEohE7jStettg+hE\nK2kKxrWochXbkQdAT4nhko/Abvo8BIOgMM+EqkqbIMfe1jgfxmahRYpvDjgo\nHdGlTbC5lv7SXxJky+A2ETWSblyoj6ye8q1ySX4+m4lCbtUSTjf40Eozg00P\nqHvX\r\n=vkg/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"27a8d4530c56257c191468b073669909bf8892a1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"rimraf build/*","watch":"tsc -w","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"tsc --version","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.14.0","@opentelemetry/context-base":"^0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.2","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.44.2","ts-mocha":"8.0.0","ts-loader":"8.0.12","typescript":"3.9.7","@types/node":"14.14.12","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.9","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.14.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.14.0_1608238373276_0.9768934595910987","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@opentelemetry/core","version":"0.15.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.15.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d86ebc316f1f847de6d9b003cc4bb4cd1c130e7b","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.15.0.tgz","fileCount":132,"integrity":"sha512-4LLBoayeT0L+BpO+RYzoDsLByn1FMDqpQLto7M8P2DXOtxI//TWSo13KCMbv+pprOyweMWcsxL8jj+qv9ktSAg==","signatures":[{"sig":"MEUCIGWwqSrGz2RzpFzwrBKCPR5u2CJeITTg7xAtFOEMOcjnAiEA8LrQoe0VGrJFQQ12XXjQJ1uOogHj4sm9aV3y4LxKj2k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCf4OCRA9TVsSAnZWagAAAfEP/Rs4IOYBN+u23nPYzioB\ngOiJSrj4yZLFwBNkvTG908KaXn2uVycKOEQH8rrJblFhSpryFCVMFbqZN164\n/IDzxfZ9RK54AL80wLZMDsD9q0WI7vjG363gQF7/RwqHDvhU3rk6T4q9AsJL\nfkAuGnviYgL52qmEmxCwTosYOlUR+JAja0kosyAP5EAC8TD6M3GND4rYXShI\nnhymR++p3rdwfiYyz6z+eRMOkK74FZLKr3L8MPuaA4EiOfa6SobGPldvnzbO\nZ3vv6opnS4U36I538vOtwCRS67iIfHcJAiE0iWKhE2+LbTDM0bZPwBJWoqey\nJ3FpUkhpYi3S6EwIGi8bg9ZwM72eIKJKO5MF3ep1YWu664LQOF1ul9TJZYiG\nh3TZ9iLiWls8ckaJRUmZyk4K7z3vkHPr3d0gM92tzH5ALCxBTS6ujDDlgHue\n8LETQQeh4PFouVaOqAOpViE3PSockHxvh4eNIN7hvdcf5+bdABk9LvaHZ5XI\n8n4aMlOGfe89Y5oFx7OfE8TVm+8nNZcFwulQO2J8D7LZawKWoPpLo+rb6t4C\nA14UifMYN6TQ/JePPNuDCxpOID+RkJFQpe9HAocQrugOiV0VZKHVfNWLxi6Y\nQGf2KgHzQSPXLUTFAE76pgNd7otjy8hSTdXZ7eZBXWInIMVj4/kh3a+0d5Bo\nvr/M\r\n=5GOJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"960b868f5b7686eabbf49190071b8463551e5d8f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.15.0","@opentelemetry/context-base":"^0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"3.9.7","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.15.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.15.0_1611267598073_0.27935884048096016","host":"s3://npm-registry-packages"}},"0.16.0":{"name":"@opentelemetry/core","version":"0.16.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.16.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8423eb9a828b76653137447ddcd00641f1beffc1","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.16.0.tgz","fileCount":135,"integrity":"sha512-NFZwEW5TeFIAUlNty9al0KU9AQzpEiBowem/33d3ftxYHZ7dG1JklFnyKLTVb+pAZFm/peTziVddfHoTsIY4Rg==","signatures":[{"sig":"MEUCIQCviVFfI+LL95mALKYsrAaRgk8FQZQy1oXitI/DugnMBQIgYUw9818brjwZuy5xKTKKVrSOCKUVCAGIJFpXgNK4hGk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGIGyCRA9TVsSAnZWagAA3wwP/0+UP/Rp9SctpK91CPjl\nLGSSOdDvL8hp904vs/0m2IIOj3m25I8PVy0zxxNWx6sXmNpWUByTrpEB0toh\nhxu6jGHCky4Wr1wUYzZ4XQ6hyExLXGhBjQW6iRLIImhZL0glt/NEdhSeFINs\nmP6rGP+jCHeKx3yOClApDB8LjzBJvm5hTOAmgF4AkQ2qrmxqMAoEIMvxw9V8\n8UWNc5BUModL5xn8+MO+N5ox3CCEGThRVqekU2rOtv3wbITO510pHck9urhY\nYvpdVEI/sP1Ya5wDqQ6/QLbiFnvbIrAsXbL+UvRVO0dvg1hNSepn/jA49HvE\netv10f6Y1+jYr9xtbHmjn31jjwo02/7IXD7bTiQMRQ36TqUDl53R98tHH4MB\n4MTKL/gHdxqapHjMqJy2BoZwdzJZY8WLNkGS7GJwh8IuKx17q2TauATvOhpe\n0TEQNe9HdvOwgvnokTJQa3OOkfHuXE/cmjs47eVLYwjIA/ZlC51ZlDtg7112\nMHaNbSsqER5e3jQS2dvenQRov52C9234sj3a0GIiz900KvLt/sRAvEtx7zTy\nJGZwx0a4bty9e900jUzcX+telULNbVxhz1it+tlgxNy8xe9ZCqI+WxFH7lov\nmDElwAXNuqFBdzgHuMtIsDqijV7XkEL62RRjYNFdIi5sUsxI9fKvW5f6X6Mr\nqRUZ\r\n=wItl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"e68863f8e63854b08ad13fb54677294ac6d6b681","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.19.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"12.19.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.16.0","@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"3.9.7","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.16.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.16.0_1612218802413_0.6741948219160583","host":"s3://npm-registry-packages"}},"0.16.1-alpha.10":{"name":"@opentelemetry/core","version":"0.16.1-alpha.10","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.16.1-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ab9c8617e36e3835d534abf4649de86cceeb80ee","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.16.1-alpha.10.tgz","fileCount":129,"integrity":"sha512-TdzTzlMroVnAKiVJinp9HcRQXSLWC7V/WjYAKlG09o8qlmPIxwzxJiLXbhQ14FBfbKe5TaUVHzAuQy+1YWj3KQ==","signatures":[{"sig":"MEUCIQCXnLR005CNhQyKF9J0+a7o+3DF8yHqucEEZe3heYqbHAIgZJb6DVsNf4ZK3MKdQu2S+XSbe09Cx3aAfTlm8W9dE8g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":157756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIV2qCRA9TVsSAnZWagAA0YcQAKTSL5p/CIw63Y5IhB/2\nJ62TSEZvjlSMzBmKDwaqeuElKF1t2yZlTCvAzunYqwMnb/zh322WkOg7Gzey\ny7d46TawN6B6DVhWFffax3+MYB01Nn2HVE3IMjILrvaXvuc47l9KK/1LwVye\n6+Ph7es1Wwot84HjSrzJLVrkX/MMrhxq2fdihnnB+QNq6WiFCnoWzYFWmy5b\nHChz29uBAVt7iITPIcIWJFeJfUDXf9yK41AZNMTlN3ApBseemu+yG3g72FpV\n1gv7pLgPR4FGD9eSfFYihlTfqH+1xFmJNy/oildgsI0ozAhj3ZR5j1hHTFDJ\nr8xIVaLvL9iAGqfL5p03S3HgrTI+Y3ayZsvHXjC3qsXY/RlczS9jqY5LPCja\n1qWoLwF7S4KyWz2tC/m9CbDrcA6I1XDNH5+NkpklOK7eCeaQOylz2P7LaVbc\nwyH19GzBCh3Yu5X4qFjPkuZ0tM2IOkCbQSjaf5wu8zRKu0sjMQo3w+At4DjU\n3IIQFtTHsdxYicMZvrdgH++Dj0UqyACEdPAThCD+Vxl7SiSppMCPNI6ZUPQr\nlaKaEtFuPXXgodKuQhaBBEdbyvzxQPwHjvbQ2zxWE7qr1dKpzwGZLO/UHtDU\nNxj8oVv8bc0c08XDlk8nUG/xu8kOQARd9If1xoYqajQq8ELDFvyEzIY59Cis\nvAHU\r\n=4AAD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"cacbbdca0e89d31e2e0b10a8ff5fb86d7a714906","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.4","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.16.0","@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.16.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.16.1-alpha.10_1612799401621_0.48499788606855176","host":"s3://npm-registry-packages"}},"0.16.1-alpha.11":{"name":"@opentelemetry/core","version":"0.16.1-alpha.11","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.16.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2b06863bbf992fb34e6e163796a57cbcff158de1","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.16.1-alpha.11.tgz","fileCount":129,"integrity":"sha512-YHd4bHQXw+vDerfhKnGff3OfsHte/ugHCRgCGGTUF/4k6eMTp1g/ED3DnVWzpdTezjzzhALRRwFAruZsC0mfNw==","signatures":[{"sig":"MEYCIQDYo9nFHda1lXZ3tPzFRzaX+I4g/nFsw9ZJRgIlzVCaBwIhANGC9LaCWL3SfACD079jt4UPTvNaujaEHPsWjfwQI8hM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":157810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIWQvCRA9TVsSAnZWagAAHQUP/jdcJkrlYChW4ffUSt0g\n0E4i+rYp0vTKinMdB9SNVElZVzTIy/mrJ/EE7jiuInxIyFmzLtu6qOMMNdX5\nTx5uh+9sv9xJhSWVXTzxCDr6cSFtIK+PY3m0uuFv7xzMelXmFSp0S0nZHiwL\npCcxZREN6gVLo0qf1DrLd2DnqcWkUJ9X1fXTira4v6MSy78qkH5QFtrymmEP\nbLU2vzCt5RLA6ZXnPvRmPO1VlNTfLwXnJ6bBsnC3h4bHr5pt8ToVgh/0Nkcw\nIrlZRnmXX4kln37XIdxLMMmSEU3yDgqs03Rny7mejxmGOX1OXSpd+TGPk3qP\n5lb8A74aKJp63m/uFKqGySumPoERD1jwoAdhyzPjWdPs6CqEedk+Q+nZXypn\njfevsv+AlQFFxt5GHQUvwa137jBaJvDRPHwcQcNvcZRZnVRIDcmbzhRQBd8g\nODZQtUdaSkXWaav3ek8D9EpPSzBlD+Vg8I7jBvemiWohI0PBgweQKIMdYH0n\nv5j/OTL2YyEIeArVoXlrzSUXnwzqpfMauIvZEXZruNRE6AJrNNjotKslWry0\nmwvPKu0Ef0NGNFBCwqY3Jz+l/2YCo7f4PPtpn0AsBVWUSnzcL+GpM8SDUKOm\nXQRmZ+S4r6ino0SBDxfiScMboVmZ2ymccATGnag+x+hN4gKA2147lnyO276M\n59VT\r\n=C50b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"70a128ff5dca16060ca7c2cff943369ae9999c34","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.4","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.16.1-alpha.11+70a128ff","@opentelemetry/context-base":"^0.16.1-alpha.11+70a128ff"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.16.1-alpha.11+70a128ff","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.16.1-alpha.11_1612801071156_0.7776706712203303","host":"s3://npm-registry-packages"}},"0.16.1-alpha.14":{"name":"@opentelemetry/core","version":"0.16.1-alpha.14","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.16.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ccce497a9d6fa772227735e45ba5c342e99f4961","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.16.1-alpha.14.tgz","fileCount":129,"integrity":"sha512-Iog5/94J9hH3h+8A5n78ippxiTXkBAYO6BKNgwhsiHImL85dJ7DqNBMy3LFGwNCf8N0H/6eWBaLApNmgv6Zj3w==","signatures":[{"sig":"MEUCIHY12YL5M9EyOp99yF43dMaVUoli6jrdiUI5Eq9O5+dyAiEAoXF2YHU7O+P5ix9NzwKKBac7ytxpXZkn7UZoGzX2SqQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":157792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJARhCRA9TVsSAnZWagAAN98P/0L+EWxgZzPst2gPpMmv\n9DJbeTm4yLBAyzvPw3mxC7SFT4hGHmGclmpFXi9avb0pYWugVyECPswaChXB\noy4grqDt+s43PrhcPF43+la0qasJrJaCcHyTdVFxHT7y6SrQJm92qrxSec8i\ndRNiuEnU5EBmeINcHonEF1cS/Vza3tDtC7SdnZbCPkBcsvSq4JMjj/T+pyGU\n4o7xCnAF6LmQ1ZF2GNWcDzUoslervenyWKiIWi8sySWomFCxwJFedEQt8uMl\ngPyYJGdp0yIbsgKTbRAUsqqF/HPOBgamjmvM7ebBj43xkMnHStOFNmpYxsKL\ncC3y1SWE/tcmmX71yV7aU/+bGSpLAsbusk6UImO0YT7s6k++K9TqhQYjpqlT\ngE54GmtrezrjkkB8yi1ZyLlbYFdhB2tVtyr4dZ9uRnLZc5RNDkdH8YlHDyzE\nnIlP3N+VPtuL79hJ8akOoKLHRlawReOCw7r+owVlf8Tlbw/gfFmO6fEboG0j\n+K409MnAXtY4NYxIwxZEweXE7SJ7z3IyDvyOWh7r1EM8ySAYTsRYfn/wIBZC\n0lpNDS+JwjcwjEJzQWMeHZwJbXe4C9ZK/UBN3fgNkEoEgDourasIs9S0ITMU\nYzbsA3R1V6Lvx1ISTqYdGTGzhBtUAN0gZuGn8Wbp/2eMWUaz660P5kzh/LNs\ng7DG\r\n=3rNK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"000a8ac099a3848a9a3c66f4bdd4826b4cff987a","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.4","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.16.1-alpha.14+000a8ac0","@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.16.1-alpha.14+000a8ac0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.16.1-alpha.14_1612973153046_0.527261788864771","host":"s3://npm-registry-packages"}},"0.16.1-alpha.15":{"name":"@opentelemetry/core","version":"0.16.1-alpha.15","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.16.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"39253b8236b27da7014f459e6e66502ca7513ead","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.16.1-alpha.15.tgz","fileCount":129,"integrity":"sha512-0bzMU0CUZEi6r1mkOz1VW1ssNxGe19Jl3v2al9gN9AlRfTJJ84P4a7fY4M+RXhq8nAm/N7GDUSLeFhgO6+s3ww==","signatures":[{"sig":"MEQCICmQdmcNleicoJ8m72YfSKjqNL4AOFH9/9edZOokOe3jAiARcQ4nTmvfkwPcL7prhiVYRe0qkZbffG6qFiQobmshCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":158479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJFuWCRA9TVsSAnZWagAAu3cP/RtoKTGeqlK4Ug7MpodX\nyAdtwh+3u5Z+o8v0be80GklBL9Km7pfBrtAjoRvejTf4lQnK8tYXh++0vMFm\nRpZ/y0riQTPxnmj/16WDjEke7sv+k9d/5uAF4w7RS6lAR8bUXYVq8tfSLY6i\n5Rx2++RqkG2XfOMuz42XRcgaM33RM/mffeJDN2jlD0j2783BunE/vOd92GZv\ndSyMq3nyGwiBhN6EBNAd7P6xO9pr7xH16cOlzUOsG5OLyfOK82Z3bOXTxhuy\nY8DIQUuNDiBzQD5gvu+JKrGCOXoavfA84P9zZ08uYZWojLPU+DK3I/CvYBdS\naZkGhIMmLOHKL4uP9OElrSzOtqSsLT8AKgfS3uP6u3lJoDJdYkLGiqsauaih\nbULLJ0Gu/k+RBlzpGEobFrQr1U6oZiRloFdHDb1pKQbLACxeDmlmc5r2n3YX\nHv1feBTjb33IZjH3q/ALv4X6z5eBsDQDUGQNL6TymGq8opnEB3L9RDCLcfAy\njFsQqYYCZ2TYGX0+wKsBXPr/p31cEf0AfbXApgFf2uVts8GV6Rnj2EBHTzRi\nkOfYcRt6bZuPwzHSdqEmktvYeNpgKrYBsWbk2fPXN4sUKjOhDLhNkJmmnmaq\nXbBqcZlaZFPRgFKvLcF2k5X7iIgaDtKJu/vxgETC5ABpR79DSwI02uj9BA+W\n1ac7\r\n=NxcI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"1d682c2f75f9d11265cfc1692fa822174594d4b0","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.4","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.16.1-alpha.15+1d682c2f","@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.16.1-alpha.15+1d682c2f","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.16.1-alpha.15_1612995477518_0.19550078003035165","host":"s3://npm-registry-packages"}},"0.16.1-alpha.18":{"name":"@opentelemetry/core","version":"0.16.1-alpha.18","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.16.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"986255a1ae3399314e6235624f70f121066a793e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.16.1-alpha.18.tgz","fileCount":129,"integrity":"sha512-wOImJVgOUPuy2+owPha9FO9fdT7LPg8xmTixyzpI0Gj52miPRAWkca+FB53iZXrGomNnsJvH7PWQlKes0x5pRg==","signatures":[{"sig":"MEUCIQCM0KW26PRpDfyHij/SYDTNWCgUN7RIYdcjo/xr6IMqDwIgRD1AawCS2/zHWpsXtCiQsuRNCTRP2z3BswAdKyzBrgc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":158702,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKWgGCRA9TVsSAnZWagAAANUP/35HL37+kefM687AsiVX\nInHgPG2FuntoOvNLCG8jJR5jq3EE5o02ny+fKqxxfhMz/JddQvSDSDChx3HZ\nCFlF7gREH6tPEEU7Qa8lxe3GZTBGtlNX1FkBSWoLVZG6OTOrTlDfYFAoThBg\nQSuOK1sJw/sfJ+ayeG6m4+kIWR0Ll9u4mbH2FBwRqJqxEZHmF77vdvwZLIGN\nltUyJikohUK5r0on1S63EMzMaRX3aQv7++BOFMDhYzi8TTxMWucaeytQIobK\nXw6/LLFGdVj/JaxLrqpS8+EJ51hQZOhupvNsrrTZWMly9VhXMq6NXLYyz8Yg\nDuH6zIxQtd65uK8jPF7b1ip9f8jKLhtLhKoCHQgCnAIP1u8A162waHnCmmKu\n0Flci5X3+HFKDXEoeSa3cXlY/jlVaQCIut0MReqsaX47olq3YQVlW3EB4K2n\n6OSYwE/AenpQXF0ZIJq4CDUXq6fMqbwgYVLZKCyAPTrTzDz9JBO1qt91Nw2H\nptAagaaraP6qwZDvQGIh2Tuw9ViI5keAuJrWflKkIg1xD+6ASKMmgnHzLwkS\nDQq+3QXovtkUQ3CxN2dn8C4pHnc0oyx6K5MwdAItpusU2NdpGArxGTsuZWIR\nQ/TWR+UDJisNNgbuYtL3Mq4+VjbkdLtgp94QrI4Pt9HS6qibmqIQgj01viGi\nZROI\r\n=fXa0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"9f965b0c749108df00bbe44eeab84d79b04bb0a4","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.4","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.16.0","@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.16.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.16.1-alpha.18_1613326342412_0.6085053985615765","host":"s3://npm-registry-packages"}},"0.16.1-alpha.20":{"name":"@opentelemetry/core","version":"0.16.1-alpha.20","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.16.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a5ba9c1b6271d86e1c24424989550e28b0bc48e4","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.16.1-alpha.20.tgz","fileCount":126,"integrity":"sha512-zJZ3tBPOawQ+XxJ3VTDqHqDsSXg8/oXN/v+OhhkU/d1OROG39HRugpGKPM28d3LwqeO7HKdJTJtYo4TYOoiNCg==","signatures":[{"sig":"MEUCIQDLUM5BGT8y9AakHmxDm0F/p7ifcFrEe/iwzHV0+k6bRgIgclqD6iNP2K/P5QT+GHPHtMP2RDjRu0OT7iXnxNuXmQM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYHkCRA9TVsSAnZWagAAvpIP/2ybAvwcKVctff/4VzPc\nCtBYrXQoGAvOTtszxETjDNUr0jb4qHQF1DaFSbXanxAFQZS0HQxiC/MndfbU\ntWJ0AhMPHIBhXH34Ga48yQ2enT5vR/0nXlqChgDDtIvCVLylJ6kyZCzOuwyD\nRG9cGtq6dMpwAV6ytmJb1wj/km0PS1nOd2eW8/kIaQQ07U5pj/rGU66jeIuz\nxtzAzlO/ir1e2d2/GCpLg0DOwLBUQ4yxP4phlXKq2pcdvtnNkhpBj5KuhK0i\nCU49Mq3Irf7GAZxTspwHqJETTaKs9Zy1ObFppdq8uoVzEbeUO/+nwMYtHH8S\nipTP0DBV0hWkezHtw4+zW/d38VEuYaqwply75nc5c+2coapOMkAWGo/j+Y+l\na/1TYB+6LKE/Sg/TgI8/yJHjA2uuKTUth62kwmyTZt1U2hN09ymm7QuDAvWU\nZxnOnOwmF6DulJJu8hkACkgrd1D7l1qf/CTGn2HSnWwNesF1r0BUSlopjMxh\nWoQ2tlx3k+htNeGUn5zihySFjdPeFd9ivR1LdMrcFKKPoGWStF2QwrNfmtjb\ntSavWx3+xb9iqpTB6w2fhe8m5SPICkgbiMQCRltdIO/F1COY7NXFC0bdg/Yo\nQGzvRcDax/xFYQbHULYEFmhWp6koySBJWEO1aul+aopDNIU33e8WEbGi+z5V\nZOOj\r\n=e/Lh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"62f8695d3fe5309c62418a1043bc6e8a176bc11f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.4","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.16.1-alpha.20+62f8695d","@opentelemetry/context-base":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.16.1-alpha.20+62f8695d","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.16.1-alpha.20_1613595107598_0.6434237939482284","host":"s3://npm-registry-packages"}},"0.17.0":{"name":"@opentelemetry/core","version":"0.17.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.17.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3e57a3bfd45fe8634ede81a90266ff415f39e24e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.17.0.tgz","fileCount":126,"integrity":"sha512-jRM0Ydcb98a1ejrShqJIhnc2qqPJI2SJfHDRsFeWCj/q6LIlPo7yRl9msIndUQjRTHHvLdIKBGclNvqoXRyXTA==","signatures":[{"sig":"MEUCIQDuT0yOafdbVVpe1ENlY2mEqS5Gg04rM1ezBhWHMK8hTAIgDKZexo3JduKcBg+XmQTUlGshXCMTi52Hl8V2PnJYoIU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYeRCRA9TVsSAnZWagAApcsP/ionssaSrSI9rB2htH4V\nFllXSu2YTeOgnCPAQaX9ss5gQJ+LJAy6MBbbuNHm4ZkJ0WWsDv52tfKFpNqO\no0wmJeIOExttMuT5JHhXeqnKYSm8X5TdNtv/0QOF6HFaMx03BmLp2Zdb+7f6\nAF7ITRfyjpc2UzBlUiIgXk5s+w8aW/cc4tOs1Vj2YoRDnUpMTBYC7OKCRJHi\nZE1+AEx8E7OlNp+fr4ldcWoj1wiVhJWLh0zuSQ++cERfqrAs9o3B8AoPpexK\ncVbZQ8pXsTCQ28eAoEUYNbaiaq7LnTQT2zruWa4QK7xfsnKeExu+WjaCadQf\ntV72YLF+tyoiY6+kvxWX99o2umvBFh0fwQD1z2ZnnFCsVljtJCgvQqiaVYK5\nJoNWcapx/nkmMzmIQqGBdXDmjnrW5UPrLlgeWo7NyD3XNEeJlGhXIVelnPkm\nleADw7gAd3rxEyvKFh9NtAtzMInkB3j+J06g2+v32gipC2vNa1LDTdj6GkbV\ndOmLusCZNG605RZ/KCjxsRLrter/Wr03C0UWKMToxhkhObZHbpWX4RGpDLc3\nOGke4lWb3eo1hAcEh7ofCoxQv9wJedN4YUdav6MITwo8lQ8d5Xx4vNPVcCuz\nZuaq605APSzJrEy1OxCDnon/nn8A/S+k1eRH71FtX0Pcr8PD8gFPboQxM/ry\nRNqK\r\n=l1aO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.17.0","@opentelemetry/context-base":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.17.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.17.0_1613596561000_0.293854136614361","host":"s3://npm-registry-packages"}},"0.17.1-alpha.21":{"name":"@opentelemetry/core","version":"0.17.1-alpha.21","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.17.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c9c23a2026de0319e2ad3356908846ccd5327301","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.17.1-alpha.21.tgz","fileCount":126,"integrity":"sha512-KZaTdqeSLQfM2Inz8MpCyTJul+CMqKoXrsLeMXsPJzL6+hkPwgp3a3u2ehOr1l5EmCf5SJmnjVWZAdqK4oBktA==","signatures":[{"sig":"MEQCIFyrgIUZu6IdLlyK0eW7or1AYZzoOFNhhx0Yzj+gd/98AiAa3EcX8O4lCcBJ/NKAO6bAsoDlhf70Nv+QzpOJJ5xKAg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYe5CRA9TVsSAnZWagAA3csP/3w531Gd5LL1XoZLumzh\n+KnoeZs7jZg0slqW6LAQL+982CaD3hLRMDi4pkDzG+1DnYxFYekRodkbbPgK\n6AiV4m7KuiANP2PE0jbhgqyiMu6FL3GRO8rLiYpEizPgGugtpNenNHOljEPK\nWgbftk4uLSy5BQSVWV5WNEjcEahgClUxS+m3WXdTLoqLRFAz6SeY9nzmPUGg\nVX0Zu4Of0UCUwfgt6qHNrwEEXy38GHr6koqGEvsf6PFmVds2/HgGb+i1apL4\nx3ZV4/hJe+gBPWH9gcW9rutFKMEle6qZpF4L54wUX/LmhCrlFzVr4m/j1PVs\nWzpZV4rU2e45WhRs4UbxbflAOtZ4fz6ZXBvYUD/xawKTWqMng6yl+Rha/b+c\n8JtWwEUBboWosWzuYUPm9KUnrHdcuICoAq2jZNoSCxW+nl3BsO9HMd00e8v+\nZwnLkKOyHZNqqrN+VCDCjmu29IRGFcExfcvvbmJldINedeQDQG74tbhlBwM2\nVHIGfDkH1lgHs+SiPcWfM3Ym2KNHIXTT+n0VKxSprcVYsnicT+ofak8+jsym\nBZJA+VqTC1cQ0o/0fODzh1LF1SXU+tSL1qpZoPzXIWuIO1wjsFHRkWUIb/L6\nTRogtCDQ/aKySHlfC5lPopIJY6ynjMMlEgoxsQ05/PgyPDv+Tlsv6m0uP0bD\n4BK4\r\n=2ITY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.4","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.17.1-alpha.21+a91ea761","@opentelemetry/context-base":"^0.17.1-alpha.21+a91ea761"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.17.1-alpha.21+a91ea761","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.17.1-alpha.21_1613596601338_0.26239820767252997","host":"s3://npm-registry-packages"}},"0.17.1-alpha.2":{"name":"@opentelemetry/core","version":"0.17.1-alpha.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.17.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5ee035b78355271b8b5dbab9604da7da0dc7753d","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.17.1-alpha.2.tgz","fileCount":126,"integrity":"sha512-Nab1L9PugKW0CxYbAUS7bmBhcnBJYVCOf/YQXoOwHunAXWTB8P7S0hzTc41PCB0vI8zs6AN0Cs5D9ImU5MCw0A==","signatures":[{"sig":"MEQCIDkn8wwcVQBCUMVktxAWqRaFL1O8Wf/Pbnr/vobG6AG/AiAzJYMOl/dui8aHz+l0PZ7pN/lIRT+6KA6kxKXFUQ1JNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMUjNCRA9TVsSAnZWagAAFdUP/2jsh4aUYOuYqY7skCdq\nSWCQV7LzsZxp5EXZTaK0aNKqvIw9ac4VDosn7oX9jP1hIltg0wL53oUijokx\nED8tlLa3mWgQw5s2R2F3gwlZQ74CCOIbwsiCx/B5NQNYVQ4x4/ivRAtc7/tU\neePMSafQpTUAh0+Q+EL6zNqZICPOdhWJ0Ts+m4/5qcsmQYJN8k0WWfdpgTg0\nb/4oic5z1+hAZSFChhFnV9ZhfmgSLIvCdzHRUdih70fzCDmsCBswW0zIL1Mz\n/Juck8n/rouIE88TmnRANjlu0nd5wyUHwpILeCTv/sTnOSw3WGGxwq8SbLJT\nSdfiOlIvkBZwq1VBrzwGoOec6rEiEF1NaPPLDZa6rn3AHmPULo4W9F29030c\nQgkYpGszH4Fz9JfPdJRa7t6zHl9kV7H8yXJElcM4JkGnp1Q0u8cJNsni309Q\nc2mHWCQbfuH9Mh1lNcoTBrq9O0CIFHQcmEtOO9jnnxMomivGOkarXbhwjicv\n0MizT1H3PYqbU11D8PLRPJ3ktDqEhynNK4hdk+ldi3yjux7NoeokDWRUrl0b\nTIC0b10bBWY8yax4LWmfj8xCYYQqoueoYdgNy/X/hWwUXrzaeUSE54l7OvSO\nkgmB8kB93BTUOX7nnHqhSgp2ErQd+g0acuh/EygKKSCv7y2envJ+EVcotxEC\n3LU+\r\n=I5k2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"38d1ee2552bbdda0a151734ba0d50ee7448e68e1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.5","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.17.0","@opentelemetry/context-base":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.17.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.17.1-alpha.2_1613842636858_0.593916444468962","host":"s3://npm-registry-packages"}},"0.17.1-alpha.5":{"name":"@opentelemetry/core","version":"0.17.1-alpha.5","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.17.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"af22e561c0965122d6abebf10461576fe676891e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.17.1-alpha.5.tgz","fileCount":126,"integrity":"sha512-9ce58/JNlgmeUrn8/jWUWCJRhGK2PWgmZP5t5InOCxrSWwPCnN17MYSbtVeenmzEZ9CIjdMoefIe2cNnOGTwnA==","signatures":[{"sig":"MEYCIQCLr2gAwSi/Iq9rF9asuHj3JyjPaVFA3twKIzuWCa4z8wIhAIcFGlyqFRn9Wu0guyu27vcdc+hoTdsm+anZq8xYB57f","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNoqhCRA9TVsSAnZWagAApoIP/1ayg5KtTkgL8NCkbyt7\nMAEaxWJDTMz1DWv3pKE4ri1Jg3RJr9IV7U6riPS4V+aDSiiJHwxlvcx8JjMW\nPFk2VUJCmyPvbc6TRGeS6k3csL456x6qYVTw28rjniselRTKFDcC81F/diQm\nD7rWl6zTKUYC/H4lX5eKrMTht6FoaLG1/QDhyLL23xcjRJMaH8CP/dksCPit\nLKWxVpTxKvmDslU9P3oJTmofLjtiqorTr5y73Xze9CrUdEQrwpA09NR7+VJc\ndPr5h2/fKR6gpc/jo2Jc2xWe4Ls+GaJivBMUsmqeWvUP18MLK82Ic4p8lvWJ\n9DWMfx33ZMjdiTk+S12CodusEQ7Kaosnx9qow2rXW3aerh6ekQ2gJ1gF4fod\nm8R1fkzo0FtzsWU/OY5xbiKb/m2nTDQjH9emopqZFtePo6d1joTkERy1OqE3\ntlsuYFWFUOD3dfGQEssm6v9lsYf83XzrFDOoAE8iT/5hVIqqW3AAtgaMLm0x\nO+XUqNSn9zTAZDrVFnCWG2MKMW8FjFnD/YqQanWxVsBenxHMOie5eBNznl2Q\n8is+zeJh0MKr/MySywfY6qdK9fzWUxIxAK2Ixzey1WrEsBbVPJk6SNS8VW2m\ngQOZpwExT2xLc2cC8NO4ak+HP8IaJfU4ldrnYdNgvAtTHLQR6nhdgeunBDqf\nlbq5\r\n=u28W\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"36ae1bd89abc2e2cc7f64e4a35a94d7e75a81d0d","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.5","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.17.0","@opentelemetry/context-base":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.17.1-alpha.5+36ae1bd8","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.17.1-alpha.5_1614187169179_0.16781398199382225","host":"s3://npm-registry-packages"}},"0.17.1-alpha.8":{"name":"@opentelemetry/core","version":"0.17.1-alpha.8","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.17.1-alpha.8","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"09dd15b2031f3453b097dcaefd1ea9536365167c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.17.1-alpha.8.tgz","fileCount":126,"integrity":"sha512-kM6z8njxRLRDTipErwTriF0XFJ4uCuO25uOaMHAcWdke9brrRWFA/NNTZSEUCJ8ZpDIl9W6qQ6PCqw+/L7UknQ==","signatures":[{"sig":"MEQCIF3kKlwMN50Dz4EtUd76x09iCT3jEe6w/Qx/cR9CuUxZAiAqsyRwySXQ9u4YnZ1mXEJ3kq7mnGiMnHQyOV3KfJ6gTg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152960,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPO48CRA9TVsSAnZWagAArWMQAKOWCK8/T34/kymTkuto\nfAlormCCaguevUPplVm6lazpw5okDK7bHQwA/UcZqJxkO9XJnuMIg1XLd/yF\nbtZi4lxVkPNfE/rUwwtWYfw16yZsE+g+Z3lZzT/pLkZcOWAvUI/LsmOQpcq/\nEzYFmgCkWKP4TETHvbOgH0TMjdzmS+wZgL4LCOjGwSKNjXua85XeR3SVcO3E\n16e5WcXhNZoOqOiRIojcTAP3AOuaem4zNwF1zG+Ok8IPbTvcCruqokOBG51i\n1RtJMyYQXDniZlNbKmqikkd5Vxt+5jjGcN6U1Pjq56BGgQkPxuXLd1aWLCaq\nCj4VQ5HVRzQ/GOCHcHC7Gfak9/3YHD+OBB8M8oCjMXVPU5SCmfPQu5rulsZm\nrlTv71D5EDqeHI10Dkh3Bs4mOgfGRZIQACBf4EbuExHMVmFP5TN0FZoZkqjP\n0HG/BS28GxJ2QJBVMkERUkUPaftBWHLUYp+CWlZsm8FEhCxolYdgFwMieaQg\nyf0a80CIS+XoFXreQj4UB2kDuI4IlcJFR/smDL7HC5K8yowV6tyUO7jD5J9m\nwsQUyA3lxryi0ylmcNhOufm5ksUtdsAsQ+AfKvcvdQ8OagjYhY8hILYJDgN0\nqx4scoZ1wmk73x/ZmIi2B24OXgV3YL++kPG2N/bPZnajo8QwMC+feu3lLzoi\nmJt5\r\n=rs4X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"67f7e70a3de005484d3e110b06f6bbee75b6f8a6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.5","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.17.1-alpha.8+67f7e70a","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.17.1-alpha.8_1614605884080_0.06720247428086235","host":"s3://npm-registry-packages"}},"0.18.1-alpha.12":{"name":"@opentelemetry/core","version":"0.18.1-alpha.12","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2fbab44bdbe03c593a409eb21fc07d80890d55f1","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.1-alpha.12.tgz","fileCount":126,"integrity":"sha512-jF6NOuNvq4ZE4PWZrbb0mH1yYkiI4fDpZHJGTy4OQtj62z71Ydaw0JdFNxSFwhVrADh9uDkA2eoRAZ0JFFxwDA==","signatures":[{"sig":"MEUCIQCpu2MNxDioesdZhgXMQWQDEIpI5VCY8DTrEWhcBNwvRwIgBzhoNmzkRjMaVgNGK5uRXmzPpNlCxtBsOM+YizkQMPo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152962,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPkNnCRA9TVsSAnZWagAAI+IP/A9IpLZEVI1NEirFwuoJ\nvt86X5sSN25TUfPz9FGJboeWJaOWi3TCyAj8azdQerIfP+sRVztVHZEHmmeN\n5xhQqzTFX5mhdH0uesLiKJ19XKm5/+3CxTWDgw1mO7wZC1Fx8hFTAQScqTvs\n8gZfzjUlP0Gg5eGZSa2Z0QcWyf01IKlCRJIzDvQuXn4wo9LuCZR8/9F2azxB\n+cFGBVtwMmPLZVoadlYc5c9V5WuXS/Hxwb3qEmI///ypDujthW5ixtPnb9LS\nDYvmwWWmfkESzzWxCaZ6ITB9Va55SQsDfeocaO0C5i37C6dvOcK0OKM/ijW8\nLkp1hC7ygH70Dh5N2ebNKE8hDJpimk/hCIv2IyHkmyRUHWJ7ndidsuEv2LhB\n5ggVlYK8GP93cerEu7JrKMk6nUUNyUu6QS08IkzNHmk6/Ah1jBO4KxwQ6MAc\ndoiBRVkCbM5QrzBgGQhntWJBypzgU+qjJOj7yL40iJXUEtpWVjEwc5b9ZEnr\nsGDD9+f7RkGE+djqyXI+0KFRn7P7okdeuYdO++kox/v4BNSqQtqC3AIRLdeA\nVk5Eb4TtJI/tTPAzt54VmPbSKRxHPiMP601ifMn9sJgTJf7O7W8mEvur+6Sk\npClIXoqmgPV8vNScq883QRClUKEc2KwV1OQ1SpEZ7BzsVXfXS0l/jvjSHoQl\nzGJw\r\n=iOfM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"6540b54a8bd49746e164ab730269188237f89b1c","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.5","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.1-alpha.12+6540b54a","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.1-alpha.12_1614693222583_0.561387173690908","host":"s3://npm-registry-packages"}},"0.18.0":{"name":"@opentelemetry/core","version":"0.18.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"51f1cea441c163e53eee2a454134ee0bc6451177","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.0.tgz","fileCount":126,"integrity":"sha512-Kg+LBIAPK70tEtpIAdZomkUmbABK+EwfnjFfvJ1rVZ8e0NApDx14Sq92RbGDIf67TK5mBgIvvY27W+ic354UZQ==","signatures":[{"sig":"MEUCIQCKRRXZ12M9Bg9HMPZfRScdpzk10hiS4z2bvOFe0lIDMwIgIyS8AyZH4Noh70hXs/h/yUI0Z8kyUP6q3EpBYxt86+0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPkUaCRA9TVsSAnZWagAAMr4QAJoaC0ADUaq9kuZBQ+j5\nZK9sinh3xYgugnKFpLQ1N439adx8Hl6HSIb2vAE4Xh8yzn26FcPjB9iUG+dq\n6B4+JbrMxGvcHK+7PJ0oRLNf+ZXcXxp02NnCfYA3n0V1uHwJvyLFiRzFmmIV\ntG7uBn0TAq00Qs+7/JY5yvlLwo0vrkgdgwLz4Nngz59lNowaU52BOE1y5TkG\n5YOIW/c6dq/EsO7GJV/1aaLa7DCijASPixt4DA1+y4rSQzBT+Qiu3B1oKIz7\nap90Qjv253Genh+Ayv6pYKRJ3DwqRIxok8M70UUbKLyq9Xl8i4M+4Eqyt/zH\nbNLVNBTD2JpEtBhDZ34qV2rk1S+JyrXzMzOiBuRbljPq711PQgrn9bTHt/Xr\n7pCuqdPq1ffe/AsR1rzgmfiyQVUmHL/EV7TmvUx0IqSew8gF7KwjDVxAiFWh\nTOwbC98QkvcdDEMK2lF+BgKDvwJXMPNVgBmw0BxvyhheIbGgERN3DJ2VVhnY\nE303+QduNUvcDtT2fDvGppwNZw52dxaMq59nV7Z+zSTWFuWanoIyHUGpDn4e\nsdHjizM3kqPinrLvIxBJGHO0hfPcYhd0D53hPwojQAu/r3/J3UTH1oRY0hTJ\nu5D6voyDxj0bCCbx1SKovxCegyIsNHaunny8TwfnLh33MjXiZ818zy1JW/ub\n5BDM\r\n=jlsc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"6540b54a8bd49746e164ab730269188237f89b1c","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.0_1614693658547_0.6435067942727279","host":"s3://npm-registry-packages"}},"0.18.1-alpha.3":{"name":"@opentelemetry/core","version":"0.18.1-alpha.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3396cdbf597291e3c5d38be7ef1076718bea29e3","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.1-alpha.3.tgz","fileCount":126,"integrity":"sha512-IvlnV9Mnh9bQuUoaxNiCSGN6MvUN9yKGYAE84vIWXwYnN7NxKcLzlIoKq/ClmPvMyJYG58vyveWUk+jCoUUvxA==","signatures":[{"sig":"MEQCIFyxRa+cGsz1dFeVD2Uc+ybRtGcMVxrCAOSxJg6pSkdwAiBmJlMcaZQDkZX1ObHh6qD+9XeEliqCZPomo1MSpe8adw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPo1eCRA9TVsSAnZWagAAC9oP/jVxo9SeSjVRGnoISlEr\n8c7sYmDTQm9MrsPeSOjUby2dx2y4ItDHIMneKH21TYgjoerCzhgx12xCcOE9\nIdovXLE8mxh2+nQR4gGzatUXieMp5+MWVr5bgVFo1rLAjBhiQzKpRzVmgESm\neqHyEmyl5wJOxaRjmSjmLvwgMF9XmlBKwLIsHZUmUXUmXkK2FVg/lUibrCY6\nKihJz5IaUMfC41L3ygRsCi7WZ9S49mJXewG9buh50QfPgiKPpunu+pMzNl8l\n+TabxVspAABCJqU7mwVz9L9m5+9t87pbRKGGUAV8L2oy37DvZIuGXffV57J4\nHrinvK4ugGBvnOkL4ld3uJxsu93lKB0+TKd77r1pWnMPmvOjeN5DEjNycUbG\n4HyE4D/tuimYEPB0YliC3GPRxn1lrmIKGflJjt4WT/O1Yl2jf3idf8hvrtyg\nnTAVRR5imJ+eax2LGrU6f+y3pudkpRL+8h/riiao2S5xVJXg5w+BCP9t0YhY\n/JyfAOKBBfVW/cJn63ZEB3B43bjGzSpzBExEkXamKoCEpAWzbyadsQrpb5O0\nDvEwhVr8O2+Ry8awbdSk6ohv6Rwsz2Cnu+ztC8yCRVlKaoLCiRDkLYPB95cW\nJhk1G+w0dCeIQ4abTa7DSvlJt0CfL3FjUnwOjYCO+bffQq8APdd22/NhZwAq\nVz64\r\n=Ov7L\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"0643642f61de5e2bfb8942ce7b5dadea643cb295","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.15.5","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@types/node":"14.14.20","karma-mocha":"2.0.1","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.1-alpha.3+0643642f","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.1-alpha.3_1614712158232_0.34969044336906263","host":"s3://npm-registry-packages"}},"0.18.1-alpha.20":{"name":"@opentelemetry/core","version":"0.18.1-alpha.20","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"51fa146a717c9343a43be56df2989ea43398c53f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.1-alpha.20.tgz","fileCount":126,"integrity":"sha512-eIRaHbb66gz1S3ZiIb37qOHV1znGwD+u9qDSvAvEiuyPcvaPyYcENRLW51aviV2sYngN1poFhKseUDYQ99NdhA==","signatures":[{"sig":"MEQCIGSJ1AG4QqyMj6OtAuJ8Z+0OXiVDjk5rJeI0IyZA7FbLAiAw8K4eDRQzVyg1Bcc1v9VsMUdPbMNX4kI7GIK2WDFn0Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153135,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWzpRCRA9TVsSAnZWagAAOhsQAJGQnWvcHQL2j6pijDM1\nT2Wb2EnA01eoFLBuwk8/+DPduK00thll6k24cp5m7TBDxrlcQGm1BM4t15yB\nlo80Vx20vBeI+YCJDyMNPvsd6RzfYdeMiSXtgbnZnkohI6359X1K6bwsNT83\nRrsqQvNcgoWTcQxNkZK4S/rjgKA5d33wMMukEeIPiuqNrHohT+hv6c3YG6qa\nEokkX/nw4Ph4GcyBIVM3KNxQdbVVsqEWOl4/RQzMLTVlFWGZPBFU30nTCgDp\n4uOti9G1uDLg8tqeGCQocMu01w6zd/hl4tvb6j+MItmp4onMQsq6Fq6H2LwG\n/gxj8NVCcNcFcOZx/v7vF1eiw1ug4epohQeQuJChK7u1ok9Afpm+BCmievbW\nxw5ZAYS7pQOAUbxEhzo8owYiNrl/+vycfZ/SzYXDLD2kMXNe5IwFXom00rBF\nw/geHzlDEKYmWtxK+qIJjmgDwUwmXC/niBnX6nr1w/S6JIwVC2V8sX4X+eB7\nGncI5kLour0zIP0v1ycPBKL1YdzwNESiqEFlT1XNvsd4kdRiZ12i6MuYBP67\n8RmPdEeYUkUbLecErILvu9Vj+A232Ynud66OCY1w/OO9jutPNIXCdqNzrF+x\nbxVgPOce5xLQhmjRroQDC27F2OZERS0K4ICH+tPtlD2Qsr5/09nOnXcV2CeU\nTMp6\r\n=9BYU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"24bcfe82340e02e605c5c722b0f955da50bf82cf","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.1-alpha.20+24bcfe82","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.1-alpha.20_1616591441211_0.22006755141525725","host":"s3://npm-registry-packages"}},"0.18.1-alpha.21":{"name":"@opentelemetry/core","version":"0.18.1-alpha.21","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"939562ccc2dd9a84f2fa46fff39aa180ec353d3b","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.1-alpha.21.tgz","fileCount":126,"integrity":"sha512-ygP0968LwoG7vGNsF1Kz6f1EHDWrso+jCJjtvV/h260NaWBzhJUQZJG8mINy8aVlDH7mgYC7UHaTjeNp9ZzdVA==","signatures":[{"sig":"MEQCID1jUbtA8FsTsnmG7I/hc4xPBhe9efaiMsMQLHWeJwtUAiASJ642Ter9C3LBoEDP6rSlt8/e0xunP6ai4DxWm70FJA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW0jVCRA9TVsSAnZWagAAhrYP/A1DhLMRRPTX8ArYDAh3\nIQs4o8mPCbOJ+yyQpeRAV5+oLovG/3RAB0XMYRq2oZrW+Ejyk13IW0aeS+cQ\nDSDpmDDcfXoxYiX7UIu4Cih4fXNQAak9wBqZT0lq4JTWmW51GSNTw8/ZM1B3\nk38NzVEKczlwW77IdYxbdQwhH8v1zggcxJrl8A5ngVglNwY+UvQ/n10KIRqm\nKSXx8xC3SACwQ9LAbVWdia6BspY6R9janzb8erg/ptxuLeYwbpdEhzkVBLFh\nJmMDoV2PmCO/Svfpngs02m2K7LcNQX0lJdS5m9JXD9K4hppogDWBcetIj4B3\nSH7MDZPsU26WtuiqKfARwtrPHuLVdpe1gmKGic7FEeZM2sq3p66KbbhL+RrQ\ntr4fsvqkUNsOmPPVV37YGRztBJbXQ0eEYGLDwXJj8Gm6K+R5cj4iOCUfu5SX\nBtLFhyeZhIZkODd/7Oy5UGrDdU5mynwl0Wp96TxbGEv5MGmLQFFNPo1Vktl6\ncv0aAwR6Y8km00ichPQcU9fTzawZGXcU9sXr3W6l7dSxk7MPhBHu+gwHGJUR\nLFqMSfw6o+TcP07pRUQJT4lUEMm9IlWtgkC7feCemnAfhCXYHNxv8NyLXE0P\nHcULzDACkgl33jVORbJsEzQjIlkwbaRSnPpEKxb3jFl/ORfqgd3eUFYasZkt\niKIh\r\n=mMn1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"8010ac2fcd0c658c0a4184cb0f5d8108db3632e5","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^1.0.0-rc.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.1-alpha.21+8010ac2f","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.1-alpha.21_1616595156834_0.9662544388011254","host":"s3://npm-registry-packages"}},"0.18.1-alpha.24":{"name":"@opentelemetry/core","version":"0.18.1-alpha.24","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.1-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0c338a0d86cbe4c8c3030a5644b4a127432fe9cb","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.1-alpha.24.tgz","fileCount":126,"integrity":"sha512-X9w0NNbe97pMrpWNC4AKu28DkzXHYR+ft/6G6o8nzBCJ5vBN0ZmUHTPrO6gVFk7xYvnROamVstY7xAJ60AZkvw==","signatures":[{"sig":"MEQCIGyaCbcDlb5ChzVP5cbeW5au8+7030PlTilpAb+uUtfBAiBjU+zuzcATNCLxSXN1ERUIUNy0eW2llUXaawSwSR3c/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5U0CRA9TVsSAnZWagAASgUP/RsQG+yG7ngwz/HwAPYA\nJDRAtOh6+m0lUGCb54Sb5IcFOPuqFwN5NuyQNuWBzXj3wpOSq6cO5mJiTxUR\nF7ImFFsd5pevrbeWGExU0vYE++P3H1UrruBOWZ55+HKKer7xzJibLKldUlch\ndy4HmaAS1Y4fn/oPW1HeV+tMIubH7w0zD8SB++h3KohXvXFdDzH9RNQEQvoa\nrnjgHcF1b5ja3WD4tSRi6f1Us9HpO7nm79zuGq7ZEG+BkcOi6dL9dVCvry7Z\nprrOsxUdQcxn+ZqU/4bb1K3IKygMhoVMPpmzTs571Z1CZuj/Hp9p1GUObiaD\n06pcpYjsNfAM9nFsp4w8XTDaHWhozeEQbs2w/nS5CTRlKJ2YSA2JYG0/kCsk\ni7A1IGCfUh9pqCe4UseejAOPihT3evYHxS15Y9zVihabO644I35MxifLvS4i\nw+CQTQ+qeCccle3G+YRhRbh1V3RABp701iPObmVcSAlNp3seTT0bt2sh4mKT\nAYY31kvjEFecaZmJw5NP4V9HqLgkUU9wkLeIvAI8kV2B4f41IK0bkoDnJfLe\nmb6M0zCsuVOJSE2fyAINBLpNIk4A3pGdSxIUvNc2hkchaMexRJHzgXTYURy9\n0xfXtjgNb4ksqEf3S+3v6BfoqbzlUXNxDELAfKr1Q+4SHwV62V5dT63S8MU6\nuhav\r\n=DYIu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"69f2d3c264497bfdefa2126d0865ca56ad5f22a3","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^1.0.0-rc.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.1-alpha.24+69f2d3c2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.1-alpha.24_1616614707538_0.5395444519839057","host":"s3://npm-registry-packages"}},"0.18.1-alpha.26":{"name":"@opentelemetry/core","version":"0.18.1-alpha.26","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.1-alpha.26","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ea5c791992674d544daf67e9f0914054b6cbbf85","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.1-alpha.26.tgz","fileCount":126,"integrity":"sha512-bBv79sB0uVLyZ6307NExbC3jz1o0xa3hpobB9wdnup4U34Tov0FC11QJVV2ZlcxbEWdU4HxNB3YwO4RNaV9ebA==","signatures":[{"sig":"MEUCIQDKroDLKq7DfK3zYicXvoCBxh8iE7tDM2+54moZJ9rUNgIgTj7VFQdreKGYd/c0nSX+L/+nAJyDewUkkcVo4IkrkMM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5xRCRA9TVsSAnZWagAAkiQP/0DTiNptycGXDwcztbrk\nnT77Z50mitbV9anGvFgQ9tGDjJVmHTj8BkmmAW/JxpPirTYzIN3OPgzcz/mM\n3ggnPhsFzuaoMTNj5lqFJM7dxRKOSNUHABWCa8D1YWxfYGalPV9q4K1D7XQi\nscWaQhT5+GP72M3IXjZSrcQAij39ZqJ/vFmUEyrwj9xE2HXRBnpuSeo6PQJF\nGjSBF3oz0fjq7XzJ7dTOxG5Rk8unQU18rqjieWrZmyrwVdWuMIymIAyjvfBN\nS2UoHuEOXpDlZLDA4CCWROKoOA/khturfDRWha0W+gKzMbXyLV3T5+CwbuOj\nySY+tjMx7LYjANTPln+HeCJz7t+0SVXwfP+vvlzvlefhlEIBZroUwzMriaM0\nhgMk1fieV3sVzQ1y1XzZbkml76cXAWGstsfMHJ9XNoittCWLqYLQ5R4XPgi2\nKdKYPzJaTHsa1VgemP/BEcqpmnMpAOpf4Q4X6WjAkf4yJV1wcIHMsVOFEmvG\nmZlazZA8Mzxf9dUc2e/uIobhNyF6kBXO43z5CiIbj06MGVwmNG+xsAiErD97\n2DMS3V9QgpC6EDvlpQQAothd3Y/U4TGN4REXjX88/jRdhVzn3MF89a7C6QUF\nhvuZsFCtK+yqJfbrqqiiauS1/J+tHjFAaIxEatTuR/debH3l+Vlc8NrAqqEH\nMAmi\r\n=7o16\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"91483873ae3e3e8a686dbe3b7711a233167efba5","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^1.0.0-rc.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.1-alpha.26_1616616529427_0.24991903137222593","host":"s3://npm-registry-packages"}},"0.18.2-alpha.81":{"name":"@opentelemetry/core","version":"0.18.2-alpha.81","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.2-alpha.81","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"81e0450cea29ffa3947c8e45df45dbf83001c621","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.2-alpha.81.tgz","fileCount":126,"integrity":"sha512-YnEdfQo+1uxwS5FQX4OAqA1t76Yp6rwXbYpnLwv4GuXqROKHIMLHVMzgqBqSEocJMwTgox64aNA/c60cfjg+OQ==","signatures":[{"sig":"MEUCIQDXi9CS/n0Ejv8wJhaBGrmRjf9F5eqic9Ej//AvbrhWMwIgBLHELH742MLI06BFH2vZqjHMVmKwaS3hQxcYL/dQS+E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYi/SCRA9TVsSAnZWagAAzbUP/1MEylfE3gQng2g/Pv0I\nW7sbkdSvfujn3IE7talhAfZLZEeo+JN21UqF/wZ+dcnXgJ7Leen++bxQDMIh\nAI+U3bn/MFYUgzNFpKbVULKneOxeiEGbhPjlw05/UU+BY6HbjXG/5P1KfIfm\nK3LByzMk3po5CS4F/3wHI2SdMI1MdNdDN3QKWhSDUFXqdmxyZ6dJB5ruv7nW\nTZ6Bz5GTUchNLQ6LllCdfi4RxvV2+P6TCMyt4Zswt8AFMyVI7jS9oBPz8box\nCK7Nx91OTM5URgOJOF/KAbUqngRa16DOk4EVnqWKYzPeYLFo00s8KHCQaj+v\nVSmuVrEwhZmOdxi0HxCSF8QivUDGjaBwwtLKh2PO0XYDgXabNJYTtfjQtQjw\nmcfZBAUiSaxqavjp9QbJhwVNmH2DNTCyJ2DavqsXfQFEpOR7iAS5CkUwmTwr\nFbP+MP2uXKWCSlfCT91Cc4PlWTjcJ6dBcOMjGqHqiA8HxF1MXxa0XpTu3P+m\neO/yxM8cSLASF17bWQYfqXyLFhGCjbBJG6TWl0L5jXEwhWL6u6a4YbM6jx6c\nZDT9Hj8CMOPD1AUvtwm8aAVrjLjZt5/M2Ur+AHENbWPoolADw6AO6EtxigBD\n6NCNbo/ClnJl6hKCxPzEVSllCFdiT9ucm9Q2UiQR03rjc5f3vsXbYtv6K232\nZKe7\r\n=wxkF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"e369035cd228a5c8781069a99322c5b938061d20","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^1.0.0-rc.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2-alpha.81+e369035c","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.2-alpha.81_1617047505537_0.3112270561740247","host":"s3://npm-registry-packages"}},"0.18.1":{"name":"@opentelemetry/core","version":"0.18.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6caf3e1bd472c4658a6fbc09800d6ee12f5e8c52","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.1.tgz","fileCount":126,"integrity":"sha512-a3/jbLvO2iM7HWQrTmsWIs7ijrAqsVEDrC5Ar44VDYv1xaznWAfendA+9O8QgnEJcyILkSEzp6MYNdbkemBc7g==","signatures":[{"sig":"MEQCIGlylMjHdbtGSoYQ8f3AgaNBiCj6DSIPmSugSJPnT9EzAiBcI2GwcsIyV+ihTbztm9Xy8k0r8LflvzgQfVk+0Tm6iQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYjKnCRA9TVsSAnZWagAA16UP/A4JFT/oIIlegEJUX4/m\nYjhy+aF3hx/fjfa89ZOtZcjYCPUXk6Hzi5F5P78UYgJPYgUA7fB27EKirRrb\nc4PZQzgSblnVBmf7NAqtXHy/jMMOiCTrfrD4GvQgffCCyiXuU8aGwx9drzUC\n0HtmfvtkbAekWi8uHAfuJuj2r6fjlP6UY5cLYCKviEs6X//NMiBkqdQiaT53\n0OBrN5KkMTL44qLwpN+9R9FNK+/n76mFRWNkYjPE8JuAm+9ADn9Tlpf3xiI0\ncBG/kpbEjyntlohCswIHm7xnEv6Ca3d/phNTGePNvzm8E+/3YJA+aSMoGh8j\nb8QTY7S4fKdfxXWojE2ySZVER0zGNR2o0q4VWwHgurY3VHyJs/IgSbhKSnWr\nB1cLY/qcUSJi92zrmHfclvCw1w/sc/1NVpZG6ha32VP55j8YErOLojpKES9u\nJXeWKeZJEKExAJbfW/dYPkhSYgh6KLLfD6rbdFelVNJ+ZlZcdbgV3bl0fHt0\nfmmJUCwn7U3LGLha4oE+hdu85XD9zsxNVMUa1/KC0jIn3bWa8qk+oxOrekgZ\nZYKSEH2kIcRRx01P9e7nw4DmkSmxBs8elsQ1yGl71Q11DMqV/+biPtmopR8F\ndyYZ/1UcP53H26r21yKiCSZIsJNCBq4CvBBZsG8lMPzEicr3Dn0gBLPtLPrm\n0ktj\r\n=WcEW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"e369035cd228a5c8781069a99322c5b938061d20","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^1.0.0-rc.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.1","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.1_1617048231188_0.02085525568341029","host":"s3://npm-registry-packages"}},"0.18.2-alpha.1":{"name":"@opentelemetry/core","version":"0.18.2-alpha.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.2-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0d9cc1e7ce771f6ff3e50629ee5ca50e2ee0a49e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.2-alpha.1.tgz","fileCount":126,"integrity":"sha512-HmFY7gzob2SPFPyufmw5E1KStxgcdXDzURqnFjpVD/4NozuvQoxxItUjAtXg9qfLpLLY/q85WnjPURPFvchDHQ==","signatures":[{"sig":"MEUCIQD0onf+slyFLw0Rn4OpE5mOlrPwRfQdp1f85Q1TJHGiXAIgTwKv5/a0DxTtQhCqvJ26IbwAhP1BWUyFDne+15kiR+E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYyIzCRA9TVsSAnZWagAA78QP/RKl5jtpgPISmcElW2NI\ny6tK35kNz9qt+gdmVmLTPj/vDfDRT+eA+n5t2i46nrBr3OkTEjUxfjIwDFLa\nL3b+C2ZzaY3YWiZI5VKRt/YFGy5zCIcZ8sH/oSTDjFnoS14ddj476kuc62U8\nSdAveKNsV4W8dVp3b/OVe22q5Vd43gG4lXSUTusyAMx7Rg1kK7Rw7lgnMDyC\n7Dg2NV5l9OEblCttZs1dvJb1hQ0HQlW+tK5hEGYdQ36pooA7JGV8iwvlH6sV\ng/BZrc+amTdyWkNPU97oQCgQkPuvurdvWEbT/i45jKKHwpWqhduoNE3kLRrr\ndcSIhFDUctpATOcsCodpmc+Xwq0etecgBEAQjN3lrkGJ/XKnhnxFgwWPSOZy\nGQlhwPQ9euWob9xhlv06OKuPZipsujBH7E1QH8pVbul5PLehfQm51+me5oxv\n+nWUNXTqatG1KWV4HPJyR59ld0JslC1x+i5Rqu3teUcIporOh2H2LhJQyzTJ\n5sSdLA6PUhPX8fM0Ba5RNG1IGCud5kClcElqg6Y7zFq3tuWRJVWdC6ADsRQ1\nHyIihysyWgu1cGYDna02gMi030/ICcsQtn9A4TzlUkxbIFXkQPN2U5ldAfq5\nKVSP+58ljQNHN89tFzxquHC//ay/pEVByKrMJbF9WEnhONUzeLM/Gmymv2Ph\nZGxD\r\n=4POA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"54857c012414c05bc83b4a8da224492c98abfd46","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2-alpha.1+54857c01","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.2-alpha.1_1617109555027_0.8152746552793557","host":"s3://npm-registry-packages"}},"0.18.3-alpha.2":{"name":"@opentelemetry/core","version":"0.18.3-alpha.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"797cb29c6740fc5ba3c60369c14fa7e9932e47d3","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.2.tgz","fileCount":126,"integrity":"sha512-mxnbdAY6sFqrnPWSAnSAEdAgYdnMYz41ZLeoob2ikSyUU4+7tm2g/JVny4pVme4cSzbSt7sByRnQNUrbhJjP5Q==","signatures":[{"sig":"MEYCIQD8gvhUk1PWFfSk53vntTVpoKJk38r98V8NcaewxHgmzQIhAMJlZ6WMMJWFtkp+B0dsKbR3w2Puq4zruuO8lMwS4O2W","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY0M8CRA9TVsSAnZWagAAawoP/Rpi/R58zw8eQzB0LWTk\nqSahw5fg9vLo0WPN6KDTd9Cuj3Km4nSTi9KgvCFer8qXT3PLkYq8FEh2FZrq\nU7gLOIqZ9lmaH7sR6gkQGtV2K23JxKEAb4MV3PG0dv1QLMRAmzi8Jk7f6IHt\nYgw/ehM/lWXr8FH+4d9B7qBCcLqskON3uortLnrkVSYXm06RQ7dxA16mPnuO\nQDxMOiFkT17hIYJbfSPaqB/7LmlRZZlGsCr93Yvawmd7p1QKZnyqNBBap42a\nrzM5D2pzHpyGMbjFlo54vjzGzeWFLNKlEh96DDD0VKbQgmQryudilQd4oea5\nmLfmytt0+GXS8Q8xJWCSWqcAeihjW4Bmj3DXE0JEk6kNuN7Jyx4EHNw25cPj\n2XPK1Yy6qEX2poiqFZaVRdlIzflTE4eXANk1+LvA+s3cB1ruVw4Yn6JxxOMY\n9uzVdt+vde13Ln31Y3q9i7NsTBMuyoP5KrFQAABwFYFCgQG4Cm+NTse9M/IP\n7Lrpe9symfBh/x9n+gOVyPYET8I3r7lDPeV894pVSjsp3Z8NRHStVnvrwl5h\nd6BfF5Egc1+h5cPrI2xPXWke6jzoJp3UAOymknYBpo7fWTA5b4hZWfZnIJvW\nsXoQ476D5SsZ8G74JcPUN112XoHyHJ01MNrlYu1lVi0n89fHvPqLJkynxGKp\newvK\r\n=Erx3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"2409f1cdddd92c23548c18c055a6a36efe36349f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.3-alpha.2+2409f1cd","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.2_1617118012077_0.06590145748362186","host":"s3://npm-registry-packages"}},"0.18.2":{"name":"@opentelemetry/core","version":"0.18.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3f8f54e250416b50730551f73e42fca9808cafd3","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.2.tgz","fileCount":126,"integrity":"sha512-WG8veOEd8xZHuBaOHddzWQg5yj794lrEPAe6W1qI0YkV7pyqYXvhJdCxOU5Lyo1SWzTAjI5xrCUQ9J2WlrqzYA==","signatures":[{"sig":"MEUCIBb999udluViDe+tv+5OnJuzq6B5Zo4vKwKTFZzknfpJAiEAz5Hlz+JToxE5d24hCWp7CZBlIWAWdsrm7J6RqnuFi5Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY06tCRA9TVsSAnZWagAASo8QAJBchdKRAezhkJyx6xXv\ne59rmwRPr7RggyaZoKPw0/CgBlsFksgvI68Yy/RCKJBb/0JY729eXXMfi4I7\nz6frT0rUztoxZvvekwK/2bNnXLwBKxejvIej/2Q5zLFTvEIJ2lii23cVKcj3\nmJABzkjPilKUVmvGVklJHppmLTpK8+LK0lQbYvmYkwZdYwGCbA6n0cFSjD7c\nQ9IICBphbchveLrOm9FjZUExX+AbQ1KP828Rvk0cDQ8pn7lYeLGUeZknj0FL\njRBJBJm5O3W64bM2mwVIuvgDxkWjln6p7xabc2bkTpoHNpRHTRm1/P7Cf6jw\n1oi5j/fq6QRQz9tF6DNnJg982o8hPhGaQX3gtpESRHaGwzxqvg5DG/Z3e3ay\neWqH+xbZB99DK2Mkh+UkHFuY0dJ8fmbOtVh7dz8lZWyiwwLlUf4d/3HnyZ1f\nBg8AWTmzOTebVm9KvtdykrwZTASJCKwZKjVasENXOVJEcI5BamcblLU+USTS\n2JSvtxtRwHqwbSBZU1L/5KlP04KcJKiyGayhr3aX1H0bAIf4jEYJi3FyTzz1\nwtWWpsJX4O8rYgOTZIfme/u6eiw4b6q57U4xIANh4Jq0N0X8g3DHLJfmrEee\n/TSX2/CdPuT+tlqYWXMB/7KyhcLVrI2enJk7HOwMyYtJa0bg1CtFfFGs3imM\njPCW\r\n=fUyb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"2409f1cdddd92c23548c18c055a6a36efe36349f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@types/node":"14.14.35","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.2_1617120941317_0.014520835732853898","host":"s3://npm-registry-packages"}},"0.18.3-alpha.1":{"name":"@opentelemetry/core","version":"0.18.3-alpha.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2c513ac27c5b5b5f25e1358f64f81c7a7f129bd4","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.1.tgz","fileCount":126,"integrity":"sha512-CpR/19wUZGjc4qX3yY9oONYodwGO94eq+NUFiBgOKAN2QMdo+o/POO2RImuEqDKKaTY2UoJeTnzUdceBS+44hA==","signatures":[{"sig":"MEUCIQCgtGtEyLR57QNqKMMAXt7coKw6NXH3xDsSw2pVtUIPzgIgJA3P6qmm8TeFOagsUa9WO7oGLl+bcwJxF7XEi7nNN9A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153717,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY1/wCRA9TVsSAnZWagAA/MMQAI0Ks1tMOXk4Yl/rMQMx\nwd7sXWQHsVrHPq6RVCBdf+CKsnNG2QvBS9/Jg8unOz2i2axwaI5vBVPntUEB\nDEUXwVNgUMkkD/KfRjQEbnt14jXMxN0SRfLkB232z2qJWFckRMNi7xsQw0Ff\nWx9/aMgvM4hhgyEe5tRvOuyXroBJMYhSaC5Daiv82xz3XuSLMOd0EAdd8a+H\nZGjFdFNfLq/LO9QErn7MYy1Yy1Gk28wMqSPQXYMpd9FqOd7wN+RMZZA08U2E\n75OaYmgu29tRGCmKiTHe+qVVZ7X/+vbV9xIc5YKujHtXmuuBnRAnuG2EotXc\n7BD13XZSZAMycrvUjgm7pfDzaW8wmVSLmobPBi20bpK1paktAM/lWihDZ9F3\ngtn3/OZVBCUTeSIQo6RFbpDdPTYU8Tq3D+lzfH2Tdo4iDE6rCdxl50ze5qZt\nm6QOrO0RtOlrjMSgietWhVZtlvWpOknuYnbYKWMlg8EudPYYfYUpzvLqCo7M\nbl6I78h2ovPmBJSDIZbuDqmqDKKGqywFv7m3KPtWSKJG/04gniBJo/JNNKUK\ne8RrC7XSfcA8x8rI2J58wF5yfeE5LLlDKhaAMgW/Teu9ngD8qLalXMoUaghz\ny4RldOTIGkEBMzHHUVwOiKolJsQKnbuV1hf9FND+pQ1wKpWta6Z4MDB/yJfZ\nkRpA\r\n=QUXL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"cabf8630cf2e295ac2e7e5f44d6efd1ae911cbe4","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.3-alpha.1+cabf8630","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.1_1617125360308_0.8484044149894256","host":"s3://npm-registry-packages"}},"0.18.3-alpha.3":{"name":"@opentelemetry/core","version":"0.18.3-alpha.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b029155ae25702df7510ff19a63031a85d0eaab9","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.3.tgz","fileCount":126,"integrity":"sha512-lj7JYavLYq5lRySwHURi1+GE0ZcRB+eZEuyd11ZG2MOxKmVyFOUzdnOMYVsQlnhRJzj4ZXSI8U+DaZciB7q0JQ==","signatures":[{"sig":"MEYCIQDzRqsAP8IP8kAASpE2Vp1qzbXrJTfGMjKbF1oRreKvLwIhAOR0sFviMzi7qrkLzdQHBbv9JNGPrTeoUK5pF3x06tFJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153717,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZCbSCRA9TVsSAnZWagAAwFsP/A/0THTd7GoFSLUStkqw\n1w0osP56LbfzCs1caBjqQv8cFm85kZc4SoRo141gS1OxiU/i5YU8n60Ovea2\n4XxO/Psco/tF/Wpa0fJKttQpXmDTxOUHnwtxl9FaatyU8Q7RZ8IZbpqEUwZc\nFomYXRKe+T5u3j41W+3j8h4kI/qFmgh7jENqlEslS5uHksENm02sYtSZA3HG\n/Vq67pPq0xTgRrSsNX3Uk2v+6LU38eG7gHdowl6TgAILLYXB3TfhtJktKPib\nmdaBbLN96XXTd8YqHBFfcRnYP6u0yxSE27IHN3705XGf8YuVnXUBmPTXrKb5\nm6JwfwYdS5WEr7Tu3sslknJID/EgxugGzZW5dD/bykAsCiqH0P4nM/+4r+fZ\nh/nl7Co8VdsRWX9S8EHD5bDonFsbksOqmhlJ598ERQbhjYFJE36euKbLiADj\nPm+nJMFnKbzBbFsC3QwQYLk696w2SliJkBtRh9t3Ei78vWWHKbxt/ETUH1RD\n12eTpNpS/lkRIHx2ItMZfTPef64nTt6TtxDTUz+et4Kkm2CJ9PMMPuXxb/oH\nFYoTUsP7EXfZ1kgOWqpYDsGwKpUpKv0ZgoSAtOflDp6w5jAI+on6reJWiQ0e\nJFHJbykLKTkgQcR6AHlMt55FgPyEGmqFnk7wKYkl0yqUKfN5SFT0IJSMHWj9\nrQYt\r\n=Tfqb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"853fcb94cd96cea0bd1af18cddb355345f76adad","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.3-alpha.3+853fcb94","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.3_1617176273538_0.42691748806393726","host":"s3://npm-registry-packages"}},"0.18.3-alpha.4":{"name":"@opentelemetry/core","version":"0.18.3-alpha.4","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"53f8a5225c09c8a0d5b8f150476c4feda579aa69","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.4.tgz","fileCount":126,"integrity":"sha512-6+QFC02I+NrzOm/LztveVabRmTQ846AbXK4DmcqACui9KqGDwHWVIkiL1KnsImRteFkSx9eIB+AcVhr3J5nKsA==","signatures":[{"sig":"MEYCIQDFMLB0iHvweB3HSK8Ej7vBwJmicoWWvShkqlpy3l/xDwIhAOepYcDF/lZaT3wcuFiYBEHEn8TKkZD6YVa3+mB9b23F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgazzRCRA9TVsSAnZWagAAEboQAKIhgl+tuSC2ZTSyvKnz\nQ2HQjVzEkPQ3R2eXDNZgltONGOtP91SQGzF16XDEbRoFdsYwDv8fJRoyuXKY\n0O18do2djWxlFo+5pA4nbqHonau3hEtfjGrw04uaQsT5AG0RVMvQGIzh83is\nRaGqOwuQYLt6vUTl0wfnpl6kgu0Ws3uVsSJyBhuclwadyVouxLqnNyqF5qmV\nBkNhHw8uNcmVX3qGmlPksiLHqd8F5VQ9ZBScIPuaVSmek1Zey6WHVlKReuGI\n7b3nc9iPmNDFtpksjcPEW6cCgePL+6fzapf7ywT5gzL2aT9IyJkYzF8hdwbl\nFn4VqA1270oBrf71wdqsi79LTeAd2ABvM9A6p2oWPQ+rhLdaHQ+xUkrrDPN+\nbLc4s6NEbd+QGql6VxdRPlk8hAbgTU5yOi99jC20GwF+6prIREAdarXJ4+96\noXC5o+xi7hh2mw2OQE59HWYxb5s1dxuRn7lxY3AkDmlwPY+U5w9yaVjBM/Lp\n0fEN7LAUYr+0zM6EUfm47mMwiei6D08YzvqfEIxjUPlmX2VvjInXu1hm26fR\nwlN63fwauHhCQ8BAxfLJHC3+pWWVAgydahKwtQ3WQlrA/W6pcYJJH0jhZDfI\n8NW0eRoe3KxTb4VlVdlsjEwqxZucH0jI87/DRjzjoLGxxlLlk3K8qFmHVtvf\n99f9\r\n=d2/n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"02175dfafde72898d7ab40d8078b0e1b6576e82a","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3","@opentelemetry/api":"^1.0.0-rc.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.3-alpha.4+02175dfa","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.4_1617640657119_0.16839925348791418","host":"s3://npm-registry-packages"}},"0.18.3-alpha.5":{"name":"@opentelemetry/core","version":"0.18.3-alpha.5","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"763f26e8e2d79ab150dcce4392b384ef4e9240fb","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.5.tgz","fileCount":126,"integrity":"sha512-948TEaJ/1M1RnyZqxtQ7WlDQquzhwi9afxMX1aA888GCUeCbGanxTEcHruPYtiZKD0KfMwAJ+FprBeCo3Hpsfg==","signatures":[{"sig":"MEUCIQCBxREjsBiByTvadzs9QK9wYjKT+kQniKbC28l7wmB5ZwIgfTu6RIGWb6QPDjf4zFQxS/EpBRE9KGzRg+nzfnpaHpg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJga07JCRA9TVsSAnZWagAAk0QP/1FsIQnwcqb+k+5pQ428\nXax5gxzRBLt+317gOdgJKVq7uI67hy2zk/jIlkgoAqKcHT6Da9ud892DtPzm\nwZRnbYbeSoHLSEaLcaIKJgGhprv4/Baf8l9qAkHi3w1N/siNmd2u2bo4Q1FQ\neUkWfWh50ipeJb6DjO3qxIE0tPeuGNXFQ3T2rz9aiXZ247UTfkT5Els7gN51\nIWHYB68xsIoZez/M4Vnu2eGYr93HRKJTIihPyU55v2IeyznhRdz3316cfuN0\npwEZVLNX4hQeyDjkKJdf5+H8PL2LxlVmntM7O1AXZLbiEzaPhlxGZcxlAQs9\n/TTkcSg0KtW2Rnr5u278zp+EbqbDkpLWx7vd7MS9MaEGrj/qjMbhHa+s1M15\nlxl+sBpdN31yxR3lNYYUd3rNuurwqz/M3ywTz8WJ9RABzSUlLacPSihGpyNU\njgScy+rN35hAPNfgp0D5fqpx0aN5yVpa4sL5it7hL8fMlutrDKVZXMaYdl7Q\nzm4StqaxBxd7RCVAhtaoUjVf7SNunpAZ2oB+rEpLFYGtmY8aQhu+zBAMLImm\nOkaU4Nm2Ito0uY5oN9cd1VJgjrnJdLp1MKEtfnNn7nZVmJkmJbBiRFADfxW+\nFnWgTl/YQrjFrbJInH5BHBHWw6dN3vnQT/QIJsXxT0d7zJsHeXE8wMW4+lZ1\ndZwe\r\n=wzxc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"8e2e2a9653bdb648849a0ac64df55cbe3ff0c503","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.3-alpha.5+8e2e2a96","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.5_1617645256953_0.1236281351247408","host":"s3://npm-registry-packages"}},"0.18.3-alpha.7":{"name":"@opentelemetry/core","version":"0.18.3-alpha.7","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f7a7e682807a8c1c5d9f51016720811059b9ee33","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.7.tgz","fileCount":126,"integrity":"sha512-dpNPDPSoYIpewNWMV8VS0LGxPpQsTMN7aONIL2PCPvNx31cIAfrd/6ia9FfS1lVOl42ebt8o7YSl8KrkuMs1Sw==","signatures":[{"sig":"MEYCIQCzkak291PZpQsgRCYQDkiEdjfKzGiiRAVK8h+TrI7JrwIhAKBDFAsg2qgnBRbOSiJd22IS5qtOUl4SWrrDfeTqTGUT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153773,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbdnZCRA9TVsSAnZWagAAoscP+wS+buW2X4R5PL6JMpeX\nnuZ7Zt7/I8TgDHENSy03auz+0iR3q1B/baSQczYYd4ZZO/IB6p87GUIbM8Ck\nN6jCOqc0RNpJ4tTLGz9bGCljnPuPVy2j9H/RGePhAz1E3vF9ZXXueWd+u3wm\ng1YXAy7r3bIAeZlr7dCKpg7nFsgQM5kzCJ6lq2Ov2SJCufOQyytW0yVGZooN\n8tGDLwUHtkbsQDy/EjEZTNTaz/erNuCfityxQ+qgAQ3CPy3fzaL76iyyij2J\nZPFcYFRr5hl626QTXPhFaa6kzbYYCo0tuzYloUiE6xiKMYnZvAQ9T6nQ/qxn\npDEKhsDy72OC40xwkCsItt6cMIqttYuiGxMUau3tvaz+s3Cl4j1M37IpAgvV\n8Bo8dD3jwbY7JzR2w97QRLNo+jCwKmJWdFxJZLTftnIhgWyTYZSsWrOxT2bn\nrpKz3ZJo8qK7UwKViddAfFI+ZlToFpmhAqabIDcY2lQ8hr9BWm+2e+UxT2Zx\nUjMbKUgqcxLFQjPE6yWmpd9EEB55xoMmI0IzNSlXvxjltpitqmK0XVe4nmFz\nT3zN2HI1oe+1q047NQh0Ip3sfE7MsZxnQC88h46bAZpjgZJxrVZn5Cwl7wPG\naehnLuYR7EnLvjFxqSNQoo7YeLZUNjYBT1I5R+A4V1lwYOTnfAOLVeo+pbJy\nVv+n\r\n=LcZ+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"897c35f497363ee3f3ea4c1e5ad1628e09ec9041","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.7_1617811928982_0.9056040155830474","host":"s3://npm-registry-packages"}},"0.18.3-alpha.10":{"name":"@opentelemetry/core","version":"0.18.3-alpha.10","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"65a5eb7d7a927420dd8dd3fac087a2a9c4da4e17","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.10.tgz","fileCount":126,"integrity":"sha512-QUKUR3Ut9D0H0EUKuAas9Ab+UQGz4K4C4KTvK3EKhQ9bfWUoeHGq2OWTQucEjlVWZKw1IYYqUKBOOy2yjdUqcQ==","signatures":[{"sig":"MEUCIAYAcvgvWtR1KWk0iukLc+XFpFib9JFexuLzScEzDPjtAiEA/GpQ38z71ruV4SsbxzVfG/JCcES1gWYVUB6veQUWJzY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbxJNCRA9TVsSAnZWagAAqhsQAIRO0TVg1MFdaqbho+E6\nmrgkMkO7NtWmEFRje7q4iGTEblv0yHgaPwWb0A4J+SPRXH+6/6d0sDHiJmmP\nn0Wx1JDTNugBUm/RBpkBim48xusZjMQCzez2qhE7b60soMfNqT0CaPkFEwlf\n6OKdWSyj58sjKhO/0Dqdu60uWur0ObO4IlEFGvKuiRrqK7g9uf0BeTrNqZv1\nYRdWg7mx5gBNv5sfEcw3OzdKMB6a/lAtqTUVbjJjwv2msouk0uGx9rS0GhsF\nhAjslCW2T6XMXlnS7vGIjK4d/rrB2x5FUEFYgHHq9tbajwepgBJscU7H2mei\nLi5RVnrgtipP/I17Pl7ph7/OKXKY4gdQwEb94MsJdL/7Jk9dl5nVEL/xL2Xb\nfzEr95mwy4iW6D8GKtMz1K1GyU/dUAgmK/F33zvFWS4MxXzFVWYNGlfSwQso\nM9Vj1Pg7LArqAiLSZgUbNR01Q3hQhdeLGDvPTthc0r2MDN2WMxrWUFnJHlc5\nhx04CIJfhnoF5zKpgwf6KseIIayRb20Qo6igAtr4srG61DF1ythAsHkR7JNd\ndOic4/lq3BDOes+kRUGwY5Ge+f0MS/UmkGKK4E5+7qyRj5eqxeNtZX30VMFB\n2ZsBPffHA1n0y+Ff1ysOdw7aHQx6NmpyYoWyj3OgfByRDknJEnUAXTXYjlKY\nYWx7\r\n=V6NG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"80ff5e2af390ed8bf97c4bfcd1221d2a855b50a1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.10_1617891917361_0.10246831094179143","host":"s3://npm-registry-packages"}},"0.18.3-alpha.11":{"name":"@opentelemetry/core","version":"0.18.3-alpha.11","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"91d0d1a87383b6b17e37ad1fccbda2a875dd393e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.11.tgz","fileCount":126,"integrity":"sha512-PSe6I9y1XJJkxUpszInFwwhM1l0W8UBorgaJruAniHYl4E/nxYs1KwR1qhI7VMomzXq17THfHZ9oSqgAmtK+mQ==","signatures":[{"sig":"MEYCIQD6nMeRs6e5L2yHJNWcwoxF9aDM/Ejksk70JCOfPp8n/QIhAKDHTlvKZw2gYfygx0deUTznhZqbLXiLYen0Ds2NFfk6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":154037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgb2XZCRA9TVsSAnZWagAAm6IP/2azo2m6dW1B322hsTNq\nQ/aVRuX0g9eEKbXmfIwB0pv31HVZn3iLTtFESKljpzGbUqCrkGXotC5E8G42\nKmXwYSAUTI0q2UparkXUMk0zh+rUv3eDHc6+x7iOnxzu/rbRzUDgyPQ0ubx8\nXKzNpXzCW+/1AvFR9gf91r30mOiBy3LFlIekrS8yIi03UD8vLaTUoG5azy+K\nL+1+nWLNDIiaZzXKHc+3/KVSdBdC5mXhg40wimrtbCq7HbujMxlEBlZOar53\nBenxAaNCljQH9DUrRvMRzHnbrWEjo0io5REEqwOectXAaSh8XaADSzdBd4v0\noJ8b2MzR6nEhSJxkmKgrXQjDC+AMTbtpWEZGQsEHO5t8LbIg9X08TE2hgrB2\nvzg0l4Y9T5Ea3j/FFzdGGDHmwXDqq+ZsOdoMI1DehXZ2/ZJiRrbZMe6SOPBg\n05NF/WCupuV5y1EELQLJPuipBsBRwDgYt0UBWPrRB2YFBDLu2o+0tah3pygN\nFi+GqoxbBI1n03XK3k41vLR79pXc3rEWamPbOiABPHnunBfuwvFyDjXk1Diq\nb5isUNoClYSQBsmlIb6H3ZasKK3171p1+U3J3g9EjgRAfh6OcvM0Q8cdz2wt\n5lsZ0LGMeo++kql/W97qyOt8upjN5FuRBPrmZFGm8kvJpDrZw3fZE1I+j+xe\nL4Gl\r\n=Aokb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"64c8ef57a9fe3b8468f2388ff78687b927ef8965","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.3-alpha.11+64c8ef57","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.11_1617913302493_0.39194048086486144","host":"s3://npm-registry-packages"}},"0.18.3-alpha.14":{"name":"@opentelemetry/core","version":"0.18.3-alpha.14","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3f806c1cdc04409fc261aac5ff9be5d1ad9d32cd","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.14.tgz","fileCount":114,"integrity":"sha512-dvzMu6W9dh5XtAwwMA3MXSHmRvdGPTw0Y+rM9TmnjMDVwDhsP2Uy5PfTm1MKKf7ZMsu0Ciql8Kxts5YWnDU4TQ==","signatures":[{"sig":"MEQCIBgXd1TIzdNG4zHAxOKXfPkb96+tglM7HEqL7XuQor4oAiA1HMP2Rzc7vXrLtzig4qUfvRD/jLemFni4D4Gv4NxjCA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcBo6CRA9TVsSAnZWagAAJPkP/2bmGGcw9/uoK3jAMPkd\ntqBd6lNH81VsOu373l9Zw/HsG44vJhU4zoede1/IJzEbxkzlSXvSwn+2cvq3\ncwlbchqm3TR8GhrT4l7U/EqKvv1pRNm0DYi4n/VTU5WL0pwklVZrDJVvlApJ\nEc7iYwtHcQAQEepxAkMARpEfnyX9o/6kxqc/fzJCQESHiCNr35BGboQuEFoq\nzepGnNbjjZsq7BOqG29xDMhYhH+oE8+fXdpBPFyg1Jazbl0Wy7S6pUMqyh7h\nmzDUvWAC6zT1wp/GvBRqta2BRhWK1KNudemnemS9Vewv+fhHV8Lj7teW4N8J\ngiAc5LbXA0FwQYipDMq/WcaY40UQz9NPBZIxBBt3QXm6NhTXpWH3CTjGxsOx\nNjBErxQvT36uNoZYmiJtbn0ru0Mtbeb8EIPtEqAnb1pvv7pEZQJusXPZg2gV\njGKMUOlSbOuiPqwMoIoFNctE3qaMYyn5zwTk9b9+ALiEiZW2xLuwRjkQfIrF\nYZJ5JgwqC6ZTlQiu31zU14DGzeQqYjkKFkByy8PW/pzW8mO6oSb1zL/h+7KU\ni/9JJQrdvyVWXL6P02kr9DfkXEXZO1x7X8ScV8n48m4xK7AQOvHgzbJSbh3W\nKgiKNfS4zPKpQFikJ37KNIT2p4dKN6MlHhegJjYF09KO24Ykm3zqKQSxGne1\nmLHF\r\n=WXb6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"4a3fd1f4d86499e4485c1f1af0f5589de993b0dd","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.14_1617959481575_0.9589861164068558","host":"s3://npm-registry-packages"}},"0.18.3-alpha.16":{"name":"@opentelemetry/core","version":"0.18.3-alpha.16","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c1dce9d9dc6435b9146ec85a4e823edd273c6109","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.16.tgz","fileCount":114,"integrity":"sha512-2ZGFpVNnJwP3fVJ9kkg8UB9aR2g89r/EoP68FIG93kH5WcwXg23NxwB78LhhWTNyOt5znkW9CabLQB0KjA8MIA==","signatures":[{"sig":"MEQCIBo3q1Ip9oDG1pO8rNO7zrqDR/5DMn7bLUckqnIdoyTJAiBwBY65UVRlWcBVHsXtM6gid0ymgn0IVhyLzom4COeAoA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcLQICRA9TVsSAnZWagAACg0P/38rZMfR+hsuiznaiCKP\ntO11H1/kH9l7/kdcml8JuCPckxgYZrR5wEjI5shN1AgbT6gDICCJS9PnfGef\nfF+XS9o/5s+AUQIUBvnEJOEz1WsczaWqarWyNpeOx/ZuuOHVbRJ/A4IHNftx\nwH4Vnp2kEOZCQBQsfq/e2mo0+qsdhkZTOGSnhmoIAJygOdREqMBaqQbDQSqh\nbU6IWfY2hNuEvvEH4fjYNGdd8szd7oAKb8lTnpMcv5NGyaFbXwKxYpSoCaXO\n9KBZVbM+Sz5OfUr0vl4Ouv6FX4Oc1sOdUMj+Q20ivf10UZcrFDKFuNH+WK83\nXLbfNIcADfshB+YobmwpQamY8AvV3KRplDQgQnv8wYi1nNJbxc3bwd3ShT5T\nL3w8T7gXQxHCxDZtQ2Vpx7fdVW1inDnUJp96V0OrK+Zlio4TBZk08azsRHk1\nts5rTEMYVn66PyCKS0DZFYMA4JErk6beiQ7VMTSdlahtFAmeYvfIhrW+bpvT\nZGF66xsWh9TZ1Lm3EBFSWQs502inO2s6pE0fLNaApBPYWG0zFLS5Vl5ETpS+\n0JG5rBgwLUZgOly0o08+Fvd2DCVA/S16BnzCOG3DKyttv6TOUvLVKsFEGs3C\nwJy84aoriBRlN9zNPEytm7uVeqdWm3ygAt3Wyeel2PrAX1RDJyNAugJZeIhN\nUuRQ\r\n=V/g1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"7f7afa7bb88edf4a4d46da8b252116d92b578b79","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.16_1617998856209_0.6382919601797654","host":"s3://npm-registry-packages"}},"0.18.3-alpha.18":{"name":"@opentelemetry/core","version":"0.18.3-alpha.18","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"67cd933f4e9fbf2027f00a886a9621959500eafa","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.18.tgz","fileCount":114,"integrity":"sha512-TE4gV9BE8x3lxfODPVcf9JRyUVcxEfYNMR0gmC95ZzhFu64bOlz8CcS+3v4mJYewyOBNHJUlSA8nIGRI9eN39A==","signatures":[{"sig":"MEUCIQD2y0Bf4YhUKLemOTkq+HctECy+unMTqhpG7TRba9cwOwIgTYOp2ZBHZ+rGpMLOMLIXx5xcFmZzR1VRM4kp+mWG1tk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcfXdCRA9TVsSAnZWagAAME4P/ioZ1Q+U7lpLBxxRhfrP\nefJcZEEfDuwzAzwdJ1VAdt86yTwBoZadeXVs00YO43sCSKteCP0+aIJwYF/O\nFuzg9AxJAdEeJr2PEalVLXTOGvyaPszcE81WOplAuBeFWAIT7OtK6eM89crw\n8fPvSj/k2vec4KWUd+VTG/H2SmGrDIyQ4Hp/Kx3wsBbtBXk8/uMEeWUYYtNJ\n5J//qe5s9BsvcuNqFkwagpVcPwhZsftk+/86Xhhc0eirtxol9M77HU7oPFyl\nV4DL/CQZw6C6+i+XKLxnEftfdZ7qTc6QUNeVLROIMwo215U8IVclG+jTlOUP\nSVZkKelrwY3gt2LDZbL20eXu3UnLwOmB8LRLe08dYaBQ/9/WOkk+N22g6z9r\nO3u01OHfl6gdv6c7S7NxFviDI4siUsVx55O/fNGdLdQKw/y9BUcPl8xjQ/i/\nNOr0H9V1mfNKrAmdHxag+rl75kZlOf7HV1FLwN9Ouwu3cGrJ9vYahPlVFU97\nmcdoptXqXOET9LZWkpjFZxib5kAeP2Nr3WWpALL1aYNDnXXLSx1SFVH//FGB\n7xJ1ZsF8cgD266Iowd/hWab5uFEsyurWUpYtpiPJ74LTinbM+OtIrRyRxKXr\nY6f5Kc3DxZiW0MLTcFiKz2fJE3gSVjbyoqvxznCRr7NFgqSbdnq4b+c8cPtn\nZa8O\r\n=0o1M\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"9fc1b109e7997b054c7182cc6db4d71d7ce9e5af","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.18_1618081244987_0.011518460994211832","host":"s3://npm-registry-packages"}},"0.18.3-alpha.20":{"name":"@opentelemetry/core","version":"0.18.3-alpha.20","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"24e76cb982b2ad43d168ffa549c00c8f5a9b098c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.20.tgz","fileCount":114,"integrity":"sha512-1KvG14Mk0o+DPRtDa4wRoP37KxDw5OWII0dOpau7pN6V8a3KeIWZJarRgrsayza872QzvUG9i4gUQzx0Ipl5JA==","signatures":[{"sig":"MEYCIQC6weOk3LTrvOdmHoTEI/M1r2f2osH2owGemPJ33tLOugIhANA7gcxVg7c9wm4sfe6Zk4zzf9kjKkur/ryr0gwiRr3x","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdGJtCRA9TVsSAnZWagAAzTwP/iaixfManMZh6nGxZ1le\nXLYb2fh8Ts7/w+ksD7IG5EDGFS/TP/60Voen2YvMCgpJqdX2Wsx8Lyj31/U5\nB8aJ6bJY1N4TfjI2Vwav1x8Ol4fTfQUao/gOqA3AIqlydXK0SmeyscKcO4y7\nL2fgVkloLj/pyg21wQqGv966O5i5ZyBxBAikeqcqUUN7ZqT0Tlvy/oYuSczP\nqm8M2pbiQPHTc9bkprs6Bl8mA3+/mQAyFfshTbXKC6AoBgH4Qo7qUNNKzZE9\nLLW1G9oGHOYlyEA1sx6UVb6xiFm5iqGve97MBDMA9OQLrOP2s0SjkArvH9Le\nZVBykOsRY7ZwrVZUOcMH/KtnnHLqS9yjhn9SIZba7mlIhjmhAwZZUduAmZRD\nyVWRP9uq6yS7fmaindX2HbOvEBsVH640RfGVGIoU11WjhWB/73TfQggq7JgO\nr6Jp1R6qTHlYF6tPrF5l3PrF6n4zmMPAAZ3aoGtf3vyL7dzECoA01qxpSVYA\nhZ6psVHm/xuOSOBLPVVcLKi8ijP0SzYNpVN7p4yF3P/ROAkkDYOfXtu8xfz4\nsiD3Zh3E1OpThafQ870FoQ5EZ1FJohUk/Jhyn6kCR9Zsz6Q4Js4iyTfnO3ad\nSdAnCVaC2Lj1TPihrS/+bVnzGZHdf48PstjlvNTMWClG7lx71xXLpINGNTtz\nPnqX\r\n=EBda\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"b6dfd978513eb400a706928e604b625961ea7062","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.20_1618240108577_0.07292686756410927","host":"s3://npm-registry-packages"}},"0.18.3-alpha.23":{"name":"@opentelemetry/core","version":"0.18.3-alpha.23","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2bf25858a75e17899e0bd3086a51ffd4b0eae684","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.23.tgz","fileCount":114,"integrity":"sha512-I0AIp3YH2oRrOX7eBLHssopHwl1AypG75FqhjU7xqEBU8NeIlmllR6tGpaokU5pEz9LWfe0HHb1LJF7PIPML7A==","signatures":[{"sig":"MEYCIQDeAh5AOnBby3wMvkf/mxggTiC5CrOrDxT4GvXnnGzhUgIhAJUJD/9ppJ8NVr8v721b+eiUs/lm61ilyLfQdhbQcxf+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdI2bCRA9TVsSAnZWagAAyMgP/jH5Sg4MFJL296sYk9Jq\nA+jAW1hIRxuFQDoYzkvjGT6dfazyOTCGiv02ruFqzoRj6KQh3fTnXo9OuzxJ\nYMOflDa7tfbl+NXbA+TFC/lkmXe7Ggr7NJraeUG230eQxD7Ih34A5H2TBmdr\nBmupDka87AdfkKPtEpoAB331C7mpufxn+io74etzJmtT2aP04FprmVsf85Ee\nRKG1yhAaZMqPyZ2YfM3XC4m0wyKoPXiw65+gH4sKQvJJMm4WKj0fJyPaO3Vn\nFOpgWCSPDvivDipyGHOI4iDxrds+1ij+GFOAFIu9fwfIb/dErD25Uvk1xN6N\nBoqX4QPnGwexq/5emm1eoO1BjnalRnbD9j/qHxstuQGZKEtCmDfBHN0aW6Sk\n+leKMHr3ydYVQH1evAiRGHlkX+tjvu4rRDUs+M7sMYrH6uy/jwYtDYsd7ZF+\nTJoz/tl/Clm4GclX3zOGJ8v36h3PrlOXoBO7s6UiPZNdC37U5KIvC2JEs3wn\n45jGQWJuIox6kqJJw3BNFZ1hPWuMeuen9mgfnS15dbRQHjDT+y5p5O5bj10o\n0Y01Cj43QtQ80Y2eH72S6t2huYuiGS7ypw4gkJX0eQteHCdsxs/+LHh/r0Cw\nz1gKfp10yzJgW4PFXBgsZuhyQKcrhaV6OC2C8q0Wbwtt+9Hhzp9TxDQSUZ+f\nRbh+\r\n=gSzt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"2260dd6594bd007f886e7985bbedba1d655a6d3f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.23_1618251163061_0.06775925701200403","host":"s3://npm-registry-packages"}},"0.18.3-alpha.25":{"name":"@opentelemetry/core","version":"0.18.3-alpha.25","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.25","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f6a4eee1b472be14b44070da44f98d3d305a7894","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.25.tgz","fileCount":114,"integrity":"sha512-ymRth6fygFytrY1t60YXpqlN5pUWJNhnEhGWqCPOxC6i2h6EyYbFzFPqzqniMnmuRdcp5H9BuQ8LuFEWJXdhwg==","signatures":[{"sig":"MEQCIE7o64LvuSnPhZJBa721/mIPkAbfvDemEASqbGaC7chkAiB6RIpWCkz+z95LgyoBzeOCWFbgRrLic70ljAOgaHW8bA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdKKbCRA9TVsSAnZWagAAkwAP/i+nuaD4rp4E5KXX4meR\nBcOfn7BjmmIVHo6RfF+l0Kg/NgmbfQAt0OPQz7YRFG3qmtL9euLLG0lSbOM8\ntFRf+snmM/6qxmNA8kORi25UllTpGmwMLLUowdhNJAD/rhbMxZkfrVI/zwBA\ndxB9XO32GuWGvsFi4kQCF3MmE6ayT7W6sWglEh2wRueniBBVfoC2FATdxtLz\ndnskkGHaxIF1ruRLJas5FjAxq7oiApXoxgikWMKaj19S82dLXl4S07LHcs2f\nsyfno2kwuKYWUDchOiT0Kx9Y7gsdcYQmdIwLvbzH2v2WhQrcnPqCnNlX7K6F\nezyl2sWWF1T27uUUGd0bDHF8++ZmGw2O6qimx/Pw9jgBm9ElsKWZTuqqCt/n\nrm1rvWOflYs1nyAFlG4oKgDgh1WKkFNj5R6eRBTY+3PxGyWN4wvj2P8MwxiS\nvf0RoGlMaus+i/7PqfEBEm0/UfpWv+oUcwx5RVQD+zkJFMIy6/VGGSX4af96\nsguUILAHaTzXHDHxgakURdIUzE0YABApmR+rqIeIdw/juM8U0RsGAneMpOOI\nFAWpdOpkqt1jeDWmoua69j0lrp18BP0Vg8j82CSAflBY/uYm6gtlMG2QxkAr\nA5DeTcAhNVuro0xgUPS5m58J2Nvc5mfLsIxemY4l/7icZ9NUVP1MNAd6wqkn\n0YBv\r\n=vp5j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"4ef22cae74b9c976f969151ebcc3ae3d931cf9c6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.3-alpha.25+4ef22cae","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.25_1618256539409_0.09334776609851847","host":"s3://npm-registry-packages"}},"0.18.3-alpha.28":{"name":"@opentelemetry/core","version":"0.18.3-alpha.28","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.28","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"45bbaacbe3f34e54c1331acfdd9991a5a5b7baa1","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.28.tgz","fileCount":114,"integrity":"sha512-EWa8o7tctDBTf5Tqz7ac60PQrYPhIyhT4b1uMJ8v3IoG/1cffagiMs+GiwZBuQED740jCKzgoFnMz5lj0JZQBw==","signatures":[{"sig":"MEUCIQDSuDCPr6QuOb+yL3Kq4U4jD0yAmxnVyX2/ySDTewJ4AgIgK99eyfumEAeipTJWlwFGhd0Bj6lH2z5EuM1Mm2q1qGw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdp8ICRA9TVsSAnZWagAAJuoQAKIW84UBVyX1wB+GDKEG\nDdl17POc1cUh/C6VfkpnVUUL2vv6KvGKN2QU5rjwP0RrxknnCcnQxk4CpyOs\n55GxrGtedJdVtXhPJty2SHtLTWrf9sUbVzqreZkLo92rKjEbnlWyhseTVxOc\n34/hAKWYUjB6A+Vy6zSsW2AMlGB60pjSWEPT/O+zXRDEJl02ZLYnPwL7xzX8\nRoJF32MxmIVcxNPqHmmrmITyPwPk9UdVekblf1g9Cto+rrm1/lIIv/qO2fDx\nW/0Ld27127LFR87QFTKLMlm8uVtgQYwwiIgm1uJoSKMHAZEGycVxmUvnjukb\nkqUwyBWL1bfUszyFCTVjSWQAdDkYQtGO2zHGsnfeQ1OSImjiIfQDodT38US7\ndyxo1zc5nhGXvO68d9J9ftmFZ2kvwANQGwzNVkdT6BOfMNvpGqhQhhqKYqe0\nHRrKv1COeNMBAJpF7WR+pHNwz9h0CjYS830/y7aCzGFGTgZpyxz4ZvWwuHt4\nTL8aoWjmqFS+gRvApzELMnJli7I/bWGATRdUy3tC9Ej/Ig945/mgq8po1OQc\nKVWNAI3HlJLCb2aVqaCsYLDXAqL6JTLntUwVar5vcX5lnM1vfgECfKNpv3cp\n9gCJlt/szEArziQDONBOC0UNAqlt9ZufU+V4D/HIC9Ku9Fq7yk/yFHWsUxri\nEdUw\r\n=W84T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"181f11ecc761b75a2702ecf4a6b017f5fb9a8445","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.28_1618386695928_0.7370230737374548","host":"s3://npm-registry-packages"}},"0.18.3-alpha.31":{"name":"@opentelemetry/core","version":"0.18.3-alpha.31","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.18.3-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ca2408cf78e736062d6c1799991e78be6717e35e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.18.3-alpha.31.tgz","fileCount":117,"integrity":"sha512-qzG63ix08fu6ZeEdoF5R0dRwkRjrhK8sLwxvYya9wle29qE7XQ9SqnXANcAMyT/yVhBj6PY4k54GmgaH1ZZ85A==","signatures":[{"sig":"MEQCIA4cEzVAtWHYAUeDYtosppqve7RfRHnH5z+qLN3NOlsbAiAg9T9dRUKgq23Odf8Udqi02LzrkNOxxqLGL++gkI8sBw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfvfVCRA9TVsSAnZWagAA9QoP/24GSKxLB1WshO8ymxH1\nu7LuhWXOSGP1dFZnv/TQxmNyNC9zGaRQA2WOWg5zuxEeZxFOekpnkGzwPjUy\nxZIHcuDUfUdyj4YcHCD3Vecx1LYqy7rnaE/lSqLT8+5SPT451fQzusIvjbLN\n1Peep7MzJEBWFUf9QGV5oUhwS2mn+H/FLJV13UrSjxdJZtH1opa+lC11BA5+\nDSXedvdfS2Ldq8Hlum7717rE5OVb/ylK3nNIWT8VAjxDQ9omaxSYrekQfyec\ndvo097XHiOwzpP5v/egvkuqoMQ15SBtVdEEBdoINxpleFh7vsEP+lvli8J5U\n9Rk0YfbsaL4xS7TR1pzXR2qcAfb5ERN+m5X2xSDmk2oBPUSep62uXWU4aJ9U\nvAAlLxPLFKVKuPY8zI55cJa1w8G9xvk2u2FL1vfQE50c7nZUi3ql2DQsPa9+\nq8hplxMmVxnECQdM4m47HKWQPkb56PXNRGUkEqtwNCiDYHzQddwVDlOVc4vn\nrFrIy106qS1NxNphS+hkE+O84NjNZKpKo6H9gpD0q6F3KseXll/2rzf42z3Q\nhR1P9dwLQL+wHSJGv6ABYvdJiURSeMTXmfu6QVdr7fycMvjr1oglh2A9dFK2\nZjYYwiugc7EbnkRQXsMgunyfCs2OEGTyhjxUfIl/U5u+kOira09plwPUlgVe\no31Y\r\n=EBSh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"d268bc6a8af633ed6803626096b124a269f7b24b","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.18.2","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.18.3-alpha.31_1618933717110_0.3223465484401806","host":"s3://npm-registry-packages"}},"0.19.1-alpha.36":{"name":"@opentelemetry/core","version":"0.19.1-alpha.36","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.36","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"99c50a6eb702092718629cca53959ef4dcf97cc7","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.36.tgz","fileCount":117,"integrity":"sha512-wwqkyTxngXvE8g/2B/Ib0cU30umLSy84qrQFMjR+L8spCce8/lZdCa7Dwpcb99NoPf94o2dcP11MgdaEXRjNjw==","signatures":[{"sig":"MEUCIC0yChJG/+XzgWEFrdOdz00/8fm5nA9TxT0Q0SRx4uThAiEAw8h4xoholptH3t4G/kAsMHCtcPJ4V5Qza9EBjCglOGo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140788,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggWnYCRA9TVsSAnZWagAATMoP/A13aOXQV03kiEHh4Eg7\nUml8M5WGjmt0fX5/ijkfi25WLkVSGGkywBjGBn/cuHdCWmsDx3YtLSDVT3zq\n99j1dSWNeb8u9GDWpOKLqPa2BYuyiKIgSSkjVM17giSyriO/S4ER7b3GGp/R\nC5mJlbghQIzRczkhs3otyW8vk06h5OZTTWD202pBqxm4SICUI1ixFxjEkHHZ\n+2EeCNDmtrcZuXFmdWOi7h3NCQp/mFn0+TEBeBfPxiI7mUZ5KgeSwJO0q9OS\nPIui4IqBxWAE0XCwaetlUwZ8hZgdahSammAwS89N7oobFc3ML/8W6Ara01BL\nOxWSegVu7rLWw9iEjXRd7Xxk8u4BPHlVdsye4vshS2yyxxo7AhSJo3S3LnD0\nQ8cu1B2pPVVkNMyplAn9caY4S//tDdXz3eYqYmiM0wcsGeBxp6JD7E34L5yf\nz2XfjACzUtWAGSRYN+nWesERAO8Wsx3h7eyEIVJ3GblXrEYxib1pGZCypa+R\nlNBgi0UXkG/7m1/Fsq1a5S0pgkzDuig8nYGlCwlMbvT0HgFMFj7KAknh7jKA\nKFp6NNDB/ARH/lgM3ZmJuznCPZMGdUE3xbOwPECp+uf92XxNtmowayiYcQd8\nhCdIm9QC6C8NTbrDgGx0OPPg6YWW6rG5+u39mKgNN8BzBIA0lZALclmXBtlz\n+Rzh\r\n=F+cb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"0c15999dccd377294a03cf7d36085216d6e8c5c1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.1-alpha.36+0c15999d","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.36_1619093975934_0.22948290350465794","host":"s3://npm-registry-packages"}},"0.19.0":{"name":"@opentelemetry/core","version":"0.19.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5018e16d1d3081da0657476e58d9c2dce7c511a2","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.0.tgz","fileCount":117,"integrity":"sha512-t83FleVbHH6SWdUegclZbsnHn0OaHjq17Hd1zsJIRMM6WNuVzbXWA+3V6LCKXqUYyu3qwtZ/w45u/Nqfr5mEeQ==","signatures":[{"sig":"MEUCIQDfgHRDrwwv8/wOMIlqassTdfdYwwdFRnHaXECME6Z2IwIgQtO4V7Gg9VW6IiQit52ADMh7Gr6dnKAVTaYtvpKdwBY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140751,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggWv5CRA9TVsSAnZWagAArSkQAJNg/pBD2m8zpbPt0OZq\nZPigpeWiVW0IAtEdIa5TrX9Wq8LTnNQcVhwsLbjo8Mp/M9vh5mN6FtWy3yNC\nCl2/uH9/JR+cWjeR+iuczLQkMKhWJ4mFucybXfOJevFOLpj5Rw+Krt48DCkq\nRcpjixeIqh/ImcE+wjoenilhyFlAlVmPf2jMeh2dtNWL8nLslXqVSTnCAbP0\n0le0Uh8w7oCB0aCIPFF61KwZ+LjQrdYxMvNKBRnP5AAEidmaQQPnaoRyan4w\n2tWDiH24PSfAB8DOCAMeWGpj96Cgm6NyMMSwHIMJqka5Diaage0lJYQftMiC\nerBY1PCNZwIICFk7VuF6t94n9EHu6kvZm0SDxqwEICNVou4sAF3Q6GQITESb\nzbEIeyBdpadHpQ+W2LEvPwt6YuH8h3lcozuyNLvj/XVQrz2hm6S0DP/6W5mi\nBo7rIHWPB2CJOefGUxhyuvX+brBvp3C2MzrFxfkRPnTBhHxTJsjxVpA3fnH0\nmtAL/iECdgoOIdQFygRhensPKoVcTDPL5FBbt4ip1OjTmA39SyXYT0FxPMAd\nqV46CbJ8cZ8X0sUIAsC3WrbPtGMUdfc7Tkn5IBauzw0hoDfQl04eFKJLU94S\nUFcDanUWdtpOFlj6NEsq584Fbs3B7QfcmG4SF9soq6pcWxCF2LKnBbuybb5k\n5JgI\r\n=KOE/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"0c15999dccd377294a03cf7d36085216d6e8c5c1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.37","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"0.19.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.0_1619094521188_0.6437134581685529","host":"s3://npm-registry-packages"}},"0.19.1-alpha.37":{"name":"@opentelemetry/core","version":"0.19.1-alpha.37","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.37","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d87c0becacab99fe7c058e3737acf622f387785c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.37.tgz","fileCount":117,"integrity":"sha512-hg+D0qlr3oQelonn0FksHcU72YulKSEtta+6Awey3aUr9i2+ZwuFcPk3abnVhhD83dehv0wUdfbid4ZWiOB6dg==","signatures":[{"sig":"MEUCIQDahTZLX5N/YNWNtx4TnCdFRqOvJ9JZrHdDpvgoaw40xAIgXmDDTqZ7tFERujwJ99wP5dm/mT4tL44OKxjeQRICey0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140788,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggb1OCRA9TVsSAnZWagAAOxQP/R4OFuPs+wqC95h35HhB\n4+rXcWnXPRhEpne4DNL3VAdLZ+mqExJ768SMm2KmA9bd6ORvK1rwKK3O5EHM\ny0g2NjcsTvRFw1m/SlnTJcj4hK8I5ZnDWvtA5iwTx+scaBvqFzUnp0kddrWc\nP3cMnXCPG12cf/HudoRG1yPOPlgrYcex2UYb2wgDvsY2IfK064LAgu3ULUR4\n7W6vCCOdx4zyFLptj6Jaz1kW2eyjKDrDRRrja0Y5WXPEvND2Th0zphaL7kng\nF1EP73uZG/jyDwbcyY5OfUQS62ybOJKIFDxZ8WbL2G9KlyhhsSN1qmWDowJZ\nJb2C8lNNhi28m0mLEHocq4XmBd4/MtREahkq5GcOZnaNLo8Uw+JoD7Ld1y+o\nEcSa5MCcL7Y6+xjPflSFla+etRrBkWVuWKFrbnyx66ZH2ZJihzIBpuftepK4\nKgK3KDmcWy69MRDvtW+3nZKHpnrYzgqbdqw9a6o7ImW/AGAuz55nOdUs8Uer\nbgDIAZTfDLIbQDNU0NKShR1ma2G/b4YqCC/HdYnN7F1x3R57xeitSlrioGCo\nZQFuq1usPtGNFIdkCpWAZvGAGEsq99USakPCUvg5g1oGpUSt+40TBr0NO/Hv\nzi4XcrxKKmzt668UF4t3iByCXzmdGsx7M01UaREpo2BSx5AGQqkAkS/ECo6Z\nn1MB\r\n=Aw8C\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"a0385c45376a86d396cb364feda2b4afebd836d1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.41","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.1-alpha.37+a0385c45","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.37_1619115341934_0.48010496402970526","host":"s3://npm-registry-packages"}},"0.19.1-alpha.39":{"name":"@opentelemetry/core","version":"0.19.1-alpha.39","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.39","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ba2b4df61d6b506067c34c5a6eb8447573fa6dba","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.39.tgz","fileCount":231,"integrity":"sha512-cGuvnHDUd5aIhAvuKGfZqmSUvORI1EQ2C6y4CoaJhiO4YKuX3uK1ienkhztZsszR3k2Bz9uyYyE61ZsbmPDtVw==","signatures":[{"sig":"MEQCIGgl08eACsBBmsr8aSAG9hFk/SI6ea0cj/7ByzIGxtRXAiAFTB4xuTHdEjJIQHVdon3fTnzzXWQMuE9wXltHWLIvDg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggcQlCRA9TVsSAnZWagAA7/sP/ifvuBS4PrHDpXgGisja\nYfDNgu7pzu4Q5oNCCadeDqj5U3jZq1Egg/TVgbtzyoNs2so04R6mPa8z+34o\nOW/MvTocGtNK66RAs8asvHyuu3zUVntmC0vM1XIw2XCmToiadoqDWBS5h+UN\n/Cpe7G9EY3rR5qskSjA97HPnQsU9j/hsuc/fkD7rgawCaJprcUerwzzm9VPH\nvJ8ZhnET+mXxp1F7QVG67j0ldBGHPOYpW8H/BeuTPLJxP7CSd0ckx1CYrI0F\nAeRi3pIV7lqfAYjMg0t7Ue8Z70In++8AhsJ3zpurwTGCLIt/z32Vi+sMrihY\n5ZDk+m+q/ZNqJXcexcX38gg2yxASN7M6VZBn20M2AWfeMoyZ9PUbn5fKK84o\nlFDNirhHT3mrq81Mlip2zSjyByp8SiFzhODQhYQVLt2a8XRdRgg7qzkSjDWL\nKBy81FcAyaDxG8PnetzyMgG6i290YzqFpq1nytuhVAEKdAf1b3fb0gKU8tjM\nFscs2VFFGxRDASEobNrF2VJWZ4xd+MOgjQOJzweZZDDmAtdWB2CRbFWqJFjD\n7ZlCZByDXKE28OESXnpNw2e2P7elOpV+C9FJ49xrmO9iKYlkX6hxRPsx44Gf\nxg/eDoJRbnxufcEfIZYsd7gHk1hMi07FkZcQ1lNIgqBJSw/lKEsFGJYJIo2I\nMagh\r\n=B7ml\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"23ba4bfdc77c8bf594bf0c817320a31f59ca0bd4","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.41","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.1-alpha.39+23ba4bfd","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.39_1619117092971_0.4560344206426612","host":"s3://npm-registry-packages"}},"0.19.1-alpha.7":{"name":"@opentelemetry/core","version":"0.19.1-alpha.7","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b926b8af51fae5f23207ce0a2ace05bbde9815bc","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.7.tgz","fileCount":231,"integrity":"sha512-7nmli5ccWf/aOUnyXn/Y2uv6LkMyLYl4MabjSd1cFPgOcWVN7HpdfhIrFdJ1VM4J0wT9DFgCsUhR5Flj2ElmIw==","signatures":[{"sig":"MEUCIBILCbZYKwT8pU+HExZD7LUV4FQZiqTlpa0OjNMFakwVAiEAkBTow68iLrzwFwMOf7dO/IH8Lji3BtzeB04cpOJMsCA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiYm1CRA9TVsSAnZWagAA2jcP/R0fSS0fFGF97Zma6Tnd\nxQkzZuHFMpwe5jG1n+dzZKyzDMsPknOqkLDR2HjmkQpfmg8XpcchrBfA/skJ\nVY9AtBrV4GtDSCCde3unzCho4eTYEmqq+2kgPzgA43IuE2197CMBnCoqw734\n11/T6BLOdgqCA2LfoR9ZzrcDUXL2sxDW9nO/hcTCimBytu8etcOKXEOV/wXb\nDNvVsUNo90XzGBcQZW/An2aUaRK2GORWKeyAJE8keHgwBoKnBmsRaLIqF9Fb\n5vTXf3kJitBNjkMNtz/yFnOkAbbtlO5ePpUR9vH4qXb04W4rBORXAgGmeOiI\nL08hooz9yCcUk0NWEsHaGBZz0IFhYa+qCmL0Bem7rjXzzRZZHLxps2d/bIX5\n6Z9hTtY09p855f5QN5BL6y3TMRqmWHPA4ERF8OmehE51pO0fgP92i2LZPWcq\n7lLagIl2iJn+hDQQwLfuQQCmO0Fl2XfPtzXwXJMxYXmhF1bqej+0tljNCEz2\nk3G7Hywjk/Bv4hhsZmbdOUYo7Gll13oNBOD18ZfDexQCklqKi6RSRGGKzAT6\neNwlRqMypfWK/QL1/wKaRL2qlxPS4RLO2lNIcqm+O3DJn9xjQBTMmftGSmzs\n/F8t3IdRg14GaU5EpmsMhqxMHXyngwfy5A+1FKqqYlWJXQyPVHhWSbnlWqrI\nDrF2\r\n=Hk8a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"c4341c39dfcdaaa65a5d6ad8eb745b656d865177","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.41","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.7_1619626420797_0.3412456397331822","host":"s3://npm-registry-packages"}},"0.19.1-alpha.9":{"name":"@opentelemetry/core","version":"0.19.1-alpha.9","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.9","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"298052298ea5ce89d57b82c53644b5980b885175","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.9.tgz","fileCount":225,"integrity":"sha512-vPHTT5eFBeKwvxoNLFRy2rYM1KABwTLrwQ8l/dYk4/V8HfUIB1uiMp9vWh3j7uR0bLr0YIFUmuFnDd2a0pS4mw==","signatures":[{"sig":"MEYCIQCaZInVuAvHpj1+58sTo4RIOGHd7hyJr5bmh5yyGLetmAIhANxRFie1VLoYOjYDuID1fCizR74Z/YUzoecT+mKm9AqH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":254454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgimuUCRA9TVsSAnZWagAA3Y8P/24Irgt2OWcp6PjuZ9wO\nxMoUrDeoPsN5tRCtvBXeZq2Bn62g0cB0pVoftiATsA7I2sttzLjpnTUIMWx9\nobVuqsBWKBSU6F98LoYujdUwxHuN7kumPptWV67VT41t+vXlxk9a3PQkdEtZ\n/+JMOOBSf2adu2cvRYL4q9olF4rjp5dxLjmoRZvMC/vPcOUrsY0vW32TIvt0\nbfE7nhXtZZWix3h7LymXfnbQl3skhcUhre0R7MhbH28zVkna7jSTcWdt9CIB\n8dkSzZJJIgBHTIcIH2kdtXyzMSFOukCRD97P6HMPPyjxt8c4bTHi1jfLubYy\nDLW0tJCihyLn3RNHF6exIzgfOnskq9FDDUupLZX5iEFIMpa3aAc2/ykJnhmV\nEIC+T4wzyCb4nfefXhSGFBHaSYYoX+oS6Nfplaauv1SWtbX693Q4lfqMvWmW\nUJuekOMXky9QUTISR9YJv5ofraobqN3fybvTYbV9zab61dRpUqrxCAf0yH/d\nXsrEAjFKrqdqICrEhUmlQ3Qe487No6sNZE8UPXMnYHIqa3kdehiXQb0OkghM\n9hOqJftMnNeS2L+oQiZR485nq3+n7+X5FyPzXxrh1rHWBj9ZIPRRrs247JKz\nhVZzcu6Ke+wPDnF+5pYMQG/VbwT3GIrqY8C6b797DOSUp2Q7g34gi03ikGNy\nJzI/\r\n=+Yqb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"677727b2da55ad1decf399f3584ef92dd5fea239","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@types/node":"14.14.41","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.4","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.9_1619684244463_0.24340234913740177","host":"s3://npm-registry-packages"}},"0.19.1-alpha.11":{"name":"@opentelemetry/core","version":"0.19.1-alpha.11","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fc9197f31890508d4cf8e3adfd0304e18da5902c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.11.tgz","fileCount":225,"integrity":"sha512-xTpusXgoah/gMKuggGDjXTvscGuaz/oJbJj2fcmsDm1XurKOA29nOJvbAWizZFTzHkvtRjBHLXMI3uZIbfkKyQ==","signatures":[{"sig":"MEUCIC5zTOqHzeOIbW4MJHUvtp3HUxA+YcLshUA6k+WMq0/bAiEAsfF18BgRh8Rqey2XDN7uOMIEw6zZTlkKbd/CYlqfUnI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":254473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgix/wCRA9TVsSAnZWagAAzhIQAIwlQlbyZgSFVKKsQ0lZ\nrqu/5kx/jb8/S9pRfywgvYHOv4tdCXQiOm/FVyT8WCSKzr4Lc8otPab9iuyH\ncrmfLfjuRQ3DJJ8hL/gU1dVx99VgxPgVAr6pznMnAppfBn50dJSMMTWYtL+C\nYQhOzfi0sRTP7jw2saRoA/rPWNBQ8p4jc1hY2wbwcergUZ6Nx50yQg/X2WvJ\nE3nO/Oia73rOKQDVZiWkKtr8rOzSSNAIJRfH9U//FbViFKolyp2a2Rf1rmO0\nd6DRh7GT5aYw+XREJT7TqB6JQ8h52FF+sgifQq9Vcrt1ESk7QxZRXoI1XQGq\nTsSJSjIibgDK4w4C+3le4d6DyGANRAeSxPqduHQa/3TrrMCt7nKEQe46RoFi\n5BlENNYcEOW9UKTYAFmwBGk7L6fRvesGxhTiHA4jiJPQV0XNGXR66ZNMhjJZ\n3CCdzyI27XySW/F6aymZ94cpOw3FxmuuFt/8UHHJ/plKyUVH+C++V16dsGw3\nHQCP128my+Kkin8je8xGZLPBNjE6queyXkVmYuG3gwuZAFkScuKHBaV4R4OF\n4/uhTFc2suuGBpEabPTtIQOHa9p9k8aZ15EBS9drPNMtBXEYzIF6+v0GZ/c0\nU3dhRCPwk822+TjsMkdet4i5/O1BIFZlRmCdCSG0nRHqmiNyxl8r7mvXMKzg\nZS6I\r\n=4fBM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"2afcc7c90d93bac4fa9180f4fd312ed01370b2b5","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.1-alpha.11+2afcc7c9","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.11_1619730416436_0.2454264405174058","host":"s3://npm-registry-packages"}},"0.19.1-alpha.12":{"name":"@opentelemetry/core","version":"0.19.1-alpha.12","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"756aa8a65ef88ff8ec0f4bf07757049ac20066b9","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.12.tgz","fileCount":225,"integrity":"sha512-4pri+wfgZ4W3SH95j/vi+iK1obY1c7359B7xXxg50X33ecs9Ct9gYceNLNPl0dwHeqxNTO1VixP6tiRwdMc+ww==","signatures":[{"sig":"MEUCIQC7QMVyGipEGqwT+/WzPfj9mGPiARd90gnX0C9MhICbOwIgCG53jrYVGMJK42P2qF4vxHKVg/g/xywRhdnfzu58huU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":255047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjG1lCRA9TVsSAnZWagAA+G0P/0kPZaBhO0E1olrE68+r\nLyajEJnXg1DC4Lkf8aS23yhulGx870V5VoNs1WV+7WpnKqxiAdJdMs+3/4UL\ndoZqjuJslpWC4oKR3F2QKFEcjOkFeXqVCJ9bnfD55wDAUr2ZX5pvJYMydvua\nvQNXhU9AJLEloGSy6LaaFmkSW+4OocrKL0FN8N8SXXsO+3HPYU7jx28W96Z6\n2kbEU0Bb7suDbkajUxbtvRWn+nvHOauRcLwyKGK3Q6jCQLY7GoLMXvyijZ/M\nsxmpocnQOxIgWIgXV6UvjO5tBJhQcopZxl0JwXhUCRUDQNsAyzLUJ2ptyyL0\ndI+aTGGS5ZaK1Kyl8zQDNjnU64JOAWibLzw95MwR6XCNHX88ANY5EifZ7d41\nRThrSxNJQQinTHadTVGr4kYmmzFd7d1HuahQIWAr3gOJlotO2tE/nCEET5Zb\nhzD+2Sqiq+cdsBbLmg6vKMRUL8eJXVOdOJQScLtP6xVROKz2tdjBAr8TPexX\nZfPnEd4SzrahtIoJ9yjLyK/rrQlsRUIFwiSTy5k41GISiC77c9xPTcsQXehV\npCJVpKnF21oPaXyVJec9S8YZT5iOKrOjX7gq2bkHjhLyrUNR70CMnkVmpmei\naeIPUovAb80AnA2DmWyreE8ZQCb/wi3drp155yrAMFJvACrnPyL8J2h/HXEk\n5wE2\r\n=ZToj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"25c205aaffb6707d4275be6bade3e078e50e2df3","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.12_1619815780664_0.05053526589844881","host":"s3://npm-registry-packages"}},"0.19.1-alpha.19":{"name":"@opentelemetry/core","version":"0.19.1-alpha.19","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.19","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e1bad893b86283b5f27461a870110c5ff5ffe2cb","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.19.tgz","fileCount":225,"integrity":"sha512-NXAP+hP4mCiZs4vbpTF5fMMJMpKEchE6H3ooh42gC60VCkWI8ZmGq8E+IgYNBKi8gJrRUAe1CX8dy+RDdzu95A==","signatures":[{"sig":"MEQCICWyzsibknIFvipmzUAjW8TILPFco9umXJYlApPsSrQYAiBzA7vppXIp8xrww3E0Q75AeBbpha9EiSH2Mp+skVuGyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglkOKCRA9TVsSAnZWagAAetwP+QAJemv9PA6AWPNjwRO0\nqJdGIYeWGZ6p/qfoW/JLZdyuvf5Nv1G2BTsNeEm027VZftm/kHHB75Cnz8nx\nYCYparUH4EC3Yx+xxu6RAmZsJwBou+aM+dXyHlmShzbXwfxcfUYw0qxG0paR\nYVdjLc3dTVymjse7tqd74DfZIjsm8ou4YNAHX2iqgmz1hwOtzs/s8QUBkmtQ\nOZ83j1HMaU7mzD1w0aIlBuVvGdzvLQxvmMCWZ56v4MdgZZJrlalTcX5pF6ir\nIBZco++BUXmQyPYGQ6mOzAUo01Dhxm8WMVWuxzXnhlOYEIW6A13wN2pSo4tW\nQSP4LTOXQZtmm/lhoqAxW8YTYWKfd2Hr7cgWt7nQRJAfkd7KebnJ/mp7Yrre\n3guIMhLsRGxfe/5OnTl2YayxtNH9H+oalh32c2isqNoxH2x7+MIz86VGDl4g\nB9WerYtJPgYAHisJhKP+qMMO1Lo1LT5LC3EiYgFP3IfhEQiFwr4IdhXYM0zD\nxW/pzXvfXo8xE1zQ3jw/sMQ/Ou4aqBm6Io6qxLcgCp/sHe8wNNgR45uXbwFG\nNRrf5A6wvrd5pevOujnjkdaNDMiwupvNzC21Sz+igCx06m+CGwLUuTwg2FQ+\nx8nUUrOwOB9yOLiP/wDKtLaypfdLTcPF4gSLTNtnWhK9bAQ75jqiCE7Yx9w9\noOjw\r\n=u1R/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"9ce9eea7cad32cbc57bd80830f21e4f366ecf929","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.19_1620460426033_0.8004145879899109","host":"s3://npm-registry-packages"}},"0.19.1-alpha.21":{"name":"@opentelemetry/core","version":"0.19.1-alpha.21","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"70da761bb6b0e31056b13f3a9c3d471e33b47452","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.21.tgz","fileCount":225,"integrity":"sha512-v3GndDbgfd3l9X0Ba9vZZhynbahm5/IWGPN0kgT4MOS3l9sOVeQYaq2tP8GMRlEg9CY+aqsQGz9NTsLCGki4Ig==","signatures":[{"sig":"MEUCIFrUFi4TG/IkCgXLMNStmtetO8SRE1WW1a46orMRZkVzAiEAyJwBqo1UDTBPCfyFPRvXth+prln4NCjWcuL0HyC6M+w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmtHUCRA9TVsSAnZWagAAFNAP/ApEpLK4YnfDNoGSKC3A\ngn/wCp4EPaPhpT+RJ7eItxaZ9jA6wOVOQuUeWvINsi5MKtHx5Jnkn8ZeYnsN\nZLy9HyHfVjjK/XxW4RWEHtEKwmTCE+ZRcyo6rLf8pDm8mxG3k8vCLsLMiWiP\nwAmB2dfbWCx6qhwPSTc3rBazwwJ70QWLpJTlcxmcnGWRTlspcCCVIfiV8dXk\n2ymBEe0Pnvz9lbpo4sraroa9bh37hIHXUO7xiwo2+0BNKsiL+VLRVpBzMQcf\nAjAcdR86J7RGwf26W9SXnstChaX0UjlquQHslex1gBu8V55Jg1u89bfGDmrm\nB/dyjnd5rdkqUHXgkXGTtUhA0JNHhyW6rfnQl7ilH/cTlXFpu+JWrRfsyrQF\nA/5jo85Z/0QoYgqIxIClVtHZJz7PYNhyPiE8nIWyY+lKpIinrJxNz60GDEo4\nHw/rWjJR7emfcU3YFfZJCI/DEccHLkjpk8y+kfxWJozUMOI5rty3QsDGPk77\n38B5fH5kfTRcwP4zRjCBtzVENufG0H6xOlPTpo84X3b+E43RdLwG6mklevC6\ngwUkeUYjc7Z3XB571MIGwoiT3aBO/sQd20OKbCXWy3G+U5vYehvXzCVvlO3D\nmtEajeMMKuP4B70Z1VSnlzkW/lwHrElFwTzFfQ0FO9pqQOBXuzyEMO6bmta9\nrFJM\r\n=x1c+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"5cd02aa12e0bf08a9736f11f09ebaaad582eed27","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.21_1620758995871_0.0006028602907084402","host":"s3://npm-registry-packages"}},"0.19.1-alpha.25":{"name":"@opentelemetry/core","version":"0.19.1-alpha.25","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.25","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c88d62d94076bbe3ea44e49a5eb969d031033683","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.25.tgz","fileCount":237,"integrity":"sha512-Nw465CM19c4wL+mHKoBitCpxqaHcrEytMFeqX0RXOJIFaT/eRmIHuMnr2sSnTTLqTt9hPmoyxq3POdhPniUy0g==","signatures":[{"sig":"MEUCIQDuaMFVmILAY6K4skiCZ6sKxdARZkXTsL+yzjv/8RmJ6gIgPwgA/JnfLpVWXO6zVLSjPyVurAvM1vc4Euj45Z5N2pU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":267524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm/oICRA9TVsSAnZWagAAZNYP/1RAPSP9hmAVn2t6x47E\nVzrJvdX/SSHOKLKLTTrm+SQfM7xfcDQ3YfL5r30DMoTbGOh7iO5GzfLBlYxE\nOk2t1qBipd8tFCBXnIM3lj5ROOmSirkgE1WXH/C685amn1aasqZKP7mpK9XN\nNuomIAlmjOmN30xcUrKx5bF15n0tKDvohjqqsh3lCAKfdfJYLG2tEr8vOGak\nnpRCHPt0FCG+TTfZ1e/gXe50qhRI2zKLoQmFriN+PTnpeVsiWOAj+mOVsfsB\nU5cgfQ80hpIfYgML0HdhX/3lqIsXIK/bThof7BYF9OwcdsEGb8ijl4JDRa6K\nnnwtqAyk/5wgvE8Ax+DBsQJCGpLnLlBZAeRHtCWSX1N0AjeyxNPD0ySWTwqA\nGROLdcX6nzodPPulq3fC2FoH8vInWaNjWrJW8pHHwLG10sWNoIltNT7YPozP\nIvWy4Q01JpiJZetjdJUPgfp8spajOEUjtx+u/QsyHLVkX/lPIYENCNNN1H4+\n/G6e7SBl+zqAK/2J97Ievm5XLBUPnLKm9NyVrP5UIpXT75Kz3QXnmym1ALrS\n7c/5fagDd0i0gYXzTYRbbNx2JZw7DNbXrcIoe3b2IT1ZRkSjLo0O7eAZoZFT\nAerCvnU5m6CFfTE/TJlJR8Ru7FFTjTSQEhgUSpC25GGlBJKFpZeCh+VJGGnP\nNDHC\r\n=aj6a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"02239b52557fe5b4c5ae6eba742340428b856492","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.25_1620834824064_0.7625196581551936","host":"s3://npm-registry-packages"}},"0.19.1-alpha.26":{"name":"@opentelemetry/core","version":"0.19.1-alpha.26","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.26","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e85278dfa90eeb4e7bd0e6b14ee14b720c3aa163","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.26.tgz","fileCount":237,"integrity":"sha512-PtTebXMqmyrnaD57/irhG0edJRiAQAVZ9OeoG2DE8EnoNXnyzkKmZNN9VtdFKFsfD37U0uMp/Xfs6XuhsDU4dA==","signatures":[{"sig":"MEUCID6YpjwcKU1HhEICbxO32uCivZ+oKbb9AwNPq7k4f/MNAiEAxMpWGEJkkxSC1sc83BozdkdntT+ZEd+5P2XRNT3Ay4Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":267708,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm/0RCRA9TVsSAnZWagAAchoP/1gJghCrjszIq42aKS6I\nY06MJ0uwETiv8c/Vrk5Fkp33fm8pcMukfmK1nm46GiihVHViBM5Mu+X9Cp6l\n23ZZA8PK4d7y1Fvz28acLtynlxOvFC5Alb9fgKRHvQ84p580SASB2M5BNMrD\nXb0/14MVuMOfZhlnPULS7t9YXGPHgAHRHgnf1gf+QYjxz5mem61Ppyy046b5\nErEtypJeHbjPtJkWHwMi51bhzb8Uke/OIR3toHfH5X91ng+O+qnUbg+IuJD6\ndtNbELqg+HZ88Jx+5NSKMGcSx3nel6xcDtf+rw+yaAWShLgfxOVQhziP1VQW\nZhuVHctFRwrryewv6Chg0WkR9aUqpGlrPDFx3IY8C7MZqK+NLcIa5PWKBqhm\n9+Fh/UoeGTt1uKZGjRjMVOISDM6MMiJFmdySa7gOeAvAGBzih6XWG5/fron1\nin3eab43SDh74ADaK8g729AClOSRJoBZKGmQcy47amETY035ZZqkbMybblUQ\nHjQflV8bjR25RARJwUmGDCgcsDdDijj1FyuIoO5DzFYqrLx+zWH2XzSloga9\nGR0kjtJsVEYCZzDKaq5B79/fEIa0MEwlKUndMilhSaUn7zPbkYjQRf+iI6c2\nSTCs0RVqPqCBfZ9NeSt6YcttfMCkYSnDUeS3soFCKn2snxBQOywcZky5124U\nDY9M\r\n=L28N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"1758fa6e84333c9c43cc468c5e99dd3646f7e3c7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.26_1620835601429_0.29160671167647245","host":"s3://npm-registry-packages"}},"0.19.1-alpha.31":{"name":"@opentelemetry/core","version":"0.19.1-alpha.31","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"30daa6c9860001ec182d7c6859a51334f2adfdcc","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.31.tgz","fileCount":237,"integrity":"sha512-XHQEfUD+wRSWF8SCU4288D6Rw8dnhl1t/tPyBsZJ73tj9S2cfkbQEBqNJ1oVWU5JEt4ubTaIw/212bycDNRQVg==","signatures":[{"sig":"MEYCIQCdrJe/zQ3f9TL4PyG72dsf3SFwElEeK/QqRhnZFGKoUwIhAO6OYrzYRxRI7gWaTq05otDCkeoUEuMMcX/9JA/scoE0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":267724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpVO8CRA9TVsSAnZWagAAZkYP/RKhzAfq3kY/upt7E5Bf\n87FaW3bhyGAPPx/J+vSw/5A0T8pFOvs1PjDwaA1g/ZZghtqNo4NHTwNdjAUu\nvT4oUpPbKwycPfmnk6MUyeSF0+GMY57oTWKN755CfzV+1k9qD5rZy93q0kcH\ngTT9PcFz5AMPPbTQJrIhqPBwTa1hknUVEqZkw6qIggtME9lDAl0k8Sfg0ffi\nV/QRBNjGac1dz5LMHCr4+MlH5Is6Wdb//MiimAmw8RFiNC6SvZ6dL6BvkweW\na49Gk+ZToWmy5raGDwIgFPXNi8ZhjPgwTL1MI0YMw76RnOdvGp3KZWO7DpQ4\nzGXHG6Oy+LBAM/dOrXvQykFnimHIZeS0Z20Qx5l4WfvWPNbdJNLUN+cdc0MC\nPRGCleY63kNmXfsoslLSJKzB9l7dFrmpCs/qIOPGoy0STuBIES2RqLQU9SEp\nZC5HD3R3Cbtj6lBSb3v8yaWPQMmYMFCDdID9e16KWkcg64OcktXhHnf1Jnan\niIoH3lwGSxpnuzfWpqMgdR1zbyI4R4Ecs9pa1U3UBfiV7RfsvGhaIitowmg2\nUNhP61N3ejZ7RVwqmt+6ccBgUtvAds/HE8cciKT/I8/bp/yivfguluWutwEK\ne352pcDW2LsDR5d+JM+PpPx8qQd0cfGVhySPnd1ZoQOYBGI1QasoFH1o9BeM\nHqzh\r\n=K8Ts\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"24adbd61062759f9d9d57420fd97e50f4d8c3b16","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.16.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.1-alpha.31+24adbd61"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","@opentelemetry/propagator-b3":"^0.19.1-alpha.31+24adbd61","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.31_1621447611662_0.31472377486642555","host":"s3://npm-registry-packages"}},"0.19.1-alpha.33":{"name":"@opentelemetry/core","version":"0.19.1-alpha.33","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.33","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a58546389ac7737cbeac624610fb4a0ceeef4426","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.33.tgz","fileCount":243,"integrity":"sha512-SVoVeNbfEsnrRX5nUCqBK83hu031WDAXdAw0duUx60wMpWVPUykThNk9P/iM35M3kdb5cROEnskoc38fK2Sz5A==","signatures":[{"sig":"MEUCIEWxggmBX104/gSwxOr0Q40TTYlGJL4cqrYfwS+h9TuSAiEA6/T+MRV5LtZdLDkk9hLa46qfCUJs4jIVAkvFik1zANY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":272348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgplILCRA9TVsSAnZWagAAnG8P/R250oJfs1sGW5Vk9OuD\nyRr2a9ORPZIyOqc1wZtLKSACCzwXpdfiOWVaz8fZ9yADUROQ6KZ6a+WG+p9r\nto18jUHFDARSd4YN5CIvZJZGWdJdZOHClOPB6GHHgonk72TI6Mb4RxJkypeZ\nsB9zuidoyXqqVy5zR/V4HmxcqeKOAqLkrBDHRahtemUqugO4QSsw4aO3L+wf\nThxrEIJT182bP5cBYX0o6SGPF3FICLsGtR43lXs5aq6o/tHGrc9hKQS42vrN\nZuFPE/855zC6BZA904rF8spkVQ/QGAJSBDBPizmPbYl5yTRWZX9FCIpcO9RA\nHSDWRlQVUd2vrPs3CFV4sqbYhc9Q7/4ZYIc22HeEkSYQaXAGD9MK/xbnZ4nK\nf4nNKCQLz6WOh+Vl7biZcAL5h8f/SXhcuCpEH0cgnkp5ixImb6kMUqL7Tx5J\nBUvAkAwWpBObYWks8h7S6t7bzuWGfFbvKGFOoiQk2HD2tP5Vi/bNLtAdzjGQ\nFV3r1aqy4PMgxwmUYQH8FVZqYMYljXi5ufJglNema766W+9EqSjX3zquWqC6\nitbvSYI6WPqj8SRJIXNtUwYu4qnTCG386beBZkWcO1eym+53ztJ0h/abjasu\nwL2/g4E3U1bH+sklhKjix6TmRdGuWC2j/xfpadaFrel0UPKyW7DIRS564bnp\nO4N2\r\n=M/e6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"c85fbe6682b9a8fd52e4b99bdbb079833b04e845","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^1.0.0-rc.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.33_1621512714827_0.12927777239466942","host":"s3://npm-registry-packages"}},"0.19.1-alpha.38":{"name":"@opentelemetry/core","version":"0.19.1-alpha.38","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.38","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"02654c52d364ab0739d6b747307d7c67b2f1e8a8","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.38.tgz","fileCount":249,"integrity":"sha512-kKwB4Vc3jtzmWsN/SeA3alYqY2XtF3tJLl2xL5vyUS+SNSaWzRSOS1nMVH5pfLLjgG4vcvhfrfl1ZmuBhebsSA==","signatures":[{"sig":"MEUCIQDqRLIyFChP7okrbYhji8s8+s4hIgbF4zdYZufL7F8puQIgBVLPT5Q64s/Ij+ZRXA+ZIedWQvuQ0LHIGaqvRrzOJVs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrmMWCRA9TVsSAnZWagAAi7EP/2cnZt6t2Sf6tO8/zpim\naAb90NqdX5RAgALo/Ecd/kuRGODJcsENhskq3wNjZay02ncwPMtDaeLpANU7\njCc55Qy+kaWxV/etVDoRwHQxPeb6u2GCJkg5WTnD3W565COZZlp3SPvB4Ixi\nDdlem9L6qSooiZZhpFja+d6N1lhPRm2ZYwfCnBt7NWgGqohs9VrA4m4XoKTX\ne4K+4TMHn53y5/G9NFZ64s7jn97ByJW8+hfuN3ORm2r3IPUIKVK6k8Vfg05S\nSkqj2xDW4rvqUpszu1sSW92uLhkpU9vrdzBoJYDI0r16xIbkVD2QeBNwWO8l\nDPXA87eiXq5JuGIPR3KRoqerJVin/CJY7GtqGr3EUw4BbaMyd7c7tp68mjQJ\nNRsfhCgUZTI7hJcE3F/OeTUfq6ptUH3HvKRedEoCj1InzlWEh56VtafO8cw3\nS62IfnA/mE7w8U0zfHdNYb6KEnFaJRc6fB9HM0Q3BjGy2yfFYtnXZwCe+Ahk\np5Q4Izvho6+1IUgUs1aew0KrdVkf9xexqaqCAKfDTJCdDiTabkF/7noojhLS\nH1hwjOWR8BSrsJANvpFYphgRTcz0DOQgFCl2sRo3TMbmJTC+XgQ5zEt77skc\n9fi62UeeiV1k90pZGq4/3fRklrvMYHQ0oCtfnvz9KoXirny+Cqp04vCaWn1N\n/BMG\r\n=XZd9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"8e5c8a0965c2dc7517dd9f2084aebe56f678be89","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"5.0.0","@opentelemetry/api":"^0.20.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.38_1622041366221_0.8176037618187952","host":"s3://npm-registry-packages"}},"0.19.1-alpha.42":{"name":"@opentelemetry/core","version":"0.19.1-alpha.42","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.42","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"44515b08f2c3647df98fbf0e622b39812e2f1dce","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.42.tgz","fileCount":249,"integrity":"sha512-X8QOSEe2VDKO9haPyv9eAM6u3V34OwRvurDdePnGhbLqNmlUbbuDaS7xIDaEtxHwIFudzrmvMnFvj3L3j4zczg==","signatures":[{"sig":"MEYCIQDNvbCKwAxDOZu56T3qMyFhVKhgmU/fJbv4dCBCg7r0IQIhAMocEZffLQnF7MSzWfysCYbg7Zj1YQJZk2c048Apx5TM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtoaUCRA9TVsSAnZWagAA1Y8P/Rs3+lnXNFL8EnYfFBic\nN0kg8VSfDw75uFngZUyH4QANqM1Zz+X46jcRRKND3M0MQcOXUqqUNnDppNKU\nqvcdI+eWcEb7fmnEFrj9u0VsfO1vme5xq3zdk9AbgiihUIRxOmpAVIDaWoWR\nEKbPURxQQrjfk3OmZ6YJCQsceKPv68wM8FfPHqPLEHnM0BZjwtKMS0T6Qzpy\nMKAAA6SFZSVVmmi0sem48anFWrRsA16SiO3PTVbO1cQPyTUi+C0IsfeTZTTD\nn7iZ+o6ZD9VZ7h6+emN1ZME+xcnpZ2S2SKfD9QTgO+e+DfaHQZm5cerKcVi+\n8K/pMGONcqdi9sbYcwqvJNKSTtk9oxftiSX74BnZDgHxdscZlh1X+ezwH9aH\nf53NLKTdxQWkZDKFsI+FiWRbEtVcUHnEh7nzNPzpAbWzQDZQxBlF8Tq2M8qv\npawJOoby1B9pAWbtT28bcv5ko4ancVHV3FYUMqypfGiVz3KOfw5alAAppQPY\n0QdE6aZ+ouSgGrkjIcajouJXrF82xIwk10ebgsGqtSQ7PfVGRw668J8yfhxc\nPVUACBXDUtY6GDQzfMRUdqY68gSp5KQFaX/ockZbWN6an6ztztCwvTpzDKPV\n8WHAbnGHWm2yb+v0UB2uOqUcTAWvc+LKyU8qXiKOF2Gxv2B4KNM5hht5F2YE\n+wO9\r\n=lw55\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"56c032ec71c0baa0120a5cc841c015a290fad654","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^0.20.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.42_1622574739932_0.6108074646498134","host":"s3://npm-registry-packages"}},"0.19.1-alpha.43":{"name":"@opentelemetry/core","version":"0.19.1-alpha.43","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.19.1-alpha.43","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ea8fb1e06aeb27d56381879aefed0c75022da3e6","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.19.1-alpha.43.tgz","fileCount":249,"integrity":"sha512-waJnQkvkTEJeJvV3Qy1XtS8WnIX1rbst1WFYJumqqwS3fAFU0O4svaRZCA53IKETJKSPyOLVz2Otinb/DCciFg==","signatures":[{"sig":"MEQCIB2zX6p84fZaQ9xXiVyzKnM2mlMLhTGcW+z9qjXjaLK0AiBOebfBZt+GiSSAU/8hR13jg5kNOrC2SxQP0ujFXrGMaA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgto5sCRA9TVsSAnZWagAAhQ4P+QHHrNnf9HmtFj2FIhso\nsQMYia/IzT9zFSILHk/5xWaEqyp24gs6wUxJWxT4JtSlnGn+WDTcqaFTQHcJ\nB2g6Lwgs2Tj0/PX/kbQt7jZP01D9lNY8erCHCnrbmni24zd6Duvwipbn/MqJ\nM/+EmiYkqXRY/6H+8j2RZcbkAQpEhLpnGRLuMaNb+LLRv9pCOGlkP4p+b1iy\nBmf6Zft/tgVips+gnt+lYBXOsAVP1vfl1AYaybEtHtWGDC/hufdZ1rtnZ/3j\nN4mcTs4Djwli/yWW22Hz4sMxU41aeDDFDbJBL2MGGSUHJ1PIVQ95kInABjoi\npiusacVsrj4GUdrQdyKgcNG9HH2ggAXpa4DI97Qx4jMlxEcRFiA6c5C3PNkL\neIFeA9dbtr+4ZiQHoJeTBRzQcDEH0dRcvUjFYw/5f6DqG4MeDj2C7jZ38/7F\npluqziA+DB7UHcjdDPQD9Mnq9xP74ZCGW/oJMfRiUjImtIgZgeBwiZpuVQc8\n9hGRHH1xc40ACyS/DcfmnUG9U0h17ZclZ3gNYolqDVH/BeZeVcb/wz6fI91y\niqRFVVcRLpO+DALY+GP0yLgJ7JG4B8ZDTlhZl4/fBp3pHVUb7uqgwD636Dvs\nw8ZV7e+LvMQcEShGS2wGwM5yJNI/xRphP2APi+FKgHciHnubFyTm03bn4xAK\n2MrV\r\n=BAcu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"d5517812b31d9206131bf1df4f8a3b5183ab07fb","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.19.1-alpha.43+d5517812"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^0.20.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.19.1-alpha.43_1622576747966_0.24945939678750872","host":"s3://npm-registry-packages"}},"0.20.1-alpha.49":{"name":"@opentelemetry/core","version":"0.20.1-alpha.49","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.20.1-alpha.49","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4c9affc71a31a08c1c3de7ce5d26f5692442a444","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.20.1-alpha.49.tgz","fileCount":249,"integrity":"sha512-h9sits7KHlBjEKnHIR7LDuDxlTDgeiGp3oF5zXxr7B0wuEuPzWg4kS5E7y/f7Fo675nlYc3B5yFFzzucnUABIw==","signatures":[{"sig":"MEQCIFyORnxtO06l+gHjhDzxaZvvIuYW8xTC0ppAlZ2fRM93AiB+dojOPmW/3/5LzRs9HocR0g2ZmmwZ7VidF7O1PKcITQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguQzbCRA9TVsSAnZWagAA92QP/jxMH3HB4pss121mZsiP\ny27pw8CV3lvcVzcsedh+waLv6/dzug01dkI2VM285sq6HftJjXDpozb9GwFv\nQ2txVEwXUHR27/3iU8qhtyvK1UCU7O5M4Hzmtz4nUxwdNkwwv7mcJIUdvfs9\nehnP7Jn9267HQjwHsu+qwCC7C8yXlA9HY7jOf3eXH1kkTT66HItIt8fIjxsk\nQkCxFtr6SB8LzpomSV5JWTpHDczrejWMUbrFSDg+0rjNmtTBem9zZdRsNvmR\nIt5U1PIB1Jd46YXoVLbt3HdRGRrNWhTDkBxDdS9f29nnypF+wdrjKNQfGax1\nVRhao+LCPB40lpYxBCAsCgGyXVel4vTdctLR5g+HaKjK65+tNCha8DepUnKF\nWtZlZcIN9lOGqwbkgZiHvr2IGE2wD4FlZSCvRobrSdUa4tpNNtgLLSl7YPhB\nXIgOLlOvVCj3D6tbxq/thgv2RkLI3Cr7X1itIOu9dFLO671ivboFt6wERHqJ\n7PtZygcRfAWc3d28zEY2cl6cgs6bmHfAFQZeS2HPSM5E5ZtNTafVW2kSXwAl\nXY6ou3/rQTCa2gLPo+w731CqFbSqtLNFL8Z03u54CQZ/nvPerfHj4ol+tErt\nYAQ7PU0LX+1Q4KCu6Lo4BhTjT7DkuS+MpuWmGosj1QxLtKyqXlOpMgVGybVd\nX0UF\r\n=b8c7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"f79aef422b53f1314cb0b031651875658fc17008","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.20.1-alpha.49+f79aef42"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^0.20.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.20.1-alpha.49_1622740186964_0.5634461118981346","host":"s3://npm-registry-packages"}},"0.20.0":{"name":"@opentelemetry/core","version":"0.20.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.20.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2fc9619fa225c7ea7a6169ac578f89c9894b5900","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.20.0.tgz","fileCount":249,"integrity":"sha512-09zQqB4vp2jcyBnglA/TFklDQoVgWrFKtr9pDm0q3Oa1bD2Hwpq+JapBAw18YdMQsLNQM/qsXhFlS3gFDVEy4A==","signatures":[{"sig":"MEQCIDpLmYfKC+KMigg26omhWe5tTQBIPZTkgsIrepp/UzeEAiB2DFEsMjO1vj2IxPTdxYI3cI3X/UW0ihHzWMFpUsKkfA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277976,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguR9MCRA9TVsSAnZWagAAEsoP/2GMeEJiuIAtUtVRKHXB\n47ubv4w9vRFsZOeK+gYZ5F8l0f0uvHtRFm1BjUBrsLdd1gbv7zOMV67BsqbS\nc3CtQJU8tNh7wdURoWjzrK5YYEj528BfKl95G1Wcwgx809KFlRiLAhiHe4aQ\n/BFKbIWrvRV23I+BADf8iODG0JIe7+26Inh9W4C/YejraljxQab3310wlhso\n3562GD3gOerF5uvpYA7C5pOEoX/NvSHJiJuQb3f/+4JiSE7IPAv/vzXQWnYr\n3A6Yw3i2fYPC08eBpF+0UZd0NXCbIUIrB5jMifoN+lCJfjOBSjxpsLOzplcd\nLSGH9hKtgj4glVwOjWNnz4xL1VpukV7ebFsIuKRhqK2gyRElriuzDAcd1t+5\nH8UiNl459/TwuwLgx2/8Vim0r4ZwRwn5m2Vv8AFw8Qw9TsYOTogZEGkLeI4X\nfGdt4mmsjy9BgK61Kl7o++GxL2iZBqa3AaT5q4dkV7vIjMJ1NatohlTJZRq2\n4fiPLU1zGiyNVVcfAK5UyOxjkD74UcTZjB0kNmAALw4zziXSCs4yGn6LGS5X\n6DUidTolHNGDNpSUJlk2Fy549zXJzH1zyDw2klCn4La7Hsbx/O5/nSpfDQyT\nnboIZias8tnChOXNgEILxs8tv2gZuoKtgdZooXUj0egU+JlQySbyQ77ixsoh\nFjoS\r\n=DY1Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"f79aef422b53f1314cb0b031651875658fc17008","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^0.20.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.20.0_1622744908516_0.19918286157734477","host":"s3://npm-registry-packages"}},"0.20.1-alpha.3":{"name":"@opentelemetry/core","version":"0.20.1-alpha.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.20.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6c21a3315aa503a2a96f661a700a3ec7f0cbc2b8","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.20.1-alpha.3.tgz","fileCount":249,"integrity":"sha512-Cw794oNeaKdQwNWJpcgPfvclNNczGSy0CMDJz6gPNOVqNqETbGdQ07YxgTKXjLMGjyNAcieRIYwfEhKrk581cw==","signatures":[{"sig":"MEUCIQDgMqfynFWNjIozenZcxAFQZEtUNH/9t8TRsJwEsw3cxAIgRNTAXOC9DSheAhUvXpXMju6Y8dJnRjw9tlenf1ljpO8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguzXCCRA9TVsSAnZWagAAffYP/A0mKz40sU8+sIksyAxg\nrKatonwceKTyUz7K90EdMETORXLd2ACsAGHo8R9vHussn0kvmwWDyU/TnqOU\nuNB+m2s7mkcNRcAJTcpN6xiak7yq2CZUIvqE06PC0flGUbzEZWjJNAomBFD5\nRfBnFcgyqKNlSs6qwk+ofNi7Yq3Cg7gdWzFIfRf/kaa4zIP1jxkBPA1RP+Ir\nKT2Hi8io4HfwbdokmFyxe5u4tNbm9VMO/3o/Wbp0NEYTfcs/YIykU6/yCHwe\nMwzB9cz2QQByRsfGkFN/McAqtGW7hKMBsOYXTn0DcJMOxD/R1SGm6wwOgGjh\ndZXkvNYShV5q9lLEmKlzHmJU/SX7bS0hOQkLDLZs8M3rEJgfa7BbA32ee4tV\nVMqJklnqPLaAT5rCoJ7xq231LCYO0n6NLmPKvypPGI8JUoyiavoDPLQr0xAx\nfDcDwOtz1T/tA1NUQlDHGJ5Uy4C6AE1kgDAR6cpH7HryIRaWTiqbxX2jKrAO\nyKUGG5lzNlG77CUqfy7rkWe6rMTborIZAOGWWGB30g9o1Z24dnaxp3MTyr9Q\n8AkMDeRI3Ik7No7d0pKBqfsRyCMwgYi105hE8p2ihhVe6ol6r+sHOIGvybvt\nnV3ATsb22NctqSGbWxhHRRMdO/gLECr/HntRJJaVFeEoVqxfjWbDNMuqh8ie\nOKCt\r\n=nhue\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"d4df2f7ebaaaf433bd84b568c482e2788103ab71","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^0.21.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.20.1-alpha.3_1622881730728_0.48271590060363834","host":"s3://npm-registry-packages"}},"0.20.1-alpha.4":{"name":"@opentelemetry/core","version":"0.20.1-alpha.4","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.20.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d2e8b40dd19a6810ce4a0ed08d19426acb717503","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.20.1-alpha.4.tgz","fileCount":249,"integrity":"sha512-QBbIgzeqdrjvItoEk0+dStfQb32tDcSFDokE9Xk1dfZ2Rt3Ifv0pPih4osziRnWy/KYPVn1tf1FI0FfNHNTJJQ==","signatures":[{"sig":"MEUCIEkTpJCoJl5XRIQojgogJOCoGw7w2rqwkP+uo8KpnJNsAiEA4rtknmMRCFQh8sntoISTnDuWwXI5RURr4sAz85bxY7s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278011,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv3BNCRA9TVsSAnZWagAAUeoP/i0eN/DLJRpGxPkv/4lf\nY4x/QiMRvdOzxRFyzUyIRCAXx7DuspSRdm3cMZAbxDj93Gkcp/m66vzii9K5\nWbqfahDiHFAYiPeu4mcCq9lhQgki3464fZxFco+sXDRxJXsw6jYovYTnHMmx\nFxG9DHvLqFLmH6ltXox0EEEBWbBIpo/NUBkB8swXb1KAM3nDFg+jzNLnO/BY\n8fPBUjpBn2keK/F2kK4G7PJaYSp5szjun7q60nYNpqu+U4uhGAFb5VgUb8kf\nPGoPno18CbywbMNqD2z9Ix0Rn1oXteS3zUN3bOlue7+MDFe30MhnGEJPEUfG\nxbevhFuJI7nn0N1PFK35w2Iv5ufN/VEH7M+j4v3PtS3aq4/0TAsXoq1dIKNh\nQQtJgU3hLEj//DwukW6bVkhlc/CgDyPX6WB8tG1w51d0WhT90tUkbslwfiZZ\nDnKoTnyiPWXJqV3sG20OZq8LAVKtjKmAurh8Hil090a5b7BX8tmbFKneFtiS\nt/MJWuSmWl0NxD2yTi+wBJR961hY5G2sgOPR5sjVjpnYec8VipRnIO3tQVbH\nCpsxXDrDVzjIainPJXrEHfTKOThVi3+hYQa/GYbOmduHot5YzaIpFhctFOin\n27lmdXSxKoF1w3+jKsVd9F4ZXh5ytVYCdqKot8+E6Pw+M2AKF2ESbi+EhfVF\nneg3\r\n=HnFV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"3d98420cf530968e6a85bc4b9c2b1bb78b730b3c","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.20.1-alpha.4+3d98420c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^0.21.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.20.1-alpha.4_1623158861129_0.35412462100032616","host":"s3://npm-registry-packages"}},"0.21.1-alpha.7":{"name":"@opentelemetry/core","version":"0.21.1-alpha.7","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.21.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bed09af65c8c923feb8af2e8521908650fa7a697","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.21.1-alpha.7.tgz","fileCount":249,"integrity":"sha512-Z6XJgCo/HGlKZ67vOaCV9hsafVBVI+3IoY0L5FkB53+TTEAegkjuqMAFqfoCcslRnI3o16OIeEmD4UAgDiCT5w==","signatures":[{"sig":"MEUCIQC+Ax4i4U61fYOyMdx5UJtRna1JHXAlA6vTEkxNx3SYmwIgRRN3vxTcyeF+kJTUTqKT9ggzJHA4TcKZC/sBm4AwQV0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278011,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwksoCRA9TVsSAnZWagAAybUP/1fPuXf2E6F35UU3j9Qj\niCRVzCjiTRZ2Vx1fksxtIvDweu9PHBw5Di965NeqoFMm6BI3jS5LSDvRN5FV\nUO9csxkR+fd8JhzMjiYQCg2bwEyruG3VIO/lp6VKoIzKzHK2TCiRoxB0OaKm\nlQUa9LrTWVLeA5XCkBJ0v7Rw/qOUd0uPyu0usFpRst+JObQY8nK6EkmoROyb\nBbEme6lkyMAoPObwyo8O3vKKgZ4eamHsrZTjxQvqttYKM96hzQ3psyfEfkcK\nYgvzwKyNI9ylggRXy+7iS6FXubjp3p5H7v9hecTE/1ZYCgJn2z7KnlcSynn3\ndvn5y+K/eCbvDdulWOEWidFD8U1hf9QcIxcwc6RdfLhJQg5s75zV7+QmGFU3\n96IWxEjf66pdJEpmOUN+5gQzSQ6/7+GLa1KOiEXIZ28jpczjlutjO8BVjCXc\ncIo1Gd5HR9m/MMxR5xkL0YdDkuhHNKtYiRXEiCsKgjZXC3zwzPwwAZgemGYE\nWuZ7hvTBISiApHJen51GxhaZMsBVwZWtyOsYKIPDW+fO/L2g/sQHNdaD36rr\ndQNRnpXZH85raw4uSXNHHvitNyCts1s30/6p5bSf6eyg56lBk0bumF+t5W/+\nzNdXyYIm5Yaaz1y/y+H9cDsOU+q8zxk6r689iOWivK4LvH39kndwubwyPXow\nAQQu\r\n=kZor\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"7750282034ee58bdd257446c2970f01307d7522a","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.21.1-alpha.7+77502820"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^0.21.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.21.1-alpha.7_1623345960060_0.9070972370846897","host":"s3://npm-registry-packages"}},"0.21.0":{"name":"@opentelemetry/core","version":"0.21.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.21.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"51bf0d93ea3779537209f6fd1ff2df499e1b9d84","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.21.0.tgz","fileCount":249,"integrity":"sha512-sZZQThBuqhCdBPgzPq4y9L4dhnpXXCCEqNsR6IUmMc/kQ8Bcw3lmI5fymLlliSt+lnTc26xJPVKZlwoQfwhThg==","signatures":[{"sig":"MEUCIQDvcjPGgAY/KQg9GzNp5XIVH6RGHca9ToBkWI9zlLHSmwIgPmYJOeECyl9CjzGjj3vrSNLMqDp9DtMleCGP39GNuJA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277976,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwloYCRA9TVsSAnZWagAAzcIP/03DGEnYOGnYC+2zYyd7\n5CJKflOxl85+8D4K+vUyYuljmdtrc6NxFc6vjAHkwsGKxPFyvYiCflNgmvrd\n4z26GaWH7uxiNbemFPf4ZmyEtgxxjb0QX8TAbB0WH8X61IAcl2nhpNn9ZdNM\nnHk5KZFCZ8LWTz7PjMr9BYVCObBSUPoHPAcmtP5qEdm4jWlNXsX+oDVVj8i4\nPQ8lkNSa2swSsmF1obUNIlIYljczZK1iYjV2M4PND/dCeqIAslAGlCfXkfg6\nKLz4lVzTleurBiL7nMnhMibO3qXFJ5lgFO+r+6w3aaFtCMJY3TFrTW6h4N2G\nqMK/mdXja0XdHxls2aBcFqKJmpCoOuVQtmVrVSDpdyuk9SAfSbX6krNiJ0P1\n+HhWKwZsMUaOHYxwd6tshXCoO69s5ImTl0x3uyFH3RO/3UC1WNlwQXmytmh1\ni8ZTXeqoExFmulNBRhFmKvKwVcxrXAWN96MNWDHkKlKUBfVtCXCPCTfukAjh\nqep1/c9OnP47HId+ZiwpbCnTJV17fkegedZ7x3eTaadDIwstdrPLekOpjxWu\n6WWnaMqjF8gan2BYZ7gPWMGNHrXRD01UCfSVweQlHd+OTieAklmQ4gB2UZm2\nwKU76Rqfnbo3VDwBeUNnMfxmUCklAFHepuXWzN9cn4TeHYAguz9hEZ1J0olG\nW8lx\r\n=CvFX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"7750282034ee58bdd257446c2970f01307d7522a","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^0.21.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.21.0_1623349784623_0.25184096906558073","host":"s3://npm-registry-packages"}},"0.21.1-alpha.1":{"name":"@opentelemetry/core","version":"0.21.1-alpha.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.21.1-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"76145e1aef241123e51f4f069fbe3f429c50ce82","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.21.1-alpha.1.tgz","fileCount":249,"integrity":"sha512-fEKS3OjsyL+rPt+oMWg9m7BgKgsi4YJiuqMGBk/BieiUzTLZigBm85f6I7PprYRGlwDno3lNQrmyI4Vo6T/JhQ==","signatures":[{"sig":"MEUCICktXKiFpix9ccFzL5QlpAj8ZWdrY4LGo77c0wUiuzvEAiEAsCAXmMOxWWjPJfAjHRLjC8fkZ723A3kxNT9asvtUpOo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxG84CRA9TVsSAnZWagAATKYP/iPCce8/yXDVopeHgnZq\nvLwucmwuMdgFBtij4i6MjAyxbfxEZYB48thYx5wrSeOZEIA6WQp86U+vKY0d\n7kgs+OexnSkF4kndUmYXl2Uj1Wwdm59z4QaGNDrxnmD6rLsgEs+vvvw7VkzV\nOnp20TZk5GNn9YF2GwBI7xjaJ5zlRDXjtSQ8g78kYPrWaZHDKMywnLlwP7yp\nqSdKsIrBsbVia9zEHYvzAgMT7Rilh5D+I37enPOKiVJbqAohynh8IqI2i1uS\nGzdO3b5WtyhyBuX1h1wHY3uVHS2gOx8NwKnl+4kx7K/UGUBZX2NlHhvATzlV\nb6teIk4fA6TH003+Vnd/CDpfarJMkkEqtuLNBeWt8dBcWGtltFirTqfVaBCW\n5sRm8z+xI6yfT+2TeoRgmKeXMFAhdY0aUCqnuuxyGxUQnO7KVwEK52TpNp8p\neOEgDkib0zPiy7F0IVGj8bybA0Bguvc9ooX0w9xjAe40G2JKfTpKnisM68y9\nG+OWsJea9z/ERejTj4PrYNZfQUqZsboFGT03Tjd6wwQJfJgmyDO1FOSOh9OS\nEVPIWxnAE3GsXnQgG5b5DO7h8cU3y/YEpAPiNReGKUOCQThggQ6Qjuu4SdZr\nWVl0AgCskmUBdfYIZXsr1dvx2RjFbkjl+LjR/mSW7fjCMnKoo3AXT70MMo/j\nlbmt\r\n=icWY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"5b6573eeff537ab49d8d8d42217e5cc794f9ad70","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.21.1-alpha.1_1623486264006_0.45390487354760745","host":"s3://npm-registry-packages"}},"0.21.1-alpha.2":{"name":"@opentelemetry/core","version":"0.21.1-alpha.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.21.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c8bf2ab58b1ab2e89d0097595b23c3f2b7caabf9","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.21.1-alpha.2.tgz","fileCount":249,"integrity":"sha512-iZy75orf1epfCEwU5tQoN1Hmk5jWYuOtXGru/pu7kV10PQOcdDIrDdNXQpnhqs9esjGb8Mk+gWopyq0eBKmpmQ==","signatures":[{"sig":"MEYCIQDUjJFSSEHpekRtAEeYBHdk9HCpLnuZ+G1tFr0uF8O5AgIhAMb/mD24W6qS/8nvZloMVFuYwnnJp7nU90IIm6FBvqsw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxHG+CRA9TVsSAnZWagAALMAP/3XXdWWkNpIqUlX4z8vC\nPX2o8H1PFJ8jZl/KAx965Tl9D1MkG22ls6ZrxG3UaJ1vyGRWRempU+AlG5wX\nMFICb+PQmgWTgiV/1XTyLrigtSfk9BP1utpnHnaXJxHlYiXEi/l8yUPHf1Xb\nR+1qjxmUROVMC97PnHBzYAd534d2FnfsgL74+NBvNOYFOtUyMRVh0T+Ow2dk\nsveurbRe1NgiDKry1UkP4tMg5hlPbTJWCoOwaW9KQvL3exwdzsp4VEqU9rxu\nQbT7QKRxs9q9hfguDTcBigwn/DqHTSdeqyi/WzyRQS5sUNKCyWE0iM0SGVFh\nUuhxWO51/KUSOB9WsLTV+8zmUwX0Vb7JsQc5Wc7+h+q5meVesGKocga63UgH\nyD3oC5vycTeohcqeiqqTt+tWeYf+eID5jlZheaU2RTHSa9OXjxDReQMr33E5\nHssil77M5AUXcpuwCAbTU95dAJRXmQq3mIp8/C8WskKLJx5A2qkmQXAByypt\n42r8lMkR8ChfchYXfRcA3lfffYliweNvBW4tpVQnnRteKxAUm8cXnCujHr26\nVI4DKLMAxWuhN2GzZPxMr2ThyiDCkm8ssEhEMzFgtAQ57pwUDr9I2nRkG+Lx\ncuow9v4CAPLlZX1wdzhCfg+S1upbJaKsRnX93PCnATgoRX0FRnz7Mm+dfIVH\nB3XA\r\n=PZtN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"a3b77387012a5f53c193efdefcbf5f6272876e4d","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.21.1-alpha.2+a3b77387"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.21.1-alpha.2_1623486910551_0.784182766645231","host":"s3://npm-registry-packages"}},"0.22.1-alpha.5":{"name":"@opentelemetry/core","version":"0.22.1-alpha.5","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.22.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1f3cb075d1cc6909065413aadaae0151a067e076","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.22.1-alpha.5.tgz","fileCount":249,"integrity":"sha512-g67E/HTMWCHmAwaDIhW0BxCFGqxcBOWRer4YF9PFvJvVbnGMiPkOydILcVq6LTje3dPLTzS2cC0pu8qyaeX7Xg==","signatures":[{"sig":"MEUCIDOssOY9pn7POxGYfUkqjvH8KZsmt8gJi1hWueWLtfM1AiEAmihoJi0jk1YIujg2mAawi7m+U8M+xeyoSjsEKa7ahLc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy4DACRA9TVsSAnZWagAA3jMP/0QhyVBORdIdgpJ2l49+\n0EraN6l5qEdiEXyjN5pLo0ETrDbV0ZVMf7bVe6sVZr1Kd5zqGC/hJaBYQGb1\nh34EnkianqEG8YFSCMKBwsfhpQSH1zQeWX+4biMIoNjVp8p+nS9Us3FaUDHC\nHbyVOTxsHnFvVpLBSVodWmk/ZaTCb7xv+8a0xkO7KDy5b/WLNQzvN6w2JWiR\nP3ZtqNllN1HLsx1NEPk3mFAUTv3ipypcDXTyF6PrIwQzEavkeI9LRezaDDSx\n9/IfdOnFOucfDCgtW8qNr9k42ZwHPbm7iuzmvqNWT62HUVxfGSEjbse6GnVY\nfZJN+6Pz4/dnrLB5F8/mjWeiu46KNPhHpqcHl+pBudtfn8NdqLuGUI1ix94d\nvLGckyhm13uIXIRSlGXeRp0REaVVt55kOzloDEaU82O1rM85WiIyi0gDYrpM\njWy5b4LAg+PwRyr07Ohsca134reyufdO8Qzav1QIyEaxS8bmWyk9j9cJFTkj\n0lT4dKfss1fNcjVUDyrktVhDDcVLikDZeGv98MjC4kR73ENSkLaBrv3RnG6s\nfhmhE4yApdPFDqggHcRJyPKDgCg4qbjL60XFLqHmzZqiRIDcM0NesAw9uitB\nGs+j1/dB7rFCVuOD1l/buWNxd5gXbRdfBZXYilC20btunQyXAROt6S0QOQZH\nwDHt\r\n=tw9S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"7860344eca83449170bafd03fd288e1a3deebacf","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.22.1-alpha.5+7860344e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.22.1-alpha.5_1623949503852_0.8379862471001329","host":"s3://npm-registry-packages"}},"0.22.0":{"name":"@opentelemetry/core","version":"0.22.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.22.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9281cb76a828f0347dcec7925a11ad2e9debf922","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.22.0.tgz","fileCount":249,"integrity":"sha512-x6JxuQ4rY2x39GEXJSqMgyf8XZPNNiZrGcCMhZSrtypq/WXlsJuxMNnUAl2hj2rpSGGukhhWn5cMpCmMJJz1hw==","signatures":[{"sig":"MEUCIQCK5uPal+8UFoO5Gt79r8T6bFi4bHt3KoYf0tdSli4I8AIgXC0CM9Zl5ppSH9+8R+s4oQL1CM52v2Lfsf+nIUsZtV4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy41JCRA9TVsSAnZWagAARXgQAIKE53QkcrREYuQmInWG\nnOrEvegJWrUVpyzmPDN5NAxgb6lnH7mowZWzGHMlL39JykkMo0sEvHx4FChl\nTPTgva/1wJthR1FsTMB3OGwU9INNlkShB4o42GRy0I7LXP9qJ0Lr5Wkbu5S/\nirEexT2xuQAuWahYgx4fWEWD0IFZ1uJt8ZLcvUs4SmO7BvvLo/RMl6fnBJu5\nEWc9oDvpwt0yCQ0HCENIQBDwEd1VF3kAokgXohoJ/v7O3nR5uMshehHtb0zY\neuN1jS0g7l2w0XEyDYax1Nzk3hnxS5oA4MdLHOlVUEQvxVGLCFJIvnOsnRJV\nWjtRIUHbAD+cmTlrQZzXYRgic+12kuzEpSuUfDZ5KPsg8WU+R3KJJYSsA7dA\nrXBdcMqEwNsENEDdqLLn8rrN8QCXh5vlj8s4MIYKEL16Mf8P7Nf5bb8ZqjY3\n13nF4zRqrgb7sOO0jY3TQNdizOzRbYrMnoH6YD43SN1N2zNmAX8tD8j4pyu5\nFjHWatxRvRfMlwQXE82OXjW2AvPCHUjk50s06JHzaL4Vf2VdQSkmhVa4gYmd\ndeVhdYZmSOo9MqlNeQeSigSieVAWyfXhW09sDd6DUt2h+l3bJVP39FpxLcd1\n7EFzQAwaTcpjYZVsiSIIJohfXUYIoVbecIIBxdNu8BHOjaQCw8GGYUBy+SfK\n/RyU\r\n=H873\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"7860344eca83449170bafd03fd288e1a3deebacf","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.22.0_1623952713353_0.932063000058025","host":"s3://npm-registry-packages"}},"0.22.1-alpha.3":{"name":"@opentelemetry/core","version":"0.22.1-alpha.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.22.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"dcfb160f01722f632590cabb70af7dcbd7017af9","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.22.1-alpha.3.tgz","fileCount":249,"integrity":"sha512-dFXCFToaEPfH+Lo4t4s/p5aLPZNiLauLcx2h8NaAYGC642x+soTf6I5O/s8b/2JciPsk1vnO8RR8Msi6D8KtcQ==","signatures":[{"sig":"MEYCIQDtrx6xFXHF4ik5Sls9lA6qeM1vxY54qCikM8HizLtXPAIhAJlHCH309mKGYBbveQombFwrpfFbY8KLe8HE5OcljANr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg01uhCRA9TVsSAnZWagAAuD0P/1o1N1iqiJdkUxq971g1\nt5ycnAm9h3XqzVcyGI8iJ8sP0os9z5M80XkWVpS9gutYhU1opE+5RwzxVJ1b\n9kq1iF86H8RrI0RP/C3sXXQqzW0re/SyxGKM6oHxpcj15pq1A2XPqsX0GUmY\n6H/kYSvaRbSrRHw2LelGlihkli0yLdL10rwJBRDJyvfwDh957cGVoIjvlFAX\nlZESRt0OICGL3HWsHLXLJxdn6WU7bAk7cjiduR6Qra4mUgv8TButISrjdQU/\nzJP8ZusXf7EG9bsu5eCB2be9+MjE/ZMVIfq6Yb6qp9x/5sDUp2nFJ8dWKRRQ\n/xYkeLEhSs5AL797Z6BC6hB3S2g2KieIWTGkhvJqfJ9lPuUxzDad4vLZQlGs\nD9MH/mPleeibPSQiwEu8OdxxZZ8r/ienNRclsELT+QSyFnCm1KOHwley7f/p\navXLtJyIuzkQ13DZQ/SG5MLT0RTXJmhl/2RWSUnf3DCpGm/cDtE3I7Nl0kkd\nhBfMquyKYUe5c6oFx+pOZf5C5xIfrZqyRErr541kg5jHf/a0JnTDdZtI9Fs1\nG326Ox4WHAJMX7KEyJe4+48z9NazfQWCqjy9L+6uz9B0eIeuh8/auO0Et0x/\nMy9/+EL1CLQb4QruaJrTZrZxoP27owXLbxH3H/nRprQjiVUtVszLh7WLrHYg\nOWYa\r\n=TKBl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"6fb4fd1712babdbb5de216c26e1283a94f7159ea","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@types/node":"14.14.43","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.5","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.0","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.22.1-alpha.3_1624464289060_0.15713412411927208","host":"s3://npm-registry-packages"}},"0.22.1-alpha.13":{"name":"@opentelemetry/core","version":"0.22.1-alpha.13","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.22.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cda6ac3446e69e49c8a38fc5c39585475b03eff5","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.22.1-alpha.13.tgz","fileCount":249,"integrity":"sha512-4OnKbf+4SaGs58Y0iT0F8C5+hKkeloDo4HU37Q6l2mI/c8E4t4HWbVb5JxpaBFVHyEK3VdVozb5staHhk0Vn3Q==","signatures":[{"sig":"MEUCIA/XVXOu4UupEmdE7BAV05kWsL3FmzbRmDKUzq9MSDIVAiEA10IQ/YBuRQFvThUBZS4leTD8sRei4FrLeAwZGSbynDo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3LqWCRA9TVsSAnZWagAA9DkP/RWrgwJdgf5OPTPDBadl\ncBS/E/YxISOgYSaiygAdoplb3AtE7JnQz+uDC6tRMq5KjTBjjbAENCQ1DxvF\nUxdXLtbE0EXTJO2oKlyJNM9JxMv9K/GItnJVPINxVuBTfEm6ckcBTFWiXF3I\n9kgAaBL0Hg7rr9rf+QEAWmicqYFW4kr4/Iu9ATGv6LFoMB/kB7hFtqd15vOr\nXkxltZcS7GeX/9r4u4zlhXSjfP39oWw+09LUnttmTzQQsuu+neWTJvRxFjcL\ny/dZ/o4HrUN/o7Xlm5lMBAOn72ryaX6XU94OAlMxxn3BpW/4JGrXZF17LTiy\nKeRIJ5EffX1q9fFQRVudYAuvhLTxzjhKfnS3/f7b+kWSkTGGv2wgdqKrKv9o\njzxiku6zoN/vvFHJ0RnVj42SSR6QA5rCkCgysrfmE2rRXBVi4nrg3K7qxBzc\nc7tlyl7XbVFoXWuAOmqiyR1VO016ZZo9Ymh+h7aGB+gfFqBz5U6ARfNSJ0eY\nwBMXLtTSC/vuYHQ+dQAvHhKaddEBoeeQF241D5Yey17DPslhinQZnWl5xAfv\nxNGdIJj8k7G58puma2VB0rBpU2Ye8T+V6tcFM81Y9LS4hPiTol6yYXv+o5G+\nvKXlyE5QKKGy0Uw/tKUwr6ayhafahL6wLeOc0hiBaUYP4qsCJsWcQBB/fIHm\nzlAr\r\n=JI2d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"01418978e5cc15b5ec4d5283ec48910799fe2f06","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.22.1-alpha.13+01418978"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@types/semver":"7.3.6","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.22.1-alpha.13_1625078421697_0.804350202516247","host":"s3://npm-registry-packages"}},"0.22.1-alpha.15":{"name":"@opentelemetry/core","version":"0.22.1-alpha.15","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.22.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6a90d12e49b3df84605eb9d45a512655c0ee2d43","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.22.1-alpha.15.tgz","fileCount":249,"integrity":"sha512-8C6LPWQjDW2P7Z5eBTORFWZWLs5qoCmlrPctj2SGfeXuSwy5Q8CXsUal1TnxJcW6kj+wRA/btlnvG1scOBVKGQ==","signatures":[{"sig":"MEUCIQDSQ0kjEoq3bdwrp+ZqddvyvlsADUtPoh9zXXrDLqoiowIgXJiOx2eQN3jAztZNOB+y/r/ggcDzhiaRA4GBfLdEBsY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3ME2CRA9TVsSAnZWagAAlcIP+wXIp8T0hj1hIwoZfMGR\nsM8ivJoEtyohzO3zdKtruhyrXeS/k17oQMHKPSrf11GQRW6EzOgSWUEAaJtT\nfGso2n/U4+g77UmGzXWQTgVCA5RQPktlSEbMVR4vKXXmDrFs8SHKc5wfAYxm\naS9dHGw84IISxF/qZVvKrBOuiM30oWpqLgNFfza/2rFs37b/zvUToYcoKo8E\nDF3Ja9eF/Uk4lYVx+N/bn74iz8IUg5ndDxuk3O6MLxhlFtajI6N7LNPfjrIP\nu2iDp7sxUqWzxpeIlp//qcfW8MjGdBhfJq3d7u2sgXLRKHkPyWyS+laVgRX6\nASUdAP1VZeVvGforab80KN9y+jdwqNJCy32DC/jo66l3LuLOdLzQ8ZNm4QZb\nNXDkes2erBR6AVenqy2TDp+im7G4yJvE4ry4cd7yFuC4D81S6nvDD/MkhnId\nvv6Ag3zjKj4YlP9zELTf2QiNqdjymCHecU3NAtl8dE7UOO6o5mVp0/x72wvF\n6L72otnlx9QtmStHiAJmFgJ/XG3xN3nGq4luKO/Yr8EuG6u8g2aUJ2DtDKPi\nIs8Hf2tEhz66wIFhmygpvE9WzNtXWLSkTQg1OHFNQ3o+VznodpizHUY5C2ja\nIfg+uXIetXSStsAiSKOPBhwF35Vd0XJ3m77hOjuf2KG2eybw35M1zmtU7duO\nXJBM\r\n=1l9S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"c3ff9d1a6b599f01634ed2479183aca2c6d57337","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.22.1-alpha.15+c3ff9d1a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@types/semver":"7.3.6","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.22.1-alpha.15_1625080118117_0.6914968693008645","host":"s3://npm-registry-packages"}},"0.22.1-alpha.16":{"name":"@opentelemetry/core","version":"0.22.1-alpha.16","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.22.1-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9e1cca46ce4f401417bd4834c1d6c6299a6347ed","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.22.1-alpha.16.tgz","fileCount":249,"integrity":"sha512-UI4OOydvnwzJyNhvIjVdKJ6qUQbOEygbCYW/Eumv0JSghPci6aFvrjeht5rV/obXSNA7cZKz9uDc3r8x6/5pyw==","signatures":[{"sig":"MEYCIQCwRKRmZF9ME+iMFEqFF0KUKOBP/x4H64tVoeAVoapnyAIhAKF7+89ohwKCjdFST7qj7hh8iji6dQNSFfkS4ee18jaI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3MqaCRA9TVsSAnZWagAAJnkQAKIBXWe0hHc2KUC60HDf\n3fhFv/zl4rdbPtEizujrrpVkBUluDmXv0ZwyAV3azI+sAdRmozfOOOw0iB51\noqkw4rU7IaSNMsU2X343qBumehGx/qZcYmhYKCqi+7ter6S7t3DsqqfSw8wv\njL9bTFCfYFtkyiEn3ukaWCIIhDUx56N1hU8wV3AxcVu6a2snqqzVGPV6NbMp\nNDLLnDKnb0tdTy6ovJNomutXZHhF+phk2IxJrgi/ZHBK+Dant/6Bv1Z6HGBY\nvZHsFJ559b/9llNcmvTBX84aEdt9/YtFBBHgWrHral8vaRt+drmAHCfbSVfW\n4JbXuLwVIScqI5ax+isBgDV2ewmVx+rGQ7uiCVeiixICrByw1t/7+OX7AEY7\nO46raVMxORCkGeihRRa4cxVJacT/rmB1IVDV+HwGAumi2miMIM9vV58EcHAD\nimtOpPVR/EKAxn0buFLCN1qSW1dugKcOKEYqR+5KRfggmexJsQcGCW5QRh+c\nYUyWZv+YdlpDUZfQBEe87JeATGgCJVDnn9aIjsUI4p4i68I0G1ZeWm7dZiGV\n7vlmH6H05G6nzMSf3E4HTdtJcFPxfd+Ukc/Y7W77MLvWmbArJkhac2NIkK6S\nofYRIBofoYAFcBGkhCYCVvnCnk37W87mkXa5BGN/AWJncRveU6qyJWmLBktv\nUjqS\r\n=Sy6V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"5af147b159c9dfad8d00a20a3b140d55736f1919","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.22.1-alpha.16+5af147b1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@types/semver":"7.3.6","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.22.1-alpha.16_1625082521453_0.7838841391541913","host":"s3://npm-registry-packages"}},"0.23.1-alpha.17":{"name":"@opentelemetry/core","version":"0.23.1-alpha.17","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.23.1-alpha.17","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1bb9d9b14c40620c9e52263bfa99947f07cf39ed","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.23.1-alpha.17.tgz","fileCount":249,"integrity":"sha512-cJ974oxFJTbF27rRTp6VxwIjNM/YXvZjI6h/LR4S8sQm8DFLb1s+ufEFWfjH3bxq4dQyeZeFGYUGMShdB3TTDA==","signatures":[{"sig":"MEUCIQDONnVBzehKZusv6x1DQD6kCaiySt8FD+HIvlJtw7ZMywIgK7/KiJBsSB4jJpCuXT+dBNR434Hwf5TMhIkVtvYKnKI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3M8DCRA9TVsSAnZWagAAidEQAJ9SQoxhALvNgJ73jwmx\nFwQAHyqHEUyiBS2O1M+v/vparrMqaFmIFslcXa3L/Kbj/rfI7OT6GAX98qAf\nNdlTSJES1HkjNxniNG6yVuwW4aPQ+jEaejEuO7buDBtYdU9pprucV7S3n4AV\nP2QDHlfSwpHrUWsnuRLLcNcesgOJ6WQQTsabaOj3ZPtEcqmz3/LrIjhZsMcb\ncpey3iTdRGApAHmOwbZmxF958c1//Cd9s0JFxakgY4uXhR2NcQP+jNrGL5IH\nuO/2mCCzq+aeeSynPN1kWddXXm3MXECRjU2VGeglPx77UAFO3r7J5kn0KvsL\nOdHI92/BTwTt2MYkw8K4ZaN5us302+5y4HtIZ08umtIb25OSgmKiX00ikfiB\n7fCI+V06nLKaltxXL6scJ0mEGD8+9x23JoRgkarS5n2Mcil645RtzbYV4W0R\nhsVXi7AsDwH7JWOih2JSn+656NCGXvd9yCjTy+9ha8rt9TjG17I7VdHpQzXt\nMrsQAAK/LJ0v/1R1+NMTq/xcULtbWEfUm2uR7esBjZkfesih80dl5jwESagu\nMEupK6gPflTfVNfRrNrXkBg3DFFGOIBwE4X8RLvg77fooZ86RCL5HjFwsUFu\nYF+Pzbs6TVaT8iG2ImchXrYYaoZ7wsIJNsr/oXnk15HLKEGGKqvR65bvkd4N\n9qkB\r\n=jzy3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"f2a958dfeead4f6ae20901ab3fac04e4fc424a3f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.23.1-alpha.17+f2a958df"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@types/semver":"7.3.6","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.1-alpha.17_1625083651075_0.26889805173027304","host":"s3://npm-registry-packages"}},"0.23.0":{"name":"@opentelemetry/core","version":"0.23.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.23.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"611a39255ac8296a79fbc6548a6d3b1bc87ee17e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.23.0.tgz","fileCount":249,"integrity":"sha512-7COVsnGEW96ITjc0waWYo/R27sFqjPUg4SCoP8XL48zAGr9zjzeuJoQe/xVchs7op//qOeeEEeBxiBvXy2QS0Q==","signatures":[{"sig":"MEUCIE0m6LGDVZbBFpKgiNsXC2hpnF/vC68CKMJWVCkRu9FOAiEAgNM+US07+Z4lZFXRQxlq3ORGoYyZ9CMDyWY1+bL9xms=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277948,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3NC4CRA9TVsSAnZWagAAUDYP/3fG1Yg+CmVxJSbmneFh\nv5lGxMzbO9HR04Ki98lhB3UM/h5rYSdyKYTxvz2O77IZJj1YD7TFyn4Um9pA\nxDCfY1xVu/cgAmZmGK0nl+IS165jqZ+UZvoa9utWEYqxmMNKPTFQheHiExxT\ng7j4zegrBa4nZaJvsRU7PWE3EhdNefwjOrU2eHpPv3xb+hkAhDqDj1RnFf2C\nBq9Y3BAtTpscX5t6fGgbTfVESozXmiVG1lc+FFTnUwVFV2rvochmQ1GmMRWD\nyVZjlL7FJ3eM6DSnXVUlSVNO182lbEg5ErSCmRl6hI9uAUHV8Cw3YgX2TVaC\nZ+oRi/gJovOG/raFoMbtTh19I8ptZAbKRc263bWEr7+x1tX/NRZb2mGo/o4e\nS4OCH8ifi8As2z0VDFJzqZwFdPghDtrtS5up4/JmCILk2AqoZlgtQztXnXJF\nRokocLsqPWaADs4xx/qmRSgFCNW24ZzMkn3rKFArWHB9QN3zKp/CSsCOX9B0\nkwbbalRc3pTtmQR+TK1qZDLCNwTr93Sk+eD2nVcaGR1iNVnQFOxk+tVpXCt6\nSfJnBifeAthVswEAqHHNgRBouKx1bDWw4JTdswCm/mFvjtx2YuzoLIctBhOc\nbJLfP4Zpnm1JXp/8f9oN9ZboY737uK/14A1G3/HZcHHFaFSvm21tjhdhKzFI\nd7ii\r\n=6plm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"f2a958dfeead4f6ae20901ab3fac04e4fc424a3f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@types/semver":"7.3.6","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.0","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.0_1625084087656_0.0663944390811606","host":"s3://npm-registry-packages"}},"0.23.1-alpha.18":{"name":"@opentelemetry/core","version":"0.23.1-alpha.18","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.23.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cffab476250a7dc5602a55f84f2ee08f9353155c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.23.1-alpha.18.tgz","fileCount":249,"integrity":"sha512-nNmC+PPLbGDEj/VENJ9PP3dvFYNttVCBsqUcWMaYKC2emcRtsosJ3ZEuxhXrZ/3ARW55Wmqrq1aGhAkIaBVBtA==","signatures":[{"sig":"MEQCIBqL3v7LUyacJtWxXFVvDFBbYI8T8NGgsc4O+oMqu/KQAiAbfalC3JzoGtzw387SipgrX3V7CnrvxRvLHBfD8zpSyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3yTJCRA9TVsSAnZWagAAJLwP/3xwXA4tPD8tOwzW1J7h\nmm2XbnXps6uDc4rN/8V7iVvrzZnIn1sCaJjrcGIE98EIFSben1jxnOamRXjK\n0W8I/YwecwWJR212o819aQM2Ll0VJocH+qRDa5thkRGdYGbMsMxjj/Z9J7nT\nVCYU2sGVLYUZS7PRz3ixT/b3dWahuqXUtp3h13Ui4khmK9oyLBxTNo5vEFGc\nfzEeyvlWCE2lxJNkiB39L0ZyScntjEmOSpD1GTIHx9ka/VKQm/HwZlVHdH38\nGh0RZB2ii7rqmYqW2ERdlKQgiw310G0F2bin+PpPWKAkvh+Y2T8mdlTmXAib\nDCFuAl2p1tCXWYiSiCE0QQR6wMGb9qsp8qe3g9qYFgfVWCjxYFpiNSJX1Nf9\nbQivESN0f0kYrRhvgN8gavSBj5L2BLHx1U3IXxxzuqXwMHhHRJrnZdZOKvks\nV4Vs4eQJsk80SMgzdB/EebbJtu8nS6zByq2XmG7k1yTOv8ToacZ24Ra+34zl\njKS3J0uAKq79DRGg/IcIyxyiaJNLc+sJf+cqKVXTqOxj6AOVTJoz3ukkAdL1\n3QSvScsoQ7B6zRi1oTPwxUcFclDOsXhSi7AyRI82hml1GibwpvolP/6MgPV6\nWbRwWjbX8chUzVFPkIRqw+vfsIlIv8Knr0nuKmrYtIWx5PDDxcAkA/mmvaKf\ne8G5\r\n=JTu7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"4b3425dd09f0a7087c9d741d25c7a9a0be42770c","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.23.1-alpha.18+4b3425dd"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@types/semver":"7.3.6","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.1","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.1-alpha.18_1625236680530_0.6742213097892524","host":"s3://npm-registry-packages"}},"0.23.1-alpha.3":{"name":"@opentelemetry/core","version":"0.23.1-alpha.3","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.23.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"62fbe0158a6e1fbdf42444cc9c695d3a60872000","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.23.1-alpha.3.tgz","fileCount":249,"integrity":"sha512-b1wd6aj8xX5pvKhxhAcYCn24bdDXH2Qwfls4/8nBVagTU0H1hybTMRL+ieKruWCtQ6vJCE52kVZalpYMX8OvGA==","signatures":[{"sig":"MEUCIGIfA5SvKcM5xn6enKxd5TFkge9v7gElPfUSs+++loPyAiEAnnCeB786gqJ3YtjuDQ4otUMDSsy/2LRla4MQCCXRv80=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg44dKCRA9TVsSAnZWagAA1WsP/iEHkuBIOdkKWRrBJ6qB\n5m5bbu/ktRS0FlkcthJeQxB8paPz+CbRwRkTO3QszsG8rFEC2msbPP+iLYiw\nRkDYkB/WEAkRuepisjGxKuU8R5dN1wXjhDB2FEze5pyHd5ft00VuVD3Y0KGN\ngbpCYdGgvkv6OauY1hDatvKKQMf/XiuN9a0xMN382RaZC6ZjS7k9zMq0axPO\n+O8QT+iNgQJa9lyCKPdsMhSPXzie4wdcSNgeRCS1ecjgc1ezfta1dBqfDPSG\nQIEKxFxKhUbknnu+Sj79KZPAiZYEPuZ3gUtzrWu67vHnIpebFlaEKhHGzl0n\neQVJ7PZr/E07HlH1C4RzVbkgX4kfznPSD83gAeU5TryaqYVqfLa7Y1Fw6OJr\nWwY5M+Wx/ejAuZJDoUCrMIQVzsiA6LIjibik2OMUTpkNGBv6dRjO3Bl7//B8\nBmX4Za5khvySdlqoBwQ9hxjRGnAP6YMoR+J/Ygfa1bbhj8l0sl7e5cIHlJpj\n+JiY4XSYcVpRtOgQb3lsvISa51SL/+V7qvD+a3Yjr/C02t8X4wTXGpdhp6cS\n/NGm19NK2upES4lDtCwW4uBPjfPO1WqYjFQn3pwgRSWRclFAm1Cc5GJ546Cw\nfjA6Gsysm3CHL+9HHmQXXs3hg6uuZ6HqbC69KLgVEgvCK69E07aZsC8Cj31X\ncVXp\r\n=mxSH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"6ed8d92559df68ef1fd3273598a1860ee5197e53","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.1","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.23.1-alpha.3+6ed8d925"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.4","karma-mocha":"2.0.1","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@types/semver":"7.3.6","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.1","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.1-alpha.3_1625524042306_0.46543966264651804","host":"s3://npm-registry-packages"}},"0.23.1-alpha.15":{"name":"@opentelemetry/core","version":"0.23.1-alpha.15","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.23.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"193150b3d3f451e5581648f5749aea2c32a1b753","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.23.1-alpha.15.tgz","fileCount":249,"integrity":"sha512-RU+ZJ2QulH9iZNcGdcLimFfPcQkGFPLn+z9AvVyk8h3BSULBNNfl6uuPGXUI9M33WIc2qHPWTMSrvtlbjuTPOA==","signatures":[{"sig":"MEQCICk6zs0Tp1aKpnkRQmAWOy+opu/soP4paG3sGXWlvZYYAiANX5+sWiIG1Hd6u6ZXGP4Oteumy/WzdEPnBL2cdbK6OQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277960,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8qBKCRA9TVsSAnZWagAA7NwP/jbHRecT80hYav+j2Trk\nHvllU6+EHUjNUsniJPyNqRhraq6hjwk6u4o3AAinyxHJRdvZbDgvRa1j7W/e\nbR6jbuBoeHmRvVNhkJngFRFSKv7UBaDgNQ+o21l2ZWIg82InaNkkPEq6k8Kg\nRNr75NMcUUPAskkYpXe2jIoIwPiTWZeW1ER1zJB2Txmqt46KAMQ+j7rHWdyC\n+dxsQsmAigjHcy3l6rMKJmyzq+Vx8etTQ5uHDplst8S0iRRplbYtf0bxau0Z\nd0fV0l6+x8DQN2tNCu88486oBaAxFmrrwhHREDXgnvaaGgyuVpModG2OXko1\nfMVYMg6LJvdpkTRVQPAzeDmSQ88k85btDFwVeVsMG7RTemqGrHj7NlxxLoiE\no/vrqzevmK77bsY7kAfGfdoG21eWdhXCuQlkLl+kE7SvNPVwIS9AV1L3AbU5\n4wwk8mQ9w/lVzxHmBOfvwgO+yGyE7NOTxXZhQRl4Fj1Xq8e407/tXjLGfrMs\nIAmcivGuIFq1LGU5xixc3TmfhogkG3hhP/f5SIUQmnQixsztRdfqEFlE/jmp\noFBiPIvl/JZnLOveqd3vHtdJEYLeF6rs71DIeMreB34yAlHQTAshIDaQCmdv\nzieXROaMEnr6uVhghz9QZov5q6UQXEWdTPIg6BfOGM5jTu6V8AVDMBFdg0D7\n6uTC\r\n=+QQU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"b67ca0568c333e5d841c9b614ed40b3e107682e9","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.3","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.23.1-alpha.15+b67ca056"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.5","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.7","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.1-alpha.15_1626513481972_0.648469247946371","host":"s3://npm-registry-packages"}},"0.23.1-alpha.23":{"name":"@opentelemetry/core","version":"0.23.1-alpha.23","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.23.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"960e4c5d69d492acba3e2b43baf3dadd46971727","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.23.1-alpha.23.tgz","fileCount":249,"integrity":"sha512-5tZCnu1aqZt8Gy4HLQ7rH+Um/1LuyVqCgcml864j7aHq+THJbPqXK33r5ZbUlIG15HO32POTYZyZ3v6ZAzlhGg==","signatures":[{"sig":"MEUCICfnzFGgTS50B/+HtfxKlkm/CNprbkQVz1zxaoiZ6skfAiEA8390i5ZXPrZwHx2CdbUhAeSjdgF55AviaK6zb0JdVak=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":277960,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+wBhCRA9TVsSAnZWagAAutwQAJaO8fQCkrKXYzcXJmFP\n1a8yzdhZc+mhOl/eHF3m0jzibdXYqWjX5549M8mrM9QAh9Uf5BsHFpokfL9/\nHKIe6WMYNkLd4HFpi+8EVHA7RvGPSFy2G3zPse67/ZgQeqiICOtlv3XLmE9+\nXwZSVYHY/eN9ebsLoAh61Yj3hQTRr2DUiRlS/CFjhvCma9FJuqmQ3zT175Q/\nx61ntPlNxaCYkPEZv+OLCBk1VIk25so/6smoNupR624K63V3oElky2AmHr/e\njy0Qt6cNLPOp17yyZI6aRogW1dC02yezMPvyfSzoAA/3Vmn9OoMLLstLa560\n1qrav57+A4BgOXm6Ml6uU5H6AhmBtg+oGcv/I8M0fxR7tUWmT+4WDLPATzcl\nvCWxRMLmKZ0Tu+MxyQ2C6GIoWgnYGT5sJsiX1ZWzTvxVuSBwZveeaZO0gH+S\nh2L25vsdPdWr6fuc0Zv84hFXBJKQaBxLwKXKxbeGYUtw/6hQEX5Bdq+4vp7y\nYurIqgbVAIQaRWGQQrv25DbWQmBawaysXvOu1ATqRKklyxIaiN8tv32VaJeS\nbPNzYSqQfqwzrl4buVCXnEOnXz53E7BwzJv63PDVWO5ixzE3G3Vjo5xec4Ck\nYR7PFbXP9y62OSkBxm0Gt82jnHqdZcF+v0mdLxh7MJHJCrl1eiYxsZJ6Pnoi\nqruH\r\n=cx7r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"884d20ab417bf0283ec84a72b9a0fae8ebcb82a1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.3","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.23.1-alpha.23+884d20ab"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.5","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.7","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.1-alpha.23_1627062369347_0.7080244540562823","host":"s3://npm-registry-packages"}},"0.23.1-alpha.24":{"name":"@opentelemetry/core","version":"0.23.1-alpha.24","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.23.1-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"92407b6f4f833da0bda7fa0dc0e5c8346b684334","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.23.1-alpha.24.tgz","fileCount":249,"integrity":"sha512-khQlGnH8TMmdD8RAFmydZdPuzUBW7ZacxWJJWoefCO6P9s8fk2osrxu8R3np0AH+enUkmrHCxdxXMLyHKU767w==","signatures":[{"sig":"MEUCIElRVrXBvE/G3cReYoRiwcjPuSxjumKs0FUxEmaVAB/DAiEA3YH6Z6uf3g6U8/Rpho0DrTyL7nd8MhEk4zCWDSi6Gow=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/Qh2CRA9TVsSAnZWagAA7CIP/3qL2GbDfSV3/YXJEkvd\ngBoXRbTN5TiioknRys9goYojfBwLlk28tHEOdx9nmzW1fi6zO8Lq2YupNIkU\nL6ICFJxJ0SxYtOD2TFxosxu3DpO5YZvtIDCrVqM3WVd8NYxgBWAW0zhxu16I\ngUFm0aNiLXrFsSE4KNQsVrFybsgmN0O5EysMkS3QEPAfg6Cvd9CoPaTFBWHx\n9a7ItpsvaMJcPB2jdRdnuiTJn6YcRwNTDfO3NEPXHE+G/N7TgZlTn8JLLpO9\n0vF5f2yoq4MyBZCmi0iQ2iGWcOuPggm8Hd7pax5gNE2yYpd3CXt4+bt2U2Zz\nzuCYu3IL8R+gRBMuaWV6Dmz0nLhucqL9Z6rxtk9I30S63ER4houDJVGfD7ei\n46B4wmeeWoCEPF8p/rhkTzTbDU7/4wruSdtjcq2hBegPoIGQjkCX34i8TRDO\nBMX83P7OTTHDirycE4RE52ma6vILs3tmav1t9HjGqSdZN8U0jwLun6i9Yal2\nXH1v6IyesZGgFrpOcEJqVE9eaOnex0Nj/7TxIJY96Wx3kdk8ck9HD/hce5Al\nqdW5KOSd3z8R8YKDcCm4YCx2cQ7j9h1quSkJtZSAFOIgszbKK+DjQpT2Mk6y\nMOUo9uZX4c9TtNyE+uFI6Qiw63Nai10NLdCbKNPDfC+Qq1yU8o4cJ/GKeJGc\nqnuo\r\n=cL8J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"3bc3452814e30274d7eea1f3c9da968b88b1a197","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.3","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.23.1-alpha.24+3bc34528"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.5","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.7","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.1-alpha.24_1627195509960_0.2678835692542416","host":"s3://npm-registry-packages"}},"0.23.1-alpha.28":{"name":"@opentelemetry/core","version":"0.23.1-alpha.28","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.23.1-alpha.28","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a1273e81df8f01b8ee2ec74262fa16e67b6e7dba","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.23.1-alpha.28.tgz","fileCount":249,"integrity":"sha512-VeY+KivmqKbIB3ERFUhCyk+iw2GmW1Oaumuz6/iQJmlWnk8cd4CFya0CbiHkjSb5/cKjRDx0j0eEyzJXR1vXVA==","signatures":[{"sig":"MEUCIFMXtKAXD0Pmg9YBg0wMPqnYo8aHtedJYj7JtF6szGMiAiEAq8vYhXWUF7I6/qS+IrHh3zGjnrhVsYdzIwPko5lX7js=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAGIICRA9TVsSAnZWagAAwqAP+wU0kDk0jubXfJH/0bNy\nIiCtXyRv3hNtHi/BaXPax7ZzlKQROOFRiokqg5KByV1WK2cXj7KHsB8IVzRm\nEW5O+194Y23JfRoEJB/ZDTwn+IeqNi6jKLTEzng71WFRW6v+xKTbMg+2BpaI\nL4NMIv4vjIBHyBpVidC8Lx3v777IDFwCqlgGMaA/B2nEAbBQOH2Hd49T1/Sp\nwFC8nwiica9+3Ryk/qgu//86ldGJ27et+d8Mr0nqGyWlqf9n+kEwq0f5xPaD\njefwCn1VTMAmdjTtOQIjsaqBVTFJs3BQRAyL7YAf00rdHIq4keTPOeCwjtvb\n/BGoYpDbY3Vk8ArDgC4oZyjUjNxo5n0k3lVHgCcmwvVbe+vh57uyHFS0ojJB\nZYha6fTjOESQZcn3gtMNffmZsciMQBRRPhED0VPJzYcLFXL3GEi4wuUHNaAV\n5NkeJ6yb+M04BjRovuobP9r34HEUxmPv6/w9pdGjJG3Giamwua3CFmhYaLme\nHzZ//ez9ULdSNKREA0TYzIc68Y+cN1tSOtiJZtGKLaw/FF0UpzmNIzxTh6Ld\neokEQGqQudF8Ai609pWZ0WP0GX0hywhPoRulb/M++XXj1gCQJgJmLEGOtDYD\n1slp01N/0qZ7oapf+TfF/e7M0v1xxF1J2cawXuNqepTsQNGwxwuyhh63BvsH\nQynU\r\n=SE9J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"d8fbeddacce3e27aab40b24c2ca3c271155e74ea","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.3","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.23.1-alpha.28+d8fbedda"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.5","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.7","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.1-alpha.28_1627415047908_0.030968274804864304","host":"s3://npm-registry-packages"}},"0.24.1-alpha.31":{"name":"@opentelemetry/core","version":"0.24.1-alpha.31","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.24.1-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"20f690fb27b2a4cc440dc6ff3ab764c5a4aa86f7","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.1-alpha.31.tgz","fileCount":249,"integrity":"sha512-ssPWP6c+jXRc+zaf3W/7pumBKNP/11EU5rjFKpBE3/5ZKNolZwX6e+UhhXAX8FhdpuFEvtwumUmqryiTKuYK6A==","signatures":[{"sig":"MEUCIQDU07to1AQ/1YYlTpVaw0jXN1+71nK8/3h41Wn1XRs48wIgSeFh0Moy1iUe170/0BxVVbYKENpqm7yCkuihuMtFczw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWR6CRA9TVsSAnZWagAAorYP/3cF9VP14tfmGhc75Gu0\nXTu62Z3oGU8Q6wJ5Fb8vGyu0kwlt139IRb7k4yjJ/PNCf3b69fOcAV73U5ns\nNuTpfAUApW3ibpR1LBrARMhDWaGXrMYML0KHnmjoSwXfZvWIc9ms7Jrx7wa+\naAVXGHMUWdGFk/XYIBoKdcw/4sa0Dshaj4zDmYRyLPmNUl52Zp13cP4zVfSM\nph6xGUM7Y+gXWe1N3jFfyFJkN6lzecB9uPpyRm5yDVydBwMxKCbGKVud7k43\ncjFnk/LhdB/MHKLlz60U5ZxGmfYSfPwiCTwHJllm/ed4jjc0mG6E+SegJgCB\nsCxryzlz19xW7Iw9Vhvj0cOPQgRon7NTqudfK1RKNWyJGYexwzu4F1k9TVt+\nWXt3nNvW+kOTqByeRu0eBEMMRVmO7YXK9I4ydWXsie1LpDCWIPY0moZ/LMmb\nQoMiNjKWY4M5mNNDydbIQzLrGbof4Mn/ycRYarouMmfChZC5nsAvjfOqRIiq\nvxB7VXdcUTvxQbo3rBQivmn20BvzkPGJ0YL8KUwBQt74ePPIhTdXti5nvisn\ntqss8A6yBMOcGZbpUjj7u0GmAUNaUWGpWPytTU/cyX2GbyeuQOIMGBxSTgmQ\nG508I6IlXwqYVmAkX0Busxzpt+ZPYrtZ3mf11vxABRfbH2zf+exUwkHb7w9i\nGZ5z\r\n=1gsI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"fd2410cc9e8d43210b6ea44b8193fa70ee900499","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.3","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.24.1-alpha.31+fd2410cc"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.5","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.7","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.1-alpha.31_1627481210523_0.6561009262997808","host":"s3://npm-registry-packages"}},"0.24.0":{"name":"@opentelemetry/core","version":"0.24.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.24.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"94033ebab10fdf008f8dae19c9547dadef30a2b2","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.0.tgz","fileCount":249,"integrity":"sha512-KpsfxBbFTZT9zaB4Es/fFLbvSzVl9Io/8UUu/TYl4/HgqkmyVInNlWTgRiKyz9nsHzFpGP1kdZJj+YIut0IFsw==","signatures":[{"sig":"MEUCIQDQnrVf6iQzEdOpjr//1quElNRohEy3tlTzh3knrZ3k6wIgZhwLON4YblbwrTBsF5wtTws9WW5iVjyEA37Am1rcn08=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278067,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWYkCRA9TVsSAnZWagAAUH4P/i1DQzAOqX6PgEqnop8f\nYYuRYbFzc+qvfvMWZIcsx+JMU4ciJMQrPZYCUKvu2AZDh8/m3m23igm5ekRY\n1Lf+freRoRKWSp/m/de3IfS2dAK+RC+PB0PUZ5hyn9gxRhhcuLP/+j3z7TgC\noqPdvLSZX/ZodSmoOhlWrUTnJS+7lW3q/G753H/tJnQn5WoUzcL/AAjuWfWY\ngQ7kEkp56+J9Ukbnj6VB4FJo+TEbeOfck2pw81sLfpfO1SaUOxjBAvmu0qP2\nbAhsgFPSyVH7Je9FfroJYzyxTTrQGAdXtNv5aR8fofBVx3w5UxMOS0+eYx/g\nJQWP9VOa8q9jf3Aa9Kjn6fF2u2Tp6zhVz4HasHy3AGxIqNvE+9GNbgaDKpnl\nV7NlmklUKt+K2sKfJrTu6w3Glm0XIg1W360LmNtuCHZPZqgvikrj4ab+L1Qa\nUctKvG0/LxxbSxK9I95Yhem3qpljODo5tVgJCzfGRC2uKnGQODjYsYjXQnzj\nu2SSpQBsPeLAgx3Lbi6bce1B/lZrWQ92i676jDRx+hayci+y2S3yZ3b+l01A\nbKMQiE+ExbYnbLMgAEuKXmXo3HHVTm1pkVURdBw7YQTex0xl8U9lkL1E2sVc\nXQrhbYjdsjBN2RHIWlKH9XkJqrS7pCKdxN/Et14QqAo5cG+SY7XiE0r8jnhr\n31Uy\r\n=vueY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"fd2410cc9e8d43210b6ea44b8193fa70ee900499","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.5","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.7","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.1","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.0_1627481636225_0.35947866555167374","host":"s3://npm-registry-packages"}},"0.24.1-alpha.1":{"name":"@opentelemetry/core","version":"0.24.1-alpha.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.24.1-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b158c4da9becc75aa609ab3536dc2b967ef0002e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.1-alpha.1.tgz","fileCount":249,"integrity":"sha512-RnSfl95OWZqo828ci7ot14vsxmBnDEzsX68tAA0dP0iYLP0FGjryPXrROS3ihijFKCgWmUssIVupUspBQFLwwQ==","signatures":[{"sig":"MEUCIC0h7RHUORbFeKLaUFuoqaDYdd/M8HJGkEjstpuoy0EcAiEAvAMgUfB1Y93fbr8vrnXmo/1QekSRXpbO6Iz+ouW+BwA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFYjCRA9TVsSAnZWagAAoRMP/AqCSHdb5i1Bg+1fnC7k\nuqgEXm8r8VPI6zpbaO74/ObT0sI3D5mLMl+OWabjK1kN24rvZtawRcxBqMAV\nkyItFRQNUgsnxU7835o4PmXBPlZEvBva1XdURPCZQ0CxcrkAuL3bYP0sXtd3\njU+9nzhb4gi+vVNNCiQjPt6OTmScMtPjdGMwlQrmWI6fNokA9IOhH031Bvaa\n0n+JimtUBz9imObZvgOV70VAdBURNTqmbyRAOMwojdFGNAFk0X80Bw1XVXQi\nt1moIZrUjSFX6uL3q95kEnermMiR/SoVvGFrWl26vxgiKFnE/zcIZGTxGiur\n3FXJUYwlUm195TI4AMNMhktYAOkcn9ub03NdR5cmrY5vVXghy+SI1Gy0IGBq\nbU4RfdBJmghgsDdjvJSHlMzGI9b+KXWn6a9Dpz6Jf0oJORkbI+LmXs3cuyD7\nM43XCJWnQNGQZa2rPYm1dVOUp0Xyjqw5dXoBLquvaeh6VxSZFr9wtxgxSdR2\n721yZRxb/cDrYDFHPT2+WhGVYS5nPRrphoWuq9cwxX+yJDi8jxFMJeXEKFxM\nab5trfhs63OO2jkbMKCDIiQktD2WaQKxN/KIVwVoKar3CKn+qpIDoMsnJ78V\nSJRxBmb/LZbdvWo9h5GaYzmxfHWF2vbA2dp2EZO4n8AjRT7ncsfk4fhrWwfi\n3o2M\r\n=VGS6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"3b9cd16a8eeed7a262bdfea4c93098861b4c1ba0","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.3","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.24.1-alpha.1+3b9cd16a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.6","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.1-alpha.1_1627674147588_0.3761671263529687","host":"s3://npm-registry-packages"}},"0.24.1-alpha.4":{"name":"@opentelemetry/core","version":"0.24.1-alpha.4","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.24.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"20a8173417739eb4f4d855bc649d29e66efe5f21","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.1-alpha.4.tgz","fileCount":249,"integrity":"sha512-Quf/ztiT+KYrvjAKMwI3VwJnmJb+LR2XXF06RZxMENYaU4zvaUaje0SmnEeKrnI91viEU5IfH0SGiyaRt8FWcg==","signatures":[{"sig":"MEUCIFMSxA3hazwpfvxtWdHEJAeCv7Gj08e0LhL1tSO+s1N6AiEAz7MdVRC4+id2CAfMZUvx27EhNo6kA5B16Yn2dCwy6go=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDDvBCRA9TVsSAnZWagAAeugP/3J5I7iS1H6wKsep1xaP\nNsdG3vRzQgthHsdT5wdwA8YnaegRC7Y8+QUzdN4TVCBzmSozXFCqpp15Nhau\nN5OSmROdBgndHJhNoQb+sIyXs08FcwECnL1K0wNXiwU3GTaWu5vHQsxlGliZ\nfoM41Ms553Vy2UUdFKYfRtSnmcg+xFI5lMQ5KeHcHOHi643hg3h3HqShagC1\nGv4gVBC2W2wTmyt15Oyk2r7tEborx1mtF8+Zux79GbWFM0F4iPkZcnBPrZNr\nrQIG+Y65YjzQrOWrRN1ErljpGWx6K55hyNY1uDzmRBjn/T6bfwb9TqtAKrRf\nu5EAPoEHiuCFi+C5VqxH8hSK675cRP5Wzh7gc/U+686Io0nenVC/ZFsWYWus\nixIV3JZ2teS6mA0UQ9qooBfZwUAmq0VsPk1czKjxntzHbRj7igJmAD64obM6\nzxZQfjFqwW5DwCQ8EQCSyHbKAsH0ndEoi6PGpnrRNL/GQRbC8pA6tfdCnp7p\n7eyf7V68PD/5T11sBxArwcjfLl/NNOJpGvCVmH+wj2s2iGKNuMOY9+ct3HiX\nJBtbFx324TPU6zs69by+HBDNIntT5lSCSBllOv6i0j+sPyBEBUKXm6IL+J30\nME/I9dBPIiWnZ/SJa//MFOUrFqoVrImEt0NFv4ZonZaRXNsmqq0uyNeJA+zM\nAhB5\r\n=6ikj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"a8d39317b5daad727f2116ca314db0d1420ec488","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.4","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.6","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.1-alpha.4_1628191681504_0.9524828443614137","host":"s3://npm-registry-packages"}},"0.24.1-alpha.5":{"name":"@opentelemetry/core","version":"0.24.1-alpha.5","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.24.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8a9bccabdb5f22bf2879875fb7d8095e56c9a8cf","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.1-alpha.5.tgz","fileCount":249,"integrity":"sha512-6LFcVpB9p9M0pVBSabqydU0nqURf3UgHWkEj3Cim2niYk4602J52hJ0kW2GI0HCk8NdxV7c1qxQ3xXrLBahueQ==","signatures":[{"sig":"MEUCIQDibzRoqLw89XUq8ZMOPl1nVxQ8kmejg2KgA3Ix46zQ4QIgaAXFFwujudTX2snLyjVHmLdrYmir0ogYCCJR6fgYhNw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDR2ICRA9TVsSAnZWagAApgIP/2e2/cEwtJumesN1KWl3\nbQmNiJ/o/Snv0j8MPmq1JDkJomjRyjtdyTPEZzIDnjQvstU2IZ4jMdw6lrdj\nPjGc5i0C2mHc35qJh4N1XA7mWW2D3XHz/9NZxoS64v4YcZ8ej8EdgGfpPEoV\n/QE3yyI18DiWIhB8kcn8Vv5N2tf43j4HO0UiGVJNM6QbiE5gkTKpyKzgWDmM\nHhLoMRSjnoDn65IhkMofVsYzy0dYqQbtHfp0CzqwC+mZ0TALFk3VH7GL4LAy\nhF0X20erQoCapzvmwHmWWswZakrcgAbPKiv54Up156fKDWyqrC01iZerKPFJ\nDVfb117vW3gdfd2bybiYd8Fp3rvOEybUCjtdlG2SjP0t7Te6iqOz3no/CpMn\nM8JzaXb5cqUgZUBGoMQiEWXaT4KVYOg6Sz4nQuOyoPpNufR9CbQS8Mg9Wmle\nunawZjezBU4T7mcZPMST257Zg1/GTaCytMxxwjIntLXR9oZwBnflXewMjC7j\n8r1RRxGU2xOuFZ5LYMY9j5gcGfPee471Lu/GU5HAZaR4m1cmKUHZReA9TkYW\ntA5Qzw613uae+osQk6EwZQhV/4ZS7oX3kfwuR3ahu5wjOg8trc3bWchKRWtH\njsY1BnbNBkI8rEG5LS/VDFNoRIAKt+ZC0/lTphWiMOa2dqtYbie6btu7pXwY\nUXji\r\n=n7e7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"b69ff35e90a33d20a0154dcd326f1467dfd39e2a","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.4","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.24.1-alpha.5+b69ff35e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.1-alpha.5_1628249480072_0.9204601130207191","host":"s3://npm-registry-packages"}},"0.24.1-alpha.7":{"name":"@opentelemetry/core","version":"0.24.1-alpha.7","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.24.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2c0b04b47c3017bb44d853c716da5eb6052f04e3","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.1-alpha.7.tgz","fileCount":249,"integrity":"sha512-r/ZETvXomy9GARPr2rP5e10/4Q/ONfZkDilqwgIZUeeZpui8WGWeOqbD/m/1tDbsx7f1NS5R4YyGRrGZdddnCA==","signatures":[{"sig":"MEYCIQDy/cs5UWI6+keDYhAzdaSTqDT+bSEUe1KxL4BsS5AgTAIhAI1PGKg3qFK8bmXaX+IRtcwY+nQfAcD0DIWnMjWvjApd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDot+CRA9TVsSAnZWagAATWIP/j6jB7Sy5c/NoAFYTLIe\ngN4rjj4GManHfx+EkP3MX7AeWQvIMMLf4zCm1VonmmUcpDzbkbFJUsbDreJX\ncxamxHOJ7GSVy3JfJBe8XSMpTazy+JY5JRSQy24vE+MNIZLd/Qj8zPabT3zi\nid5EDkIncrMV7b73aj/sKCqzjyqV1/3dqonmRmBH1CYY/WRS3RGsY03aKOTq\ni+zM0L1Iz9oFIyQgE7UNjaNt6um2NJSafFtr8sXDS4cmTTRIG7CWhle49T4h\n+nPGIqQI5WJBDOCFMdRBsolGkYVocFP0V/5KGKVGrufY96T18Kn39TwV1uuY\nECuWqhSF0auTwWU1K9KqMtACsDQkMHRhiAfrgK9uc0+/an3fsIUeSi4sVc84\nr4Rh1CnuOG2PCXL/rIEsBDoKwu+fg19/1FP8cP8LXDS/jbcXi4ZriR0Cn36u\nEdBnUwJz48wbpnQbDn0OSY9oWz/cl7afynxfoXWxclpa3jKXnmfdDjHzbFV2\nfd1/+EbJRva8RhwePKPrv5OxiPpaSO2riZq4qEAS4+AZnmlb4J7NydHck0b1\nFQn0Q1mRfrsarpO+ZRHWfoXOIHhCLs1mfAG3jDsC00HK9JLvMHDJfeXmoP9r\nUEH1aZcLNyOhn3TGCDI3sCmwA6fNSVLSPm/cF11ujZIbT6eI6A2zsFUvErRl\nizpJ\r\n=rp9a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"365d502eaa0ba1f9799998f050d36073e943032e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.4","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.24.1-alpha.7+365d502e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.1-alpha.7_1628343166605_0.6809359456559705","host":"s3://npm-registry-packages"}},"0.24.1-alpha.14":{"name":"@opentelemetry/core","version":"0.24.1-alpha.14","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.24.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d4abc159d0b8cc338ccca4087f9bb03fa52169b9","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.1-alpha.14.tgz","fileCount":249,"integrity":"sha512-dOI3rhczMgAvx/L15sEKjECei12P5Nul7SrAstzlFeVmrP2LuYCeazywkt2qO4YtGZINCooFb6E5oM1l/Ya0rQ==","signatures":[{"sig":"MEQCIF/jbmZ0R06PyPMVfWiMbXlDUOLsnVOiTrUF1+43H1zyAiANa5N1JPHph6P+lp0mrzQ92zdFZpVAkFKr4A44U/uC0A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE+PBCRA9TVsSAnZWagAAo8oP/1X2eUQDeA1MpxNEoW1b\nlEu7YS1i3b2hfxV50siX6pae4+aekY3dL37S1pbFoor2UqohbfqK7j/eySZK\n09SgOFynFdBtEKtqkohBVAEuAKl3xEwrOovvlTLRXL8KwhyCqilWe2FDKFH3\nl11JkvKzTp35tGMUdHrd85QAaanLC5d+1MobWYghpVzPkYFOPT2G/0zOqjzo\n1SykuOCUY5Doj44HJpdTScFwUjxxi31jv3hvaM7ZtDOQFChf5sKRPxKiGxHw\nYqYpRSvtG7TaPS4eVJKTEoRWhp7F1mwsC932Wvmwz9+6kHRCqLy/sfkyUNkg\nnVL0HFYbgg8yRBiUTHcTNsU8v5JNaaKUut1nFc3oyYRddDxiCgcU6laIjHac\nwHxzT+nArbiNRQEFgaPq80xSqkf9eBqG30369hxjKAxHrtzZMy1xHDsbteHa\nlEqubfBV+lXFfJg0JOdyGdCoof+TcE5F8Ch4tjEZsQb5EzpQIyjnRmejiR2P\nT57a17GrV4rMSvtf6hs9Fgwj1krohSu1arlbE1jqLF/WhPjJpGIEwFj/MFyY\no9LpGxpPprqpmyoR5pyOHJbesGedXFjZXiCZl0eVH9TTXZhINHlajn3UoXpB\nWFF4pM6uP/T/7JbcrAIzrX3ckLZKVjHVIjJUUYr1+lHcu/yJhSSexfoJ0pD/\niBcn\r\n=dL62\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"4553b29d4a04b5b7e4bf87cad64dc2fc8c740d8e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.4","dependencies":{"semver":"^7.1.3","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.1-alpha.14_1628693441009_0.3435884751468248","host":"s3://npm-registry-packages"}},"0.24.1-alpha.20":{"name":"@opentelemetry/core","version":"0.24.1-alpha.20","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.24.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5da8097be3c101088033efc4b83d6f2bf2c9555c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.1-alpha.20.tgz","fileCount":249,"integrity":"sha512-F5upYCidrDm989q7TQksHneXEX5tH3QVE/P4CIAKp4CD43jMIwPb1yjcWw8VBbRYeHHw+SbsUZSSOagyPhAG6A==","signatures":[{"sig":"MEQCIHlKSLTHnhkLTZsijzqyER7OHLBFXZeL/4yuatdyX8PnAiB5F+xx00LvX8BezspYr35hMVFf8Zwkx1UAEZ5Mcsci6g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHCTuCRA9TVsSAnZWagAAzw4P/0D/VBMOtYuTa0ti1ddq\n/jqr9F70JWNsKKwPeVxZiV2sHDyykCuDEtZu33pbl4Nm1h4ULHkEf24FZWx1\n1a1uwvMKsdSmlexvIHy4bxDymqnjLxr0rJry725Z+nGLhZ+kOKOdOkaxRNXE\nreo2MWMvVE/76SbBJSxjLu83ovE3m9M5slot/SXY5qH/UAMa6OsI4BCGIKgR\n7FpK8nYRlTX2IuuJ/bSWKLwWlc+5cJkdedz0O1Ckq3FAX8/iug3MbD/vZilH\nkxiJ95+Tp/zSEoursOtkDYkgVJBbXei+8Mmb4nrK5PnBvFv0VT1i30D4yEPM\nwncsndvZC2N/pJ+rnSyE2rM7Tosp+Ds/IsOD7IZLpZKeLKlg/kQQz+lkxxQS\n1uE7Wr+DwglLrA3oHxfIUAX0aGRVWGNfeZuq8snn8ecVTTpYDoNALN9exT0W\n+46IuIQAmf8qun/+SLt61y3Qq6nlX2rw/q6vQQ2S/dZGB/F/+bMxSZDkSXm1\nJd4AzSYT874dk/WwWlaahBkxXJt2no/gJLT8pUj7GDzEevwPbGIl0elB9Ext\n/wqs23PENfwopt1PGzlYTtttzgk5jYRqWrg5qHpttL+k71cMq1q5De+Lkxze\nG/K0Sh/nhCk83JS7cW4Ba+DAbb+LMHRHoOxnCWsLkhE7lhE1vnvZpzkBmNtj\nslOT\r\n=n/mR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"f12913899ff5c588e10830e5ba7183d9115c3442","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.4","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.1-alpha.20_1629234413907_0.8521627902056683","host":"s3://npm-registry-packages"}},"0.25.1-alpha.21":{"name":"@opentelemetry/core","version":"0.25.1-alpha.21","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.25.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3964bf84cc9175cbaa6804c05212f3978d11f7bc","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.1-alpha.21.tgz","fileCount":249,"integrity":"sha512-vQH2DLeLxu9t/jXXE8m3qZPsGkoO9CXzfjnMqhxbH88mkCXd8zMrY+cSOh4XTVUOXsgBDQfkDDhxevJ3Lqqy0g==","signatures":[{"sig":"MEYCIQCkRa4A6WToKYkaPPr5KJN1hvNpzck0gFUNU4J9R7/07wIhAJr+cw+09Gt53Pz8FIrSEJtLHIIOWMXnXfnqPPqPVhwR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHWqdCRA9TVsSAnZWagAAaV0P/0tdYqE9uW6b5Q7vtYBW\nlfnviO4Mr2IHsvqNCoowjh403DQK9QBAOrkzfJxneGcFOGUH1Ow+C6xDuPJd\n/VjggcAcYoOp271C+7VJjAw59vY5RdAXwdfP8HcEQoXrulfiLAAmLOnuB89K\n0LC40HfzqaxFnprKD8oXMJYon8uWQ7nA4Vwr8yxdTbyjR/8PI+H3PbRs9a3l\nayGUHSsdzWZZ0N/jfv7KkPgsE1Zr6sRy6v5d8Wtknc949R2ARy0/YM79Snin\nPZi1NFDOR+wAHY5zopOtPKCdRIjMfjxHaljpVy0FLo1pvpvyyw/fTzc/isZv\n9G2n70lY9lV2JYc/uN/M8JR+HfRVIJJGxiMqQOV/+Yn2yOvTiKkDBAyMyBnY\nbRBrbUh/BqrakMdAmxXr7YHag3gFiaQp/DT3eSNSTJnGDvzl62kbTicJTbjm\nVnQ4fSJKGFA/ZS3OK97oQuw2EtCg3Ze8uof+5i44iQOrbXpDigWIqHwsLM3x\nSopx58kXrOmSy91OwetCaCVZ4YhzvT1rQt46ocVypm8yGy8jtWQWtbeZgxHx\nQVV8L1OI+YpSv/srHRdZku8Gajn3jeDGW3phwOpruCVV45geIT/El1H2LmgV\nQKqwD6EGgeIHnX90A9LzqDHYKK1Alcgo3iC3N5rvLT+ymxN/Ty5/05N7vREh\nBFVS\r\n=et8m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.4","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"^0.25.1-alpha.21+0ef1fc28"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.25.1-alpha.21_1629317789158_0.3132947703025293","host":"s3://npm-registry-packages"}},"0.25.0":{"name":"@opentelemetry/core","version":"0.25.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.25.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"44fae79865483be5dacdf72f99db9f1a603c4bae","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.0.tgz","fileCount":249,"integrity":"sha512-8OTWF4vfCENU112XB5ElLqf0eq/FhsY0SBvvY65vB3+fbZ2Oi+CPsRASrUZWGtC9MJ5rK2lBlY+/jI4a/NPPBg==","signatures":[{"sig":"MEUCIQDiAdei/6EAvQ2kKsuAzxhkGLvSWz46t4wTVZBRX5Rt3QIgaQEaQt8+rumNVdBtXUq9ybMpdpt4AtkQN9FVyymJqZI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHXi3CRA9TVsSAnZWagAAJzoP/3xEvrnYf1hSPeNvYnxP\ndvJUWqtpZEA12mh4gqyF/oSbt5XLQrPO8pzYvdu36s/ds7CRI6UAF5vP+df5\nCtVbDfnu/wg9EWzK8RxHOc3F6oIgiQIOzVt7RA3GnF89fiZjWwDDKzKjScP5\nfxEnuhJ1WfFSAQSXsdcTu+tgzVO1598VHGtoCvI/yjkY08rRO14n5gCT4tuI\nWT0KP8VD4rVVW4uQsU2LoxxowUSKQAxzg3zv6hui65dTX0j6AlSfn+VdOp3h\n3/fFyRo4Jt0jIIkVvneCSzEZXGyXXKJg8gb2pB3wLTNJL7EFG1MggVOaKe3i\n72ao+wlPW+U50weGLURdPBarzpoM0mKfcflshwyzg4AMobqsQEPDxo7AsItm\n7EKfGtZDs7BNli0GsgIFHUsP9c2NqM8q0wHEJISMIcBC0eQ5G7vjhD4o0pfk\nkJHKVvkMbJTMotpsGzEDi3kSPdJiRX8274FQr/Qqw7NBw3gtCbeWc0cS/00o\nLmWUVn6KqFk9+rnezOACPY+qZTpRe+/s+Cg9nltLp84wZWofpDDZCYrBnkVM\nGJbgWzo8liBFDYmjL2WWeIAGrgn36IdC4+zFpxkLtFtY4g71ZPyzEZoxns73\nSWMXPJZc4ozacCOT0nSnpwg4FcRPoL+P/RFuHp5TR6ZryioxXIzVxzF3L7PT\nG1nf\r\n=h/nc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.25.0_1629321399688_0.048165180120773865","host":"s3://npm-registry-packages"}},"0.25.1-alpha.2":{"name":"@opentelemetry/core","version":"0.25.1-alpha.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.25.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"09debb5ed505cffb3928d8e7feebb37e1522885d","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.1-alpha.2.tgz","fileCount":249,"integrity":"sha512-ZiGvRiA7gs5EHNH2bKWzQ0OVQcKCBVL0hzAWL+VDL889C29xnr7+1nRP+OMiu7YEJpdgGRhzpxbd14y57MHQQQ==","signatures":[{"sig":"MEQCIHFvmED8zhZCikp34UygYlYBxghnsHe/U7NJSC/xsASOAiBnNXGp7RYWOHXqUrNIiX1bZV9VVWjiGad9MEfy5ipnOg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJBXpCRA9TVsSAnZWagAA2FwP/jbk8b5Ky2d10Ti4cmnh\n2+nyABPMH+bFnPLZh5kQEmolDUEi4ipIKA3WNXyEnTarIlmvjj4Sw8lLIIjX\n+kSyza1PpuLTsHlj6VyzjMo2nSChE8RtbeyrriNopeOQP7tbWNUfJaJeMB6z\nP3psCSRiwLzJ+7qPQVgpYsEqTZpC0BHRZDYUi8M68E2Kq6Vjlm4r6CCwvE+O\n/WoyeCRaAIp1b3W3lFYozDV/duRNg+7HZxrpZSVEaxyO8kSmpcSrHaMojT4c\nls6m99/72zeMANjSsWfFleYklzgF0Yi9TBazSZGVZmUQ+SRb3hZmP5gElJn0\nAjkGhpR3CRwVvbfUMofMAIe+FawmSOMwO9L1by+/zMSMqB4t9W4IKWsxeiGK\nodTpIYT+sr6ApmRPR4TVNpiaF1EMTa+Fqw60wgdys8G59H0uKdKQ2GefQnpe\nLdaEzoBltzKApLRalcpXHeVesNoIcuFHYbmCZnsHl8N3GNSWiG++tsiXRyui\nUBJpAl/zn8TQU0zhrbwWEiJBSWUNmnpRX9AHnSbVEMg3Av0itQ6NqtVunfx4\nP6jTJRvB6VbTUfSwbPMri7uJrBkfXnNi/EOVXH+75kWd48f6Zi3d27+vVeKX\nOCGpI66T8hWShcGioATj8jDUmrK3iRJD51dfzxLIiZMekFmbqt2z8BxTyYRV\nNNAT\r\n=JxIa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"78a78c093c2df24b66c47af4e037da9a6098fedb","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.5","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.25.1-alpha.2_1629754857843_0.5889530293850438","host":"s3://npm-registry-packages"}},"0.25.1-alpha.4":{"name":"@opentelemetry/core","version":"0.25.1-alpha.4","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.25.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5c6316a64bd7b2420531edffed21c1d6db0ea3a3","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.1-alpha.4.tgz","fileCount":249,"integrity":"sha512-21sN7WrLwY2CEHczCOwL5s6mwNyEoxLiIiXlYS8PoYMT1a7Ta6vfYzIyBbktDf3g/oDOCwlmZcL6J1OxPb+XfQ==","signatures":[{"sig":"MEUCIQCvZ1D8+kRoZREHkkuTlLjLbpz2cd/xoyA/bnOc8LJsDQIgMphcbyTI5cDIfzjq9QJaOoh6NiN9wmcddj0ZTFdie2s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278789,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJUltCRA9TVsSAnZWagAA4zQP/0tSFGDbCUBj5998Cyfn\nhNu71d+ecYJBqjB685luwZqT1Xc12JZecrHeDyEYcw6Oi9S/33v3vyQlVKet\nmVdfOAg5uaDffXQUHQbhuZ5V8j2twl35Uu46bEFxwdH9wBR3kOHnkPhIVArf\nN2JMIonpDNMgzCJnDV974hrOPfHD3u4qoqxR6cRW+PppL6rT1kDr3TMzZV9U\nJvXsi/Lru5eqnJeKcgxXt0eIYbLlrbzxtgP/eSjAuV8/yP/HVw9ztEAg56/R\nv5u16LtkQt+I49y+v+eqWR9uBCeS6mfiyNndLYQ+y+N795bFAa5pW6FOuy8L\nRLN0NHhRQP5R80bKKupt/Xwv9NsmA7GE96ltFLeq+p1NIxkVolhztFrDqz5D\nDO1vDLMIbpQmuvm8radruSh3pAMpsPS94Zgpz2/GovpvgoV4qohvYgf9NjxI\nVmxd3mPUmyxaRDQ2NloDld+8ag6ENN/ltrSS5P1wGDQdbGjAyAnNmaLWT+H5\nr/Lmr9eUNutKc/iuPbwKNJoCHMidiGAKCJBFhGsEtpVBUWskxKJ1AmLnFVV/\nBuKQ0VTPmPDS4rXZZwyq7q1/18QVTE/ikLDcbwZS+I6ItsjojagQx9WIknoK\nvo8vDQCX5hMZfjaM6JkSRZ3Vs0oQS9s9qGXlnblRG3fSCvZQYbpMqcbhDboq\n0n52\r\n=Xwkp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"3cbd530f2ee5c06376210402eb87ec9e362853c5","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.5","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"^0.25.1-alpha.4+3cbd530f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.25.1-alpha.4_1629833581153_0.12507090923596298","host":"s3://npm-registry-packages"}},"0.25.1-alpha.12":{"name":"@opentelemetry/core","version":"0.25.1-alpha.12","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.25.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"32d5ba32704dceeace31725dee4cb5350b6f5563","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.1-alpha.12.tgz","fileCount":249,"integrity":"sha512-0IF5G/46MFxkfpelj++ff2s0niHQa4zyTTLSann+PfB+uVxh5RNka2xg3E4tpDqfPGLWPUBmtazXk7TYYW6Fuw==","signatures":[{"sig":"MEQCICqm779lrykSO4XoUnAfgoAyxaJxnm9+bcxG3UGLGuI5AiBdXx1eWurci6pyPVvdQF35iNsuCuZHVziVO1aGar0XCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278717,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLT3lCRA9TVsSAnZWagAA1pIP/R9UOClbtC2df/EjjalG\nokktycuIW4q17HEDRbuQj3mzH36v2f9nUjpFkXYDfZAuLoNrtj3U9S1Ff3OL\n3bWruQynGhQzgEsA/+i95Z9gicnD5zQwkpaf60LeYpGek7xTcndvYLgu8V3i\nV4TzYQwOGD4EARubaGd9Yz/BVfyKu2d1yLTdx2RcZlYzZQrPWXXxFK7auKKa\nXufpQ/WoZjHoV8W+00jT2S14fJk1pB9G1vNG73HcPX/8/I2WXMeSNwF7m2J+\n1+WtUNvljjhxbtPvWvqRAIfXiIAD+lyWEO9femsLRaP1M7QmIHdcSNN0ERBM\n0nRokXFesF9MmvQlAnSf/N8Z51ltXDlEIUXpj4c0cqSI8+rsuJpC+hkOzqYl\nlWTvJKKYsOp4VaIWMtQekS1eLSY9rPdJ0jW3YLws6g875KQiw8il5U/TlsVj\nUfBYmQMOirc7OeEv70Jb2Ja/DnDsVyB9ig59k6Pe23s5kn2YjpaCEq0DYQoG\nMPW6lFcblCyrqP7BwDqKLPaUrfhyddTQa67Z+C2HoXAryiNZwniyvXnKucoJ\nTqF+/LFJ/M0/5waCmZ4IcPd9sAHHzt0DjzkdvHpydtwUPIDMxcFrS675hWrV\nyHdrSr/EFKL8nwwEQshHh1iIGpcHByAliWaeVH0oJQCjCl78GcUzKklnsstB\nugG5\r\n=7Ekk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"7d2c4aaeb08e6c680f8b46cefcdfe955d7abe4b2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.5","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.25.1-alpha.12_1630354916883_0.6798805583608047","host":"s3://npm-registry-packages"}},"0.25.1-alpha.13":{"name":"@opentelemetry/core","version":"0.25.1-alpha.13","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.25.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"227db88297d700e3dc097dd186d7144b47b19aeb","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.1-alpha.13.tgz","fileCount":249,"integrity":"sha512-Ylw/84+IuDTqcOMb0pZeuD78edrgbrh/e96LQvZIyYC5dJ+muXYgFZupnA0mm9GTlQR65t9AysMNupT6IGyRBg==","signatures":[{"sig":"MEUCIAFblqzq9TV1mWru2bpfvgOrExyvRRSbSbkYthNBAZhBAiEA6d84pGZlFy8eeDj0mcDcsQB75qI6GYcZfsv2tUFQxpQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLUJsCRA9TVsSAnZWagAAYsAP/3Xgbb00VjXCLOmXmTqQ\ni/Z7lHnipACzFhnpDt8nF3Ivsg7ySR/aitLsQHs+T/lZazFpLP+Vef9sVd/T\nqsFgLVzK5EOltFUVe0VD2hWoEUHITaryvt2dKxQgo9eE+aXe3XJF8GJktDW5\naFKVm3gKP3fsgc8Tn7IUiTsAR6/CjXHY4oO+Wddqlzldd6mrX28ymWrdiOTU\ni0i/r5HYS+lRKnZJ8ATxGvzccheiEkYmdKDovJI3hf+0rnaX68LV+74UDK/z\nZSS753yoScJjNhRMZsjyBE8teuH/U65nsvVFJHmRJ7m6hPQkRONL22RMlmc8\nEJqHC9SBzmg2kVmclbTowsyqspI3QdY+P1Ts4UF28Ayd3MNvCQ/XkeKTwfDi\nSA5DbOQDSoSbbEtpx9Aqo1Cr/dhB/U5nP0IU06CzP3cGDfEEtZtrlsn05AUU\nBW7mrhdD+NYYwMJD27VjZBufmhrdMWb6OK1sbc+DeKjq7ll/NSjzKGRsmEHq\nC8UNtua4/Iv4lZNWnx5UN1XEsRSmqqRUd3pYRYR5V6wWIHip6dwuAshSdcDs\nd50nHa+9JtYrUNC1BWYMzChiInLuC0lgK12QmluRvibpM0TsYzOs97rz0X9M\nwupjl6NeI0dZ2Pfico5lGec+FZk9fUhdKtxyBUxJc/02a8sR/3crSaMUR8RM\nG+gy\r\n=Ru+g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"f0caa22ffcb26af2a2f05260f138a494e120a955","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.5","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"^0.25.1-alpha.13+f0caa22f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.25.1-alpha.13_1630356076272_0.19452269658121724","host":"s3://npm-registry-packages"}},"0.25.1-alpha.23":{"name":"@opentelemetry/core","version":"0.25.1-alpha.23","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.25.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0b8df21ac6114ef0e91b5ad0304ab0b4481d441f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.1-alpha.23.tgz","fileCount":249,"integrity":"sha512-NqnAJ6b63L+nzMhZl6AMY9H1KQcvNACnbev7j8wt34teDowHUUBBrDty8zgV5nd0Jl8yXhpFPQpQS7Gzf4NzMQ==","signatures":[{"sig":"MEUCIELhHNWxfSRJpYnTNoDfm6djL3x+3kZlQMPPHI8TAZoYAiEAib4bpw8eNFVegXDuex3AHi+20AooHdShz5kJNsjU0rs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":280417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOTXkCRA9TVsSAnZWagAA6ggP/1k0dWNzpgeo5VNv0lTp\n/DwHl22jE77Joll5FC6jPmrnfC9ygVZFtsNLL+5/+xVzGtqf/o3wiTx+NeUK\nHBdx8ZpX60ZyPAFs7M/8A+zaJzyzWwYP4vrFI6wfU9HXvjXS106Lncwb1ytT\nq0yLmksJwEOKWh9FxtoQdR3DXrYf+AC51KHadg/l0fPsvdgmMyK0wgfR+ryn\nWbyEGTLOyOp4Hr9yuUK9csMA7SO1pz3FardOq9qfSG2LXloQVyuxZ2L5d6J5\nsrOnvv07v+dTG7CBS4OzReVdLEQXj2D9L0MYfMWTPicp6F7FRPEU1UjEzxYD\nHnEXA/5UH4kAlFIDmDfRmUCW84Ej6Qh5foplUgiMfBrR9cF9zRcJosuaMcp/\nVCb7jlErac2aW8Ov45wmabmWFF334NHkw9Pr9m+SrSWN0+3hqGH5nJOEhgA7\n1ZS6pJp5szgpu+aSd036typrQaez2kN2RgHlSL6aClqNzjX2r+zsFdg+kvk7\nqujZ77vYJ9RtXYuikVTRGyBc6f14iMmUh9TLRRq16IAEdZmF8SvxjSjRKoEk\n528GDX8uMj0ftzPjetz23Sg5zlpOEeLzmQ7BfCIhuxJXl9QidPBVceb33nuH\njyFBL+JzYRd/GduRna9lLOv7xsvli4aT5x8JRtnAwSA0m7cbXYi/fO0DfSIp\nQQZS\r\n=C0d5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"feea5167c15c41f0aeedc60959e36c18315c7ede","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.17.6","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.25.1-alpha.23_1631139299775_0.9821525432799365","host":"s3://npm-registry-packages"}},"0.26.0":{"name":"@opentelemetry/core","version":"0.26.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@0.26.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"eb7e05dc5ca83a49c4f7f817dd38a3cafb7b210a","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-0.26.0.tgz","fileCount":249,"integrity":"sha512-nsHG5uIxqNKxZve6P8QtRFfymYgjE/rIDtEmxEfB9SMpToGEBIrCzgrWqEAT8lnpzB/l029pFl1TquuEb/cmcw==","signatures":[{"sig":"MEUCIFUfA0tpWcBQnxkzjrr0eNF91yq0xd83tmAomqhwnsEyAiEAiI8XaWAFDywZgvTPBX6fQYru4uxA1/YiF0MK49KGNtg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":280398},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"fa2e897587a2441205fd085772d80a0a225ee78e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"0.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.26.0_1633005327650_0.5857714959632765","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@opentelemetry/core","version":"1.0.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.0.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"517f4181a52312e74c2de8b5c63dfdefc7a924f0","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.0.tgz","fileCount":249,"integrity":"sha512-1+qvKilADnSFW4PiXy+f7D22pvfGVxepZ69GcbF8cTcbQTUt7w63xEBWn5f5j92x9I3c0sqbW1RUx5/a4wgzxA==","signatures":[{"sig":"MEUCIBORQ3BetxNJq1AFW4eBeQshSYxppTPSowFSWqmK6LZgAiEA97WZGcd8X7eMDi565EsI0zFoNOS7f7ZghrRGbRYZc0s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":280375},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"69b925d142a4405c7c6bec7deadd8b4e96c7d5d6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.8.0","dependencies":{"semver":"^7.3.5","@opentelemetry/semantic-conventions":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@types/semver":"7.3.8","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0_1633035220911_0.17894683787361632","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@opentelemetry/core","version":"1.0.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.0.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5e08cef21946fdea7952f544e8f667f6d2a0ded8","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz","fileCount":273,"integrity":"sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==","signatures":[{"sig":"MEQCIGBhxKVNhaG1eJrxLvnQXdfUmIzvnmAqj1vK5V+8GfVsAiBJKx/ZiLkS7HWrtedeEtqReYoSfgKvPGfL2CUaJ62TsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":499844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2UpBCRA9TVsSAnZWagAA2GIP/1InjmPaOFtbQ45aD1P2\nusABVo0YwMqw3IpwGwyFCQqYgRNZL5VepAVDIwMdHnyOE7m1QtTdC+kcJxDg\noWcFrbP9k9HZbm/Tm9N33SPUblvtEg5U25H/e5rDrfiyvamnNX3iKVVk2+IQ\nUZ5ZUa86CaxNpoWkBJK2wA9R3Lr7pKJansv9cKneaaeCR+xKUCSvfk+9KwQz\nXotgxYwLBjBLo3NMiAztaZiap+5htfXhitsuvTnqOa7MIh5jj5TuephrSgja\npCafqN4kUCrkABjCZ04GJ4LAOlgKNL8/GHYKHlOuvvUtQHbYF+D9Qh8jV9hU\npSvkkHkjc/TBoftnJzYnUAl1yyGiaYT6WGlI5ifwRhWcaZov8bKzQ06t2TDj\nT1xZH7sdLz3KzChrTKZcuUtgW9zrsA7rrbG3ZwMyNCF1TstRxfVQVQKdO+0G\n2jgMw3xGsw6yS3A8hWFWuNsgjxSO/7LMBCq4gYlZwGA2T8d1y5TIXTkDF+wn\naLWJks515a4c2iwRidsEZbEOeuI2anWfnKb+7HKAcTg2t7l6pP+h39g5nMAu\nGExPBjPtutOBmadCfbdUKfLWC5sJl0VNHzD1/0qYiBGEty1La/xFBmg7Iw2T\nqexvnnGspS6RIlLDxh8zOhjHufbhgNZ1CNSLr1BIYHwW3WhKH1BmqjvW/LJN\nF3D4\r\n=fTEg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"9cf402ee4231ee1446884b5f59958ceafc1b5188","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.7","lerna":"3.22.1","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"~1.0.3","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.1_1636642280795_0.21627689195286925","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@opentelemetry/core","version":"1.1.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.1.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c1a7ae585b77abcaf08532e2b45c227ed241dec7","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.1.0.tgz","fileCount":144,"integrity":"sha512-Ln36HD3wvNPak066SPzp2LmhXM9TN+vxUhD82Ct/4Cw1DQ9Pu/wYngHE0dA+NGwST7ORE266tZQcNx5fwUnDBA==","signatures":[{"sig":"MEUCIQD4E+K2hfic6AhQWFTgFlKabB9J1gUKTMcvA2ERe9S9vQIgTh9Kn8B9g2fZbzvyMqutMCA17KBmmJPXWqmmLZ9Lmsg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":273258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiND6TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobNA//az0JMqdQCpwbC7SxYXPATV8TbZD+C7aJd1CEZxlQyoU3DObD\r\ncPAwvjy0lcVSvNVdARD8Kx5aqZJ4DpsE9IcTQw09x4jTdBYJiyVLXPckrvjk\r\nXXOVUNwTpaiMjYsJ60YyQXqN+C/5SRO9zUA7jZOycRLo/6Wd79lBw6IOr+Gt\r\nF8waqAXyMhQx1HL9R4rM1Uq/1k3ES5UrIw+UY6hF1PhBAz9OGdhuXybNnSYv\r\njfsUPiwK118CEVpCbOhYqX0LpbdI3xNFplw3aQh9ML6ZRWUZSCYxCtXdIz35\r\nEIJc8vIsbn5SGoWNeHdMmMRi5CJEK236x1QqgcKug8q0ReNCe8X161Lc436v\r\nxt3BDoo8dlBgLz5Z8vv36ClghruQ8xEoRa17BQZDR+cDD8VmYNJ0+wzYnOUA\r\nhBDoit6OmvY7q/5Bam4UAJNzvVeoMzzp5N0+ZQwPHaq4WfittIvGQC8x0dDC\r\nrUUsuCkLw2f7LXh34muEx6N0Nb2wbpNkbIyxldjbYupka+AyA2CjaddBcGrO\r\n6J6E8XWA0PvS41nuQjsCokiLYo51ItumP44tE5MoqItRMgsXkzUEoRlC7Rlt\r\ng5ow/MU+spkDgFwKfSZZNel92rzw6+lrh8XIi8BpmA8g2Cllo+Vh1kwB6zbd\r\n/1PKZ04yOG2taMfMaaw2enW+zGkamTgGxho=\r\n=7H1+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"f384303ac469914d0dbafde0758ccdae473f336e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"3.22.1","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":"~1.1.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.0_1647591058988_0.7650525480493755","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@opentelemetry/core","version":"1.1.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.1.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3d52eeb8ceeee3ca1870319b3e6e609fb1e9eadf","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.1.1.tgz","fileCount":426,"integrity":"sha512-rNYVBLzO+gXeYmNVcm4NfKw9x+nTy08Qp8SMpkmM5cqfdEwEtKw83vpSrFKzafy2aOIpmUkKGpi2k/m5kiDP9w==","signatures":[{"sig":"MEUCIF2FfYzf5Sui3BBbTW+5rLCxgU/GtzNkB61radKhJRzsAiEAuEllQTJ76Lw1r1XIhm+2gCGvatNJFIOmkOBtAK6wRIk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":767907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOij8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3zRAAmdWVJQUfRp/khuKLczeieIqe3WASaEzmu+L+fQjuh3zFuxzg\r\nQEvNqXRaVZwM1HQZlj1oM3RsuZLhWGFbfN8mfea6n3phwXOYoIbfWuE44Bc1\r\nsyqHoQ/AEAHD5rzHNuguPebt1UULb0ZmjZ5OdnfDWghK0kwDba27HFWPFRLM\r\nchKaVE82/dgFqaYviUUijdLwjFULwUltYehNaCauJX/78dBzpMvikgExnaal\r\nfvLC4foJnYf9nOeKgsXKweSVswdIMXwNAQnJu30VQvgaqcFBdZDQxuxFSviW\r\n/KiK0nCcI7i3g8jhDfucMNkoHr3J/KZDZujjawdCEc0WvCY7jc3cpox6D5Q9\r\nfWsAdm9szsxQQW6VAEN4vTfhkU0NFtBaVB5sT5RCRO3Vc1uLOpKoTC48KGub\r\nnABl/b5TYVzr22C4ds86cDRoOmdj7IwNgj2hAnoueG5i7kXLb2vRv/FBVHUW\r\nx4r0d/voxKxdncBDuBWjlY5NKFLibDgNl+kl/iGSMbUw/rhLdhc2ZGBxH+YY\r\nnHz5IIYcwcOPiHczuIK2acdvP4JcU0WVVzOW7Qh7pOpHzlbAeXjYtmVfZ/XX\r\n40my+dEN1gIheDzmeiRBII6K/9HZWM5jsC6EI6RNWd2GOTjnW0eEHcA7g8fL\r\nyDm5Y8Hye6GMZxxbR2fU9E9gSIDpPdee4hI=\r\n=XLds\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.5.0"},"gitHead":"b0f8a2d36e6d1d3090c3d2380608d2102c826e0b","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"3.22.1","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":"~1.1.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.1_1647978748517_0.2889358868749834","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@opentelemetry/core","version":"1.2.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.2.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cc6dabb7bb2f317427135863ba6bebe22b0b475e","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.2.0.tgz","fileCount":426,"integrity":"sha512-QiKp8fBbT9ZhRTP+ZVVMyqH62tD/ZQa4gWPi+GnpNetvK1SWPO/8DmRpaSXHwAhu5FWUDJrbFgpLsrDd1zGPOw==","signatures":[{"sig":"MEQCIHCIgscwi1aC2Qg+BhTnWq3j0VQcuUyj9tYb4eEAWNm4AiBK8aT2FhP6IrNrDDIj+WTtlYzRpOyNvUR8DZM/yLlScw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":772290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYsI8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfVw/+N7TUdyInYSCI5uE31rf2+sovjbqIfApVgoiiriY4hlrrz3R6\r\n+BPznHYLpu+vS2O9deLhEfL52ENG85CZL8ICwmdpZYpJQtm2hMpkfpH7/nBY\r\n9qcmmyVz9R19Hc325XjZ/hdamggMMYELUSwyfIpZ/XXewxGG8+mBMhhfhHRy\r\nPbDXEvLTYFADwe77Y8teuwpS1eYPOxX1wnx32Hd+0oYZdpA6rxVm0u2BpiyD\r\nW44rfemK59aBIVjoBm29+nw2DL2BzRXt9PizWwF4bg9jgFpksNLZbndYONSO\r\nckmqOVwLUPJVE5BA+wsy3tV8QAhksijfzguyBn0vxM9h2tcKVSQbznKRGRQo\r\n5zHI8glpRywmv4XEbHD3bhDIiLNJSxCu/M+IuyU6pxWN0+dcrTeBM1REoWpC\r\nWMP0Q3FFMtOunfyeRLU/opXDB+5HndFdNS/e/g/36ZLdOQbA6fqoI7bLeZeX\r\nuDShcTOkp/uX0Sq710rWl/tUBrq7tn4C+T2en/jXjivNL9oQfW5llIyFhOjy\r\nmZcvJyN+X2oRqAgffSQYg6sFwkNqxLs/+VKIuhjgI1gz/BHHkPmSqIgLOFv9\r\nzRyaaouUysTZQYtChEaBrHTg4ewjUrMp+n9q+ZLU6s91ELoyQpHvjoRw+dCO\r\nzEXyPSfqZXTjqk1RLicz/283gNFTuYm5Cs4=\r\n=Ubjh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"a0a670a03fd35b0799bee8cc466f79e93b5b6dd2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"3.22.1","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.2.0_1650639420669_0.7415910500674556","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@opentelemetry/core","version":"1.3.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.3.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3a7cdf1d95ae26147d141a7fd58cc60759486aa9","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.3.0.tgz","fileCount":426,"integrity":"sha512-g/YNvUhSPn+9PBOnDZtFmvGZR3fDFzzLVSHLAnAQfOLrJwVlZovSZpAXNOv8OGhn+JA3j1gY93gfjbgBZtoR7Q==","signatures":[{"sig":"MEUCIQCDEc3OR5aU2E1jYnOm+SC73/JHa2BFjdJ202oygXPWZwIgT/Wbk2Xvb1+g68bSMWiyQUk4XaIjYY+01Pzi9kWLCOM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":784659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikSlhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo/9Q/9FubxEB7pyZwpp60Wh7yQb4c1Hxl6n3vbvL8kPbRh+BfOk9Fz\r\nv/msR4LTjYTauYqS4cR8tTdWPvXOhrvu9hC3Sm+gqJxwh9F5OwtFFC2wXbi1\r\nUXjymABOBzSqM99tUODVCwiQlpZG9SgqYbiv/XKvQ0oFUHBoHNhtLUt9ZKat\r\na7HTVggKnRUUYPBIZWpyIyjV397XQ6zwIYtDmHjLENO5TvO5JAFrxopLHe7L\r\ntwAhCtfAKf+mZ7Z1RGjxHToRRs18Pg0jHXdMI14epQB6XokUMMrQWgp+Xs2+\r\nq26TU9CkQ5/kJ6ZS5mvNM969Xs2EZD3ttMxaf9xD47MBTWgvNv5Ge5HnkZVL\r\nTI4ZPxw+g1bAeHHEegT0u8y3Sk+PYkAzdXXVu9KsBNsxv3hUTSSOegZR9A6C\r\n1PGJeYtvLC5/VmkROfeEgARQb2V5QwpOyrRHs5wrsY0UmAc3+ijtPYKn+FCl\r\nprViygao2hXVsNLeMoLEAIlqal6yF1AM9msbLGsQiNAzsEBGJmXDWE/fA7Xf\r\nyVMR2jtuR81X41mPtnAEh7fub4s9AiLG7BNyjrADmcapPN1fOYFWG/TJnmah\r\nncYjBakV/Gm/rfX8BvgKPKw64sm+nMCEiNlniIWJVQH3P4v/HugcHv4wxzYO\r\nDTzqJl+Gms++KlXihmQL33/PMgw0fTjUiZI=\r\n=2OHL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"eda0b092db484855ded8b4837ba7fc19a377c5a7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"3.22.1","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.3.0_1653680480812_0.48747084033710264","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"@opentelemetry/core","version":"1.3.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.3.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6eef5c5efca9a4cd7daa0cd4c7ff28ca2317c8d7","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.3.1.tgz","fileCount":426,"integrity":"sha512-k7lOC86N7WIyUZsUuSKZfFIrUtINtlauMGQsC1r7jNmcr0vVJGqK1ROBvt7WWMxLbpMnt1q2pXJO8tKu0b9auA==","signatures":[{"sig":"MEUCIQD+TrINv0EwpTqv3ppjT89Fu85NfMzEYvVL39TstQtCMgIgdzulHpsAuqRbwsaOw+hxP9W3aeWsuEAXUNNIggOpKo0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":784659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinmLhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqxlg//Z46j7al27iLlx2pUfwt8pfykI+5am33DVubykQ4VBRAsoaUU\r\nxCUxxxuGUaRNc3W3dMkVJWlB/yDi+tAnQmLMSdZgeeG866VCc+V1+xlFLkuE\r\nLPEeL4dvaWUWkqCPJUero1iQyE3Q0rCriyAZVA6APWBxlpSQVpOl/NtdipxR\r\n/KBOC2paznSRXqYZE1ZAixeK3N0Lt2toA1Pk56Bt5Y2V0DXM06OLVwD2LFmX\r\nQdB1/FvXUSk3v8ZOGs80zXUjpDaIrBeMD5mxvkC1LTk03BEmmReHI2+1F0mw\r\nJuXVxyU5NBnaLZ68wLAnXHMfWgSpTvfFTpDzcyBbigFYGmlzcDAiRkdyQhIJ\r\nIhszzF+JLbF7Jox0jPreBd/IpPU4Mq9Qng/TKRNeBR66gEmXBz0Km9/Ezi/L\r\ni6Z4kZqwWb2znSd6QeU5uYS0aIRvTxi9vsTI2FsUiyCWlhc/Pzmx7bXIts62\r\nS38LXRo9euunEad1tpMkpUMNA6OQbdA5yxB7q6YbI+/VWBa3d8Q9Km5AYFKH\r\nz+ofEjJi+QoCNJdOvzkyDjsp7u7gq9/H4ZGQcL/upEvoo+5iY6c+/3cC1ERD\r\nenEcZzL1KAgoIrVtlBleSQXKK1JJlro6MNAFnmGhIcNMNmnvGBf5wwS/w1cL\r\n2Os7QtuqakgWNZdoGax72MgC8+LYd5sK254=\r\n=+GiX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"51afd54bd63e46d5d530266761144c7be2f6b3a7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"3.22.1","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.3.1_1654547169480_0.8778583385763781","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@opentelemetry/core","version":"1.4.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.4.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"26839ab9e36583a174273a1e1c5b33336c163725","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.4.0.tgz","fileCount":426,"integrity":"sha512-faq50VFEdyC7ICAOlhSi+yYZ+peznnGjTJToha9R63i9fVopzpKrkZt7AIdXUmz2+L2OqXrcJs7EIdN/oDyr5w==","signatures":[{"sig":"MEUCIEWg00qGH3T1N539yqB02T2F/X55wjE7XBJyn6uMLzkGAiEAkpoEQR/T/RWznISn8iFbn306TkLf2x5LHZO8WRxyps8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":784655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixe1mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/CQ//WZol4XPY9U4T9JAR192T6AnnIWFqb8JZd1KsnkFdwTJHE13M\r\nWSwQWvrwz3/RVyO22hsKBFjcQjViVQDHCbIdaYvQNwThl+GQh5hTCV3zUFPn\r\nmSczMOlcQW7ktzfUFl3mPgw7hCwSJNPZ0EekWJON6oUWQlwMRnXAs9TaOefs\r\nDgKYAcr0aaVpLmOxzOx8k1KjzYVpBzqtm0sl6Rbi75mbFK9dAi/5PF3k+Xkb\r\n8lsScxwgA6hs4SaUtRp/Fqr8bXosdjmzibxCDs5VOiBZwY6o0BJ5iUdk+2S8\r\nK5ro3bpZV27gK5RDIhC14AImB0LcmnucMJGFqphDN0UIWUwlKa6xgsLmevVH\r\n7BeTtcaJyR0hRLgY+XKnSJYH4U5TOaJbnv0O/D1AWSbvHjAuDEL8GStFf4se\r\nyXYGgBRdc98CMFiYUwM/1D3a/Yae/jjUwf3O/nC5WuCICHmlazfvXeb2LwYC\r\nVARENsdsLWiGVMswko5ghzaYH50v4b02HzYgRTiS20HGPnaPFpsWYBo7KAF2\r\nwVlPyYR5q/QgPlVaYnGMpzWte1gGaCm6b9bb1Ahah5PcJW/7UQIhigapvc6s\r\nXNnvu/9o07qtk3qEtEikkWpqoIL8vS4Ol7RkGuAcWVfVqOqkwgkO3y0u9361\r\nHXnIWxSdmrrst93N7h+PzmzFR5jep83CvIk=\r\n=763p\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"e39ab883b18636238ef0fd741df4ce5ed53e8d04","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"3.22.1","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.4.0_1657138534608_0.9998986400043428","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@opentelemetry/core","version":"1.5.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.5.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"717bceee15d4c69d4c7321c1fe0f5a562b60eb81","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.5.0.tgz","fileCount":426,"integrity":"sha512-B3DIMkQN0DANrr7XrMLS4pR6d2o/jqT09x4nZJz6wSJ9SHr4eQIqeFBNeEUQG1I+AuOcH2UbJtgFm7fKxLqd+w==","signatures":[{"sig":"MEUCIFNqxY5DTTB2sVvHwUJBFDreRwY8soSuhE7TOZX/iqKzAiEAim49yr5G8CFMaO7Ejgx0+/WLAO8RWaZAuYG2hngbNrc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":784761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4FP7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdjhAAluEBGkPpBExgrUODR+dtKP/US45NuHnAiByh0Y1vuckqfLJt\r\nm6m3dvW18MQ4BKyzeG0W53KD7+qnBARCTFyCzOax3JDMH/b7/iqXs7O3r4vv\r\nDM5eziWdzFJBEok6Hk138vDD3GeX3cVZ9cwrqS7b5CwK5gM7qesIvGTKt7t8\r\n5BSDezanOi2MMNX4xrg7DaHSNl9IslFYSuRrn1oKEjEYqaaV20nteUmXicM1\r\nKHUA6WR60p/iLPs9STrzuxNBTFoyl1VQxVMxGFHjcEkr2DAyknxp7Gb/JzBU\r\nyHNC54Ianecp9Di80B0hAv8eNtgRoHngH+A9EQLmtpYibcL02jNIGbSzvN+r\r\nrlYghp8hMXWpRjOMhg7eC8bfcGBziNkr3n9nRYKLJkPDo0LYMfRWx0IcHdEa\r\nLQ5JiXF5potBFAh9Qk4eNTDRYRCRlQ67hjZSauLuezwZA6mZBJcRJ+lsp/TA\r\nOq5U9fhftePJKEkbYDbUUOWn4ZsvoHlQZsMhaYKDpoaMDF+YlgFvd6yURmtu\r\n+8svoUCN5nwugCZbOgqbdJSFFfMINJM/0kc/ASC3KQATmqo1nAuyRwwUJDTJ\r\nXx0TQMLh9d8tDH9cMxO5B/iduortJvRqX3rqXrZR1vziMyVk/cwWwegr/j9R\r\n8fqN+/UyvSVO4Uej3LT8x/b7JstxpNTiIeE=\r\n=vdYp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"776656b6e0cd0fc49a52b734702bc77110e483f1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"3.22.1","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.5.0_1658868731005_0.8204679134320054","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@opentelemetry/core","version":"1.6.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.6.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c55f8ab7496acef7dbd8c4eedef6a4d4a0143c95","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.6.0.tgz","fileCount":426,"integrity":"sha512-MsEhsyCTfYme6frK8/AqEWwbS9SB3Ta5bjgz4jPQJjL7ijUM3JiLVvqh/kHo1UlUjbUbLmGG7jA5Nw4d7SMcLQ==","signatures":[{"sig":"MEUCIQCegTkvRZ4kKPYq6ernWAvjmAabQmFc4mmeC5E6b4zEaQIgE2fSjw0nP2YmkW4xY4Pak7xl0UWu2CgqxuBiydv+tDo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":793920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBmOAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFow/7B2hE1wquU1i91wG9VdRpMMq5A/lBDj7U9UOdEK3ooWvxt/ju\r\nnHmue5ao+ebujoD5wXfx+IatY5+fjxXbxB37Gn1YQmvCRvB+BJlacWkwFczp\r\npiO4Hi1Gl1iZgbL9eiMHFGsRFTDsZo2g7KffQFmHaKmAoflVCE42j9ozn/FA\r\nQkJ/Yclj6OfQj+mkJ/+jYRDCsaLEwjGS7/VudNgW/7eLNmHL0tM5LWi+UE98\r\noV7EKn8kN2R/A2AoGFcpNV8nKeW5aMpa+1Gh0UHmgYkWFLxyViYxzWQ1lXMT\r\nvMBcJdMI+f2+eZNkgeYUlVtPK80AdZt4JOBF9wnCrOq48BhCj6cEbKHVJl27\r\nIf+Qi2i7WM1eajkXcLlJ2xt6xIXXi6zotYmHWlWUnBZ1AwLTjisRiw5srYa5\r\nM6vpEYLTOSWFWI0wwkT62B6BjLrlo4mvs4MfAxygjZmej9eC4xfaEocF5PNY\r\n9IhTcVuGwNqO5b19cItuejRq4YFHQum2yId/VjPZeAoZ109rioPX5d0edtQu\r\ncIf7V2wYnzt7qEXxN1x0EpIMHLu9qWtzOxLC/uuVrIAAfgqpAKWPUJtJwVQy\r\nP1MvglXv2sJeYLhBHH1m7C7WHQtH1avddVjE2oYfh/xk0eFT3qZ4Aso7Z89i\r\nH7FT8RRJjIFyaTzneuA1XCOrorD9ny+6Pt4=\r\n=hJ25\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"a5abee69119cc41d9d34f6beb5c1826eef1ac0dd","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"5.4.3","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"9.1.1","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.3.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.6.0_1661363072398_0.48965827390282124","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@opentelemetry/core","version":"1.7.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.7.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"83bdd1b7a4ceafcdffd6590420657caec5f7b34c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.7.0.tgz","fileCount":435,"integrity":"sha512-AVqAi5uc8DrKJBimCTFUT4iFI+5eXpo4sYmGbQ0CypG0piOTHE2g9c5aSoTGYXu3CzOmJZf7pT6Xh+nwm5d6yQ==","signatures":[{"sig":"MEUCIQCBMA0+Ws4pw5RzVJM1nnLXFKOqgKG8iLBDIskf+5JFMAIgFZvYU06j/+1o/catDW412pjziWhVjqRld7LQH7YVoFs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":818317,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJGi/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrveQ//ZGxGFTrNZeBQwfLFvJUbQIve1rie4WALxFOrkowIaO8/cBiP\r\nw1HrZqMv76lKoPqnF08OWm0uDriiPyjJz3WCJeGtd/O2BuAJmu1OH3lj2mu5\r\nVbjiage6xhd7LOQQQo3MGu9nEC+KqcEP51v9jxSfSUTAXnkYTri3259p0IUz\r\nPm5OWhhCuBC0BTtY9MbetGxLUnQtt6KoMlQojD9RZB1WL3P6W/btXj0msnyb\r\n2mF/DTp3sAdro8SjaxVxCON6nD4R6KTvpDX30v8Fj/hiYZugAwn5/j964xF8\r\njvrMCTZyO+kj091RFCnVg/LdI90ssmhrt0U+QGr2/xfcRSitR/MTmlZ4dJuK\r\npXH3j5jMOnuF+L+HkUYExGjgTjSW/kGYXhopyNFd4mGAxZrtbifTgKm3m/Pk\r\ntgGJQUQXZCkejj6DSnP/uail5oTPVH9dpN5FGJMwkhwoonB5ifMq+EK1l5dm\r\nlGGZ7pI+/jlJtBs8YIJn2u/7ms7QG8g3KqK4nXU16kJCgAM7H95qxWNyFg/F\r\nY2YhVwI51g099wnq/hQRumerGSDuA3rIenltCs3fORFXmeQSYlq4HfJsBlor\r\n9BeKEKjWzItMNNCBnYrq554aICJXzibTCbiaNj3SJ6FIunydzzz+2kaM+mRj\r\n30jaDCr/QBdLb2JuVLF+ngxd8SbKgwquQlA=\r\n=cxCh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"ad88c3d9aa0100fe259b93f4b660e84417b757ac","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"5.4.3","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"9.1.1","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.3.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.7.0_1663330495221_0.5570015276594658","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@opentelemetry/core","version":"1.8.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.8.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cca18594dd48ded6dc0d08c7e789c79af0315934","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz","fileCount":444,"integrity":"sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==","signatures":[{"sig":"MEYCIQCInH/Sj1Z4PxgKOganTrl76PT+v7idvZO7o10dU7cRZgIhAMzyn12OZRYdhfankFe6YbFRhrkb1YIVVAHpCTSFwCXf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":832930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbANaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMGhAAhAkJiecHXq5GijkJ1ac628ZQCMGp8KXdNVQKk0/XqruVxBNA\r\nayN8evaYLIaeD8XHm0p0hhDgGrOxJVPtyiU+2cxpnfhgGbn9Xf8POVcJqHBb\r\nvIf0HGVKQ5n9/PBe/QVdnkAw13o/TTtiOL44oJ/JlYCINQeeOqdIeCt77Dji\r\nrpbxp33J82ZS+aDt+iK5qEa7de12y7ETyS4ZjB9s+BH+KMcRNfncgJ0jOLz/\r\nxxeXMP8AUGr4fFckyjohpMkEW1GcAt4GL5l7wypvxGcrcipOi5ZRsyHF4QGm\r\n482BdFrHBG8bqZcovxxNg69cMKZYxgg2XiiIzbZ+WbuKhwVAfzB2PNMVBNB3\r\nRTMl+Le+VLMoVTP2u0Zob32w9+Kq841akpSMc6Ukts6Fcbf8Etjny8whje1K\r\nZ7VfwagiVmkonG07GZW78G1JidTTv31DZEFQiyBu5V7/cjN7o7YuOsierxeI\r\nDDFdg7K+ZZYiKDY6aKQ3mUJEb2G2tkomdV95oY3ZJkwvgawtXup8oHxX3Jsm\r\nxi6aZ6OKDLeNPtX5LnqY8wxEshQVapV4CzUHaKB56Xl8p9FZs7UlrJEEZ8qV\r\nG3A1ObBfNRGz7TJfk8/RbeC99p18iUyP0/v0jF+Ruw6t8PFsb/kE/ozEq75R\r\nByOQ0VGqP/CXjlcyBrT0206GAcghkw/JVBk=\r\n=6MD9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"7972edf6659fb6e0d5928a5cf7a35f26683e168f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"5.4.3","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.4.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.8.0_1668023129876_0.9986599370220579","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@opentelemetry/core","version":"1.9.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.9.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5b1d87882a9a76cb3dd7703d6341f21a1ead9368","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.9.0.tgz","fileCount":444,"integrity":"sha512-Koy1ApRUp5DB5KpOqhDk0JjO9x6QeEkmcePl8qQDsXZGF4MuHUBShXibd+J2tRNckTsvgEHi1uEuUckDgN+c/A==","signatures":[{"sig":"MEYCIQCUeduN2A1ONNABRrEIziYgU22GItY/7eVLe/TWQCtsFAIhAKyme7IpOSWSKQx2XeILtG0GwqiTWeF+6d1YpgkALm3e","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":839321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvy4kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmom9g//eAQ1bj/6HZePTqnAOvaYQq0T/2hhmrd/33iZFyab+eJAKO8L\r\n9eH4VRWJ5pf/UhFml/QrAkm0WuRYKcZW8lOGsIpKkK44k1FOePCX2uMEwvOf\r\nnNyF7o0doAMaCCQCvJts6v6iuRKR2OebuNY4aIQUXccc0RaoSaViJrTym6DL\r\niuojk3zkDZMXnBSmnHtBpmoTCBSg3+kaEv0jzL2V6a0XVJIezOUlogudCq9B\r\nYXHGuVDPNkc9WKB2Dxra4rMOVf/BKQpzxgybJZ99oDG1WrbfJ7nJmcnykfOq\r\nFAycHKjR20MsXVxysGzfvwUS2OaC56TGJKQTv3zwjmg9t1WDO+FQzkKVN2Za\r\nEbDLdiu+Rz00AC3dixrjQnandDiZuxUTcb7iTkSusoDW3NdiSBTwfNkGfmBh\r\nrj5VVzkISuurydV3RjqMl4KXKojU6BZPjqlPBIZBZzPAf//qBjO/1DpseYB8\r\n5jwdXLHKY5yyQ34TRNipHBROcJfnQs6iOcrUhZYXyKXgCNQcwMsPD17s2hgw\r\nqN3jkFRt2mONfreVgWlcXp3XlQYle/xkhAGP1o2Gtfm/2u8/QoSomeXDH843\r\nXqTHj3soq5K0hDru7NzaBWmtDmvqyKppP1JY9c31QgS3hO8xq+3bFHn1z+NE\r\nM06JLqwHi0bGhedw7B4Jwt2Wyvrdma5eeac=\r\n=EBwS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"08f597f3a3d71a4852b0afbba120af15ca038121","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"6.0.3","mocha":"10.0.0","sinon":"15.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.9.0_1673473572435_0.0041613728052112275","host":"s3://npm-registry-packages"}},"1.9.1":{"name":"@opentelemetry/core","version":"1.9.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.9.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e343337e1a7bf30e9a6aef3ef659b9b76379762a","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.9.1.tgz","fileCount":444,"integrity":"sha512-6/qon6tw2I8ZaJnHAQUUn4BqhTbTNRS0WP8/bA0ynaX+Uzp/DDbd0NS0Cq6TMlh8+mrlsyqDE7mO50nmv2Yvlg==","signatures":[{"sig":"MEYCIQCPr4FPXBsOBiPhKLEWqUgoVEMANvh5XI1iONYODi6viAIhAOsc3iQ0wRDksfDoSWf0k5pTniMp5iw3zw6J003K8G1I","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":839321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1+J+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYdg/8C0ZGXe7/q1313R6deQSNSLi1cJd+PeBDCDfLGSYqaunb9V7y\r\nY5e/bSCVoFF2iI2l9zf9+bX+s10EaIdERA2PGb6fXyc/KvXHqQrQNOoA9Pkh\r\nLsrKOjhW9HCIAygDtXBgtBJnbxxBdA9TAgFdoPspMw3JFhkf94xSuEP/0ZYV\r\nkwtxBXRiDvRm6kBXDFEUXxvPu/+WGfW//pFfDHgmU//9fKV59+pxVEY12v1f\r\nhhLT5e8PzMCkclAyac3ui19/IDn4VCC5bGyAj6OPZ2NHgFxup4vSJQNEPvZp\r\nUgpM3XqhdjKWtJCgjMH8OW1HcVNYawWpI0fxt0tvPPzI9exiopOcUqL4x2Gv\r\nZoQjKnvpBjWM3GxQUE9mTCUuSe7fgw3+GHGhIOS8y/RrNxql1xUa60bmmTee\r\nlEN/wSXnSMyrunbmCJVyX7JeQRvaPFYDlzdPBnrovBcGxbX5sJC7DsKLyCC9\r\nhsgcJl5UIB/8qiWRPrLK4u6BdTTyOESuAYmUICfX1qWxUnxpMu1oYhPO5BG/\r\nlqSDOdxHDKYm5gWfv9k4BD3uNjguP7/3yXE0kjrmXZlssowEYynAcTq9soLy\r\nJyAaKEZ3wD9T95TmqlnEB+NQGZExq6d43dyiP6+PeuWWTASTrhZt0tdtEwu/\r\n7+N4PS9k1y1OEFzqi9xuU5+FPBsvWcqOJa8=\r\n=qH7L\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"279458e7ddf16f7ddca5fe60c78672e05fafce66","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"6.0.3","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.9.1_1675092606491_0.47935711982461693","host":"s3://npm-registry-packages"}},"1.10.0":{"name":"@opentelemetry/core","version":"1.10.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.10.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"12626d19287030a16ec1101f8efcacb5198a89bb","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.10.0.tgz","fileCount":444,"integrity":"sha512-H5/mfU3TsEBe/cnnLu3VCkzjqyRARmhxQGsT64KwafxjzkDh+c2Bk4n140Cg/xhgrjK2sFsxbJj6d0xZlVo/OQ==","signatures":[{"sig":"MEUCIBxV24AY+9jPyrgwfvJMp3jJQuUe1odgdGKezsQN09i/AiEAyn9TMcAskVH8b5xOtkjV7eaVV1IqNvvIUIrWaexdGtU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":843353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkD0cBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqSPQ/+LoIasq/qjjvav5LYSwKOHTZJD2UMeEI2rGIOwKz+h3ZV2H/c\r\n86iJXe6VzUOPOK+xsegJ0e5XRDcQy1xGGgUQYqC10LEPV3MGneMrVqFABIx9\r\nK9931XBT7CNNp9DYm7KlXi1t22R9xUiEDa9ElbIDBZkRxQ/ONIYxEuqV+Zu9\r\n5Tj9/cpQwe7K5HTQjEJ3CtgwSIhkdfu6q+x19MhiGuKhDr3pbrmMp7bLeMCX\r\nsVarK1whsBpg2UZ9UuoMruLFkzL+uXwdKZd2/G9TQhZRHJm1lkrjklITGSHf\r\nkFNT+XgxIrow0WXESmPdqIUsOQk/I0/4OUrmbDPv/P01QtGgt8v7ozFiZOa3\r\njtMYa2DxhiUj13+kgA2uVT6bhwzKZtEJvsgJqPEP6i1Ouccwz8w5YXTPDxxi\r\njUqSMRk5GM6obyJlyoGZvKSH0qJSd++UzknSFyt4dwpow5aroz/iHQZYSZp8\r\nzC4M8xgAv/I7Qhf8HT8Kn1Sd7pkuybMS7W4kOx0aqne2MD8k/uIQdx2zHo9S\r\nVRm4fATnGAXL1D8BADSCvTjIPpcBRtIBUnF7HZe1Q/a0wr3vA3gpmB6yfkTC\r\noEGCzS0I6X4YtLTU1Pz+BlgSbAzohnxBX6vSB64xuijDkxgJJZ8ihjwDxH+o\r\nzs/0h77C1/LfedXz/gUGfIzR6BV1Ba8sg8w=\r\n=/66/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"56e6b1bb890f844b8963a146780d0b9cfa8abd0d","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"6.0.3","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.10.0_1678722817575_0.42449932905769017","host":"s3://npm-registry-packages"}},"1.10.1":{"name":"@opentelemetry/core","version":"1.10.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.10.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"057a621db13589bad5618b786bb4f0a643bd4323","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.10.1.tgz","fileCount":444,"integrity":"sha512-uBZs9poKMWX7WWHsRfaGHqvrn77D9EU5LwU8Ge3YKD/Su5Gy+T1v476l49nl1UOzEMNo4cISao3nIqQVsABB8g==","signatures":[{"sig":"MEYCIQDs2BPITQkcqXm8tyC4A7JDYrERmrZ6pe+3tUXh+NbgZQIhANQp/dIApUDRZ4B4or9rLxXxH0kjk6nGgUd4FL88O357","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":843353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGIV3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpIIw/+I0cX3NlYcaemAZrUteffFKZHhfBVRfoV4zmuiD4HZsX5URMz\r\ngWfoq/GgkEU8x2T1hF1AZYkT7LqCjNyEgc7utCxHDQklWJV1kAHsaAvKjZ/Q\r\npjGYMPhdiMYcbww+G+148oeWiGoPEY1IRmJoGANiHaoB/goxF4VkYVvD+Bv+\r\naaz+Nxdk+u2zAA3GOl+ttfthqvh8M6EjHXRn2fSzaH3NTxEOmCiurIUrxHg+\r\nYDlIrsQhi64/jsI68coYaomRQWCRiS5wOV8gMMsjHXWJkwt0CfLULY5lF/dP\r\n5QZkl8a1v6BlM41CJqGW7xaYJl+k9SfSmx6FDkWNRfg+MwhkRqPXK44IBlft\r\nSFwdasnrzK9ekWIX1oAn7DySSmb9FPTTOehrA9p+W4ZAP6KH5CT0Cwks7V2x\r\nfCcpA8sFFbItyqV6u22Iq5OpNB2wD+UpkJ/cAWeANbcnjJ1B0ZgQVxRymiXr\r\nj/dEp/F1ifWtmX0mt92Iz40yg6LYzWBStimyzjiHWkQ/HxWytc057pQ7KVXY\r\njZXkgmcFpHJmwr41OkuzgJp3d0/i2J5VFAYmhscZGnkjZPOtLW6KLAY4aD0U\r\nGEehg0zUUqpOhs313+PCwpZ+/cFE5fiittQaEUnlR/5QoDt74pPe/9/dUthW\r\nl3eh1DBXGoz2glqdSKkwrOxasnpG1VeNDbA=\r\n=BJj1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"486df99906958de9b8b666839785b00160a6a229","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"6.0.3","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.10.1_1679328630910_0.931070355512154","host":"s3://npm-registry-packages"}},"1.11.0":{"name":"@opentelemetry/core","version":"1.11.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.11.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3141a0e96a9ade6ee2dcdd794fd0b014e1013dde","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.11.0.tgz","fileCount":444,"integrity":"sha512-aP1wHSb+YfU0pM63UAkizYPuS4lZxzavHHw5KJfFNN2oWQ79HSm6JR3CzwFKHwKhSzHN8RE9fgP1IdVJ8zmo1w==","signatures":[{"sig":"MEUCIQDp1PQ09eUmFWV92Z926LySdzwMPBQPwHe4sZYwyIgnGgIgYSzRTw+5Q5VBiTIPLiHAfxOb2zUL4eIW/jsYUCMUXjc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":843353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJassACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4ew//SGHyILH6rg6vYb69pbcTZ822noVJEnvPBqZUWQiLyJLxNJ3D\r\n4a4Xkl/m5yK8VF7U2eC4o14ooho5DjSiswARuGUuUbXzYA/HfJNnvDRRkp2w\r\n8loPDJ44WreJNWSF/BhsIE4melB91PY6ZTQlUMB1M3635XOGce3ffZzdwFxi\r\nEIjIupkD53G7VaeqbdN4zxcEp9t7F6xFKMPzSE46cPSQLXpHkoNriw74e+7j\r\no4pKzcJm9MBm7JgjfhuKgyi1TvAvArEyNhaYg4EAjdA84ftvfuuDo3565XRr\r\neqHtaoU1/+wC/h6szD3qq339Z6eXzbbgh33VPJLyBfcj9360Wx9aB86GzCTU\r\n+8/80pehvZKcOkXFxLAv3OUBI1bkDa2QsNBclcbuC3uZOtmv3cof9QSYh7Bh\r\nTnPDSYHWupjLkNg1hFtwcXbrSuKj4Xq0K2RNmyAwGoDz/Bvzwl/z6AuvpXiv\r\noclnJLmw+8QkIGDVVsapM8ZVrTmpu30BhiBn84cKa7cYupZEFqzCgzeiz7lR\r\n8nBlkkldYxJaett1Okq8f0R4i61svQibjykhVM1OSemSPD6N4LKFrpxENi1O\r\nP/CONVNvjeyrsb7VuIxXoRX4I2pjYnbX5m4DYsTtH0ZskI2aFYRjLEva/6gJ\r\ni32KoPEKsrORhLLNl4h2e55h9mYQULZRDIA=\r\n=VMq4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"1328ee04ae78f9f6cf143af7050c00aaa6d2eb3b","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"6.0.3","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.11.0_1680190252375_0.42071987638372343","host":"s3://npm-registry-packages"}},"1.12.0":{"name":"@opentelemetry/core","version":"1.12.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.12.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"afa32341b794045c54c979d4561de2f8f00d0da9","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.12.0.tgz","fileCount":453,"integrity":"sha512-4DWYNb3dLs2mSCGl65jY3aEgbvPWSHVQV/dmDWiYeWUrMakZQFcymqZOSUNZO0uDrEJoxMu8O5tZktX6UKFwag==","signatures":[{"sig":"MEUCIQDJ5IsTlrio5D+gn+aby3j0YCQ8M8FWN0y8fh1BKK2okQIgQtjyRO/EiAVcrZkmooPd1YaWm9NsWqz8ikOiscQ+Rfc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":867127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOEYpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaWw/+PWEY3Kje2KgwmORslJVyiC8v3FmRz7oBXQ5NDS86w0KpoXdG\r\n+QaohTtodHhXMueu1Mgwj8SPi5qt2wdUEcNNkipR38ilSCAx8k0aFkUsRmmk\r\nrnEyZ/9rT9z5ug/20+8pZUMABkSAwKpsgu6W5K3JInJDaeP+hHk2LPNIBFTI\r\nefK1TRdT+coVBiYufdaM4YehW78OHfWQIsMAXijUZOYn/NE9/kLCld7plwa+\r\nqWz7otH+ce+PtXe6CDu/IWrA44fQx2m+py2xb8QSv8NordJEdz4pBxQC15pP\r\nqjQ2uzVR0xTN19pnUHPsUxnTnhmI/Ofrd5rvHhVrNPZwVwIgwk/7hDecYQRo\r\n71FWGRxpZHiJqr192Fjpd7a9r2mPQXH14Lo1Zuys6Fia2KLHYgF5AA2oz1LV\r\nsjCZAgxTbHKQLFkFWOp41G3KIpJN6Y3fPbgml3aOGZdpXQwwEQ5r8MXqBd+7\r\nWyvG3MJp8xEb7UhjiqsmHnOmyYL+ncOiwQWetOAjJVBEtzDzj137ujbowwkw\r\nUFPEy0XksOHpIuA+eSFRLIBCIJtXFwxReXd+uEQFPDvtRDku4oxcYe+cI1iw\r\nsVedya6AJJML4yOktdXEl3C8+FfS5wyVIzKr4ST2kmv+vt7DrYLTASE1so3E\r\nQYkimymg5qtzzoyKVupMFaVZGvUlGxbgSxo=\r\n=YF45\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"a04090010ee18e17487b449984807cc2b7b6e3e6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/semantic-conventions":"1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"6.0.3","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.12.0_1681409577275_0.41828643108453334","host":"s3://npm-registry-packages"}},"1.13.0":{"name":"@opentelemetry/core","version":"1.13.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.13.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7cdcb4176d260d279b0aa31456c4ce2ba7f410aa","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.13.0.tgz","fileCount":453,"integrity":"sha512-2dBX3Sj99H96uwJKvc2w9NOiNgbvAO6mOFJFramNkKfS9O4Um+VWgpnlAazoYjT6kUJ1MP70KQ5ngD4ed+4NUw==","signatures":[{"sig":"MEUCIQCbZF0e/qPwjeUM747R8Z3n9tJURt8KQkm9t+9BAwBtzQIgWS0w8ncoexKTSHrSxdmOuHmFlHWK1SPj56mdOan1Vcw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":872867},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"8fc76896595aac912bf9e15d4f19c167317844c8","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/semantic-conventions":"1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"6.0.3","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.13.0_1683811802165_0.527891352412807","host":"s3://npm-registry-packages"}},"1.14.0":{"name":"@opentelemetry/core","version":"1.14.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.14.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"64e876b29cb736c984d54164cd47433f513eafd3","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.14.0.tgz","fileCount":453,"integrity":"sha512-MnMZ+sxsnlzloeuXL2nm5QcNczt/iO82UOeQQDHhV83F2fP3sgntW2evvtoxJki0MBLxEsh5ADD7PR/Hn5uzjw==","signatures":[{"sig":"MEUCIQDdr7MPTCytU1Qwf6YYvjZhrcJu/bPn25dlIqKnHICq3wIgGRuZ4F88Ed+3ulKfd3gcx6MlEiiSYNHy/QxscLdwiMg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":872867},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"edebbcc757535bc88f01340409dbbecc0bb6ccf8","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/semantic-conventions":"1.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","lerna":"6.0.3","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.14.0_1686031251581_0.2615786670239697","host":"s3://npm-registry-packages"}},"1.15.0":{"name":"@opentelemetry/core","version":"1.15.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.15.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2ba928df0443732825a72a766c2edae9a7f9863f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.15.0.tgz","fileCount":453,"integrity":"sha512-GGTS6BytfaN8OgbCUOnxg/a9WVsVUj0484zXHZuBzvIXx7V4Tmkb0IHnnhS7Q0cBLNLgjNuvrCpQaP8fIvO4bg==","signatures":[{"sig":"MEQCIE83D9joSwwiPel0cv9nhgU1NZ4HVVJhEkBFaZBOJH0XAiA1yMRTyxPX3gOsma4uJyNV+xRiBM4PWuL2vdS3KxHYPg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":867698},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"06e919d6c909e8cc8e28b6624d9843f401d9b059","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.1/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"tslib":"^2.3.1","@opentelemetry/semantic-conventions":"1.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.1","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.15","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.15.0_1688642824984_0.5111917940611308","host":"s3://npm-registry-packages"}},"1.15.1":{"name":"@opentelemetry/core","version":"1.15.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.15.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a580a547c1006cc411ae7aacd4991b52555b3f1d","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.15.1.tgz","fileCount":453,"integrity":"sha512-V6GoRTY6aANMDDOQ9CiHOiLWEK2b2b3OGZK+zk05Li5merb9jadFeV5ooTSGtjxfxVNMpQUaQERO1cdbdbeEGg==","signatures":[{"sig":"MEQCIGnhThPde1lvJLOkPWKaJXARLS8uNs/cHXcQuBWnUGD3AiBVp3zRnHuSwZVQNKAeQhnvHoTyb4mLsiGTRENG8DMJfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":872907},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"9f71800fdc2a5ee5055684037a12498af71955f2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.3/node@v18.4.0+x64 (darwin)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.4.0","dependencies":{"@opentelemetry/semantic-conventions":"1.15.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.3","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.15","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.15.1_1690209164255_0.559410177694484","host":"s3://npm-registry-packages"}},"1.15.2":{"name":"@opentelemetry/core","version":"1.15.2","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.15.2","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5b170bf223a2333884bbc2d29d95812cdbda7c9f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.15.2.tgz","fileCount":453,"integrity":"sha512-+gBv15ta96WqkHZaPpcDHiaz0utiiHZVfm2YOYSqFGrUaJpPkMoSuLBB58YFQGi6Rsb9EHos84X6X5+9JspmLw==","signatures":[{"sig":"MEYCIQCIHm4RQZtw6pIMgPNUwRdq5drbgWpR0fJ3a2fDktW3fQIhAKFWgjqDoZH/MrdR7dAi2BS9v9D4UKq8fowCC0Nju5Pj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":873183},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"48fb15862e801b742059a3e39dbcc8ef4c10b2e2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.4/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/semantic-conventions":"1.15.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.4","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.15.2_1691500863717_0.8949148368684461","host":"s3://npm-registry-packages"}},"1.16.0":{"name":"@opentelemetry/core","version":"1.16.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.16.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ebfba199bb9b055bbfe0887fc84575432a84f97f","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.16.0.tgz","fileCount":453,"integrity":"sha512-JMxz7kzAqmIDUDEpoRrumHk257vrA9ZGVdHLB829gu6i/ryKlnjXIzJk86pgjhmxjLMX43BY6J0nbzOhy0QGtw==","signatures":[{"sig":"MEQCIB0EuYgaajWi4Hz/Ww99xG7zCx/8yJ/iVVinoYF955v6AiAbgU/Cua6hH79ivUQOixwF8UjdAdbPdrTCMR3mMnOtzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":873219},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"5fcd8cf136e2235903dde3df9ba03ced594f0e95","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/semantic-conventions":"1.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.6.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.16.0_1694434465313_0.9588681658335632","host":"s3://npm-registry-packages"}},"1.17.0":{"name":"@opentelemetry/core","version":"1.17.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.17.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6a72425f5f953dc68b4c7c66d947c018173d30d2","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.17.0.tgz","fileCount":453,"integrity":"sha512-tfnl3h+UefCgx1aeN2xtrmr6BmdWGKXypk0pflQR0urFS40aE88trnkOMc2HTJZbMrqEEl4HsaBeFhwLVXsrJg==","signatures":[{"sig":"MEQCIHVj2b364hwFED/ASqYoGWaRAkHrWkHcTXzf1xbMC59RAiAHk6BWiwsS1TeVCS7ivGCB6iZfqFqvFc5fNYiQvwDRag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":873219},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"faf939c77591f709afbc23fadbe629c9d3607ef6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/semantic-conventions":"1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.7.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.17.0_1694524348110_0.7903063955116596","host":"s3://npm-registry-packages"}},"1.17.1":{"name":"@opentelemetry/core","version":"1.17.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.17.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"10c5e09c63aeb1836b34d80baf7113760fb19d96","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.17.1.tgz","fileCount":453,"integrity":"sha512-I6LrZvl1FF97FQXPR0iieWQmKnGxYtMbWA1GrAXnLUR+B1Hn2m8KqQNEIlZAucyv00GBgpWkpllmULmZfG8P3g==","signatures":[{"sig":"MEQCICZlHBxTzU7OYyqOOwCPLgT8EDIgURfVQdC0awe7VTv4AiBbSSm77GHXa4IOlaZK/qma67/XdLTjARpWl0fEKjU4KA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":873219},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"f8e187b473274cc2011e7385992f07d319d667dc","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/semantic-conventions":"1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.2","@types/sinon":"10.0.18","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.7.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.17.1_1696947491640_0.13319410566604262","host":"s3://npm-registry-packages"}},"1.18.0":{"name":"@opentelemetry/core","version":"1.18.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.18.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"18d14d35352d7900c7785a769dc7fecf33c76f9c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.18.0.tgz","fileCount":453,"integrity":"sha512-PCW0UCIazJRw4Q8m3Z1A20kJqKTCB4Ob02bFjov3sHozspHGnY21O7T8Q20XKe168N4Px+n7Mt4dkcay3fy92Q==","signatures":[{"sig":"MEUCIFTKibCU9fmpbrsv6g+MNguUjU+5zvJduyxDXoT5AR2oAiEAu5OjOeQaoj4KhKM9LZdNYtlSC5xwUlqgjc+h+mXCRw0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":872900},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"73b446688f10fd8dc4cf403a085f0a39070df7b4","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/semantic-conventions":"1.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.3","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.18.0_1699353882470_0.21798738832454378","host":"s3://npm-registry-packages"}},"1.18.1":{"name":"@opentelemetry/core","version":"1.18.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.18.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d2e45f6bd6be4f00d20d18d4f1b230ec33805ae9","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.18.1.tgz","fileCount":453,"integrity":"sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg==","signatures":[{"sig":"MEYCIQD2oxFr5DnBMmUf5Id41py+E68KF+6ATRlf4I/08O9J8gIhAKxARt8bcqhQ86m3D6AwxHLqyPiThZBhFwpjdHLqaEqC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":872900},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"f665499096189390e691cf1a772e677fa67812d7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/semantic-conventions":"1.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.3","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.18.1_1699466944009_0.27354506748361485","host":"s3://npm-registry-packages"}},"1.19.0":{"name":"@opentelemetry/core","version":"1.19.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.19.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6563bb65465bf232d8435553b9a122d9351c0fbb","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.19.0.tgz","fileCount":453,"integrity":"sha512-w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==","signatures":[{"sig":"MEUCIQCueqzLaYLji34HCnF1eCBz1abuVreQHeVJfnprbyikBQIgK8yryHDRlEB6pJS4iQ7malvnpwQMctxWVLnOVJbNekg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":872900},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"d3c311aec24137084dc820805a2597e120335672","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/semantic-conventions":"1.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.19.0_1702557322886_0.6983079507691856","host":"s3://npm-registry-packages"}},"1.20.0":{"name":"@opentelemetry/core","version":"1.20.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.20.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ab1a8204ed10cc11e17bb61db658da0f3686d4ac","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.20.0.tgz","fileCount":462,"integrity":"sha512-lSRvk5AIdD6CtgYJcJXh0wGibQ3S/8bC2qbqKs9wK8e0K1tsWV6YkGFOqVc+jIRlCbZoIBeZzDe5UI+vb94uvg==","signatures":[{"sig":"MEQCIF6CBAOTl+2rYMewo4iAqOOuwMARKhEWDeAI2DIZ1iP1AiAFmJbPTxZ4ds0rGpSIgnvWH8VNH2ROCpTSeHJa3HE3ZQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":876479},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"57008533aba7ccd51ea80f38ff4f29404d47eb9c","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/semantic-conventions":"1.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.20.0_1705313743036_0.8862623632958462","host":"s3://npm-registry-packages"}},"1.21.0":{"name":"@opentelemetry/core","version":"1.21.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.21.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8c16faf16edf861b073c03c9d45977b3f4003ee1","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.21.0.tgz","fileCount":462,"integrity":"sha512-KP+OIweb3wYoP7qTYL/j5IpOlu52uxBv5M4+QhSmmUfLyTgu1OIS71msK3chFo1D6Y61BIH3wMiMYRCxJCQctA==","signatures":[{"sig":"MEUCIC2TydPJ42No0mzHybi5EmT6qZIWGtzwU4NAKFWUhxJjAiEA/AX0WW29kOwKBiePcxvFWp8EQgsNPV8m39sJQqE1aHw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":875836},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"828f2ed730e4d26d71f92e220f96b60a552a673a","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/semantic-conventions":"1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.21.0_1706249465801_0.23491823652491228","host":"s3://npm-registry-packages"}},"1.22.0":{"name":"@opentelemetry/core","version":"1.22.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.22.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a9f33689acd4703ac780c6595497374e2113c7e5","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.22.0.tgz","fileCount":462,"integrity":"sha512-0VoAlT6x+Xzik1v9goJ3pZ2ppi6+xd3aUfg4brfrLkDBHRIVjMP0eBHrKrhB+NKcDyMAg8fAbGL3Npg/F6AwWA==","signatures":[{"sig":"MEYCIQDzjAK5hC5iM/vqcNHnt+A7gKD5+XqpIu0NTR9N2pKr6wIhAJxNqv79IWP771G9nGoxovNYeA7zdSr63Whyfb8YMXBd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":876565},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"7be35c7845e206b27b682e8ce1cee850b09cec04","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/semantic-conventions":"1.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.22.0_1709198287933_0.0018574755392948283","host":"s3://npm-registry-packages"}},"1.23.0":{"name":"@opentelemetry/core","version":"1.23.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.23.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f2e7ada7f35750f3c1674aef1e52c879005c0731","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.23.0.tgz","fileCount":462,"integrity":"sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ==","signatures":[{"sig":"MEUCIFwQKCPi+D5c5UlVL193KLh6QP+SVLpBc0GIFe+eS592AiEAqsbVFRr8scoK2RuqzzJ+GTkb8Mnoyw25a+uKaAjSX1k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":876574},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"5231aa255047fbc6ee3d6a299f4423ab2f8a5fbc","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/semantic-conventions":"1.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.23.0_1712131801000_0.18584032010372686","host":"s3://npm-registry-packages"}},"1.24.0":{"name":"@opentelemetry/core","version":"1.24.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.24.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5568b6c1328a6b9c94a77f9b2c7f872b852bba40","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.0.tgz","fileCount":462,"integrity":"sha512-FP2oN7mVPqcdxJDTTnKExj4mi91EH+DNuArKfHTjPuJWe2K1JfMIVXNfahw1h3onJxQnxS8K0stKkogX05s+Aw==","signatures":[{"sig":"MEYCIQDnSDpLeaSIEO1xDR9BTZD/oB8hG/unnKqNkTvHdvFfvwIhAM9p3R6EfBciQphgeoBfeilsY9hXAIG6H+GgiG4WAjyz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":876574},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"3ab4f765d8d696327b7d139ae6a45e7bd7edd924","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/semantic-conventions":"1.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.24.0_1713968897505_0.6084065679679229","host":"s3://npm-registry-packages"}},"1.24.1":{"name":"@opentelemetry/core","version":"1.24.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.24.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"35ab9d2ac9ca938e0ffbdfa40c49c169ac8ba80d","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz","fileCount":462,"integrity":"sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==","signatures":[{"sig":"MEUCIQCcbQt91fxCzhLszbWNj11KRyev/6GQ7d3+LoxquFIbvwIgKOyNE84d8ozLyHqGEFYQKai25bXIJrJ0K7uVgnxJYQg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":876816},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"41c2626fe0ed03e2e83bd79ee43c9bdf0ffd80d8","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/semantic-conventions":"1.24.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.24.1_1715093554020_0.7142893600601368","host":"s3://npm-registry-packages"}},"1.25.0":{"name":"@opentelemetry/core","version":"1.25.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.25.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ad034f5c2669f589bd703bfbbaa38b51f8504053","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.0.tgz","fileCount":462,"integrity":"sha512-n0B3s8rrqGrasTgNkXLKXzN0fXo+6IYP7M5b7AMsrZM33f/y6DS6kJ0Btd7SespASWq8bgL3taLo0oe0vB52IQ==","signatures":[{"sig":"MEUCIFEBfqbBcczub3WmGi+L4xr5G+a+5UKjlHxgTt21TmcSAiEA3rlCt2TQNHc18tMv9wcKC6zvQ3WbNcmoV3QmuhGtW0I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":877131},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"c4d3351b6b3f5593c8d7cbfec97b45cea9fe1511","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/semantic-conventions":"1.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.3","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"9.5.1","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"17.0.3","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.25.0_1717607734445_0.5425212494871587","host":"s3://npm-registry-packages"}},"1.25.1":{"name":"@opentelemetry/core","version":"1.25.1","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.25.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ff667d939d128adfc7c793edae2f6bca177f829d","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz","fileCount":462,"integrity":"sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==","signatures":[{"sig":"MEUCICi19BiwHva23i39zqQGklR9ltkB8cWvr63wo3YPhDORAiEAyS+NynOecoaefXZVZ2e+Tka/swQ6Wya9N7jsxxF2IA4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":877131},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"0608f405573901e54db01e44c533009cf28be262","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/semantic-conventions":"1.25.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.3","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"9.5.1","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"17.0.3","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.25.1_1718875149078_0.33184202871252877","host":"s3://npm-registry-packages"}},"1.26.0":{"name":"@opentelemetry/core","version":"1.26.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.26.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7d84265aaa850ed0ca5813f97d831155be42b328","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.26.0.tgz","fileCount":462,"integrity":"sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ==","signatures":[{"sig":"MEUCIQCxMZt12wQPfPEMZAyDgiGfTpP1FC8A8Npxbj4wFLrfiwIgDGp649HhZKGPAyrzgPLT0BOh+00y9s8no28uepefu5Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":908101},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"720bc8c70d47029cb6b41a34ffdc3d25cbaa2f80","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc mocha test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"@opentelemetry/semantic-conventions":"1.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.4","lerna":"6.6.2","mocha":"10.7.3","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","cross-var":"1.1.0","ts-loader":"9.5.1","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.7","@types/sinon":"17.0.3","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"7.0.0","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.26.0_1724836626112_0.32887955839862815","host":"s3://npm-registry-packages"}},"1.27.0":{"name":"@opentelemetry/core","version":"1.27.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/core@1.27.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9f1701a654ab01abcebb12931b418f3393b94b75","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.27.0.tgz","fileCount":462,"integrity":"sha512-yQPKnK5e+76XuiqUH/gKyS8wv/7qITd5ln56QkBTf3uggr0VkXOXfcaAuG330UfdYu83wsyoBwqwxigpIG+Jkg==","signatures":[{"sig":"MEUCIQD5g87gqE5+W4/EX4K95Ud6Qq8EDfoOkjxvDIR7aS/eYAIgANcdr6IpUAPyj8SFUNeCX7ylEcTDIUzjnmX0PMtQKfs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fcore@1.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"unpackedSize":908565},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"eb3ca4fb07ee31c62093f5fcec56575573c902ce","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc mocha test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"@opentelemetry/semantic-conventions":"1.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.4","lerna":"6.6.2","mocha":"10.7.3","sinon":"15.1.2","webpack":"5.94.0","cross-var":"1.1.0","ts-loader":"9.5.1","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.8","@types/sinon":"17.0.3","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"7.0.0","karma-chrome-launcher":"3.1.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.27.0_1729695078367_0.07705641298199817","host":"s3://npm-registry-packages"}},"1.28.0":{"name":"@opentelemetry/core","version":"1.28.0","description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","main":"build/src/index.js","module":"build/esm/index.js","esnext":"build/esnext/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"types":"build/src/index.d.ts","repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"scripts":{"prepublishOnly":"npm run compile","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","test":"nyc mocha test/**/*.test.ts --exclude 'test/platform/browser/**/*.ts'","test:browser":"karma start --single-run","tdd":"npm run tdd:node","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","lint":"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix","version":"node ../../scripts/version-update.js","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","prewatch":"npm run precompile","peer-api-check":"node ../../scripts/peer-api-check.js","align-api-deps":"node ../../scripts/align-api-deps.js"},"keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","engines":{"node":">=14"},"publishConfig":{"access":"public"},"devDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0","@types/mocha":"10.0.9","@types/node":"18.6.5","@types/sinon":"17.0.3","@types/webpack-env":"1.16.3","babel-plugin-istanbul":"7.0.0","cross-var":"1.1.0","karma":"6.4.4","karma-chrome-launcher":"3.1.0","karma-coverage":"2.2.1","karma-mocha":"2.0.1","karma-spec-reporter":"0.0.36","karma-webpack":"5.0.1","lerna":"6.6.2","mocha":"10.8.2","nyc":"15.1.0","sinon":"15.1.2","ts-loader":"9.5.1","typescript":"4.4.4","webpack":"5.96.1"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"dependencies":{"@opentelemetry/semantic-conventions":"1.27.0"},"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","sideEffects":false,"gitHead":"4b1ad3fda0cde58907e30fab25c3c767546708e5","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"_id":"@opentelemetry/core@1.28.0","_nodeVersion":"18.20.4","_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","dist":{"integrity":"sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==","shasum":"e97290a3e36c59480ffb2287fe2713c66749274c","tarball":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.28.0.tgz","fileCount":462,"unpackedSize":908565,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fcore@1.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFc5D9+Q8KSFFqqmWLkorAdhpjNuRJkKGgCjg0cKOmHsAiBnr8cQEAMHc5EIu1VZdilXU30uBUR2yLnd9zGNFY+Vig=="}]},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"directories":{},"maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.28.0_1731926489921_0.4306860148532681"},"_hasShrinkwrap":false}},"time":{"created":"2019-10-08T22:45:09.283Z","modified":"2024-11-18T10:41:30.552Z","0.1.0":"2019-10-08T22:45:09.662Z","0.1.1":"2019-10-15T23:47:18.382Z","0.2.0":"2019-11-04T20:17:22.690Z","0.3.0":"2019-12-13T19:36:44.556Z","0.3.1":"2019-12-21T00:00:28.213Z","0.3.2":"2020-01-03T21:56:48.773Z","0.3.3":"2020-01-22T22:48:01.199Z","0.4.0":"2020-02-05T23:02:58.507Z","0.5.0":"2020-03-16T22:03:17.625Z","0.5.1":"2020-03-20T00:42:51.648Z","0.5.2":"2020-03-27T18:04:01.528Z","0.6.0":"2020-04-02T17:28:22.072Z","0.6.1":"2020-04-08T18:37:32.711Z","0.7.0":"2020-04-24T18:14:44.336Z","0.8.0":"2020-05-12T16:36:33.095Z","0.8.1":"2020-05-18T19:37:34.557Z","0.8.2":"2020-05-21T19:29:57.452Z","0.8.3":"2020-05-28T20:19:33.975Z","0.9.0":"2020-06-18T21:23:30.691Z","0.10.0":"2020-07-27T20:59:10.636Z","0.10.1":"2020-07-28T15:12:30.934Z","0.10.2":"2020-08-03T23:25:34.407Z","0.10.3-canary.0":"2020-08-07T16:47:19.184Z","0.10.3-alpha.34":"2020-08-24T16:44:21.720Z","0.10.3-alpha.35":"2020-08-24T22:45:15.647Z","0.10.3-alpha.40":"2020-08-27T14:23:13.785Z","0.10.3-alpha.41":"2020-08-27T16:08:34.256Z","0.11.1-alpha.48":"2020-09-01T19:24:11.753Z","0.11.0":"2020-09-01T19:32:16.516Z","0.11.1-alpha.15":"2020-09-21T03:29:52.965Z","0.11.1-alpha.35":"2020-09-30T12:22:05.611Z","0.11.1-alpha.36":"2020-09-30T12:38:38.999Z","0.11.1-alpha.44":"2020-10-07T19:54:55.988Z","0.11.1-alpha.53":"2020-10-19T11:48:06.017Z","0.12.1-alpha.54":"2020-10-19T12:49:53.075Z","0.12.0":"2020-10-19T12:53:47.871Z","0.12.1-alpha.7":"2020-10-26T21:11:57.725Z","0.13.0":"2020-12-04T21:26:17.508Z","0.14.0":"2020-12-17T20:52:53.448Z","0.15.0":"2021-01-21T22:19:58.263Z","0.16.0":"2021-02-01T22:33:22.702Z","0.16.1-alpha.10":"2021-02-08T15:50:01.764Z","0.16.1-alpha.11":"2021-02-08T16:17:51.373Z","0.16.1-alpha.14":"2021-02-10T16:05:53.197Z","0.16.1-alpha.15":"2021-02-10T22:17:57.777Z","0.16.1-alpha.18":"2021-02-14T18:12:22.613Z","0.16.1-alpha.20":"2021-02-17T20:51:47.748Z","0.17.0":"2021-02-17T21:16:01.491Z","0.17.1-alpha.21":"2021-02-17T21:16:41.497Z","0.17.1-alpha.2":"2021-02-20T17:37:17.058Z","0.17.1-alpha.5":"2021-02-24T17:19:29.390Z","0.17.1-alpha.8":"2021-03-01T13:38:04.226Z","0.18.1-alpha.12":"2021-03-02T13:53:42.795Z","0.18.0":"2021-03-02T14:00:58.711Z","0.18.1-alpha.3":"2021-03-02T19:09:18.396Z","0.18.1-alpha.20":"2021-03-24T13:10:41.430Z","0.18.1-alpha.21":"2021-03-24T14:12:37.018Z","0.18.1-alpha.24":"2021-03-24T19:38:27.755Z","0.18.1-alpha.26":"2021-03-24T20:08:49.654Z","0.18.2-alpha.81":"2021-03-29T19:51:45.852Z","0.18.1":"2021-03-29T20:03:51.356Z","0.18.2-alpha.1":"2021-03-30T13:05:55.237Z","0.18.3-alpha.2":"2021-03-30T15:26:52.187Z","0.18.2":"2021-03-30T16:15:41.499Z","0.18.3-alpha.1":"2021-03-30T17:29:20.478Z","0.18.3-alpha.3":"2021-03-31T07:37:53.838Z","0.18.3-alpha.4":"2021-04-05T16:37:37.394Z","0.18.3-alpha.5":"2021-04-05T17:54:17.158Z","0.18.3-alpha.7":"2021-04-07T16:12:09.108Z","0.18.3-alpha.10":"2021-04-08T14:25:17.539Z","0.18.3-alpha.11":"2021-04-08T20:21:42.748Z","0.18.3-alpha.14":"2021-04-09T09:11:21.734Z","0.18.3-alpha.16":"2021-04-09T20:07:36.387Z","0.18.3-alpha.18":"2021-04-10T19:00:45.129Z","0.18.3-alpha.20":"2021-04-12T15:08:28.747Z","0.18.3-alpha.23":"2021-04-12T18:12:43.180Z","0.18.3-alpha.25":"2021-04-12T19:42:19.600Z","0.18.3-alpha.28":"2021-04-14T07:51:36.118Z","0.18.3-alpha.31":"2021-04-20T15:48:37.243Z","0.19.1-alpha.36":"2021-04-22T12:19:36.084Z","0.19.0":"2021-04-22T12:28:41.304Z","0.19.1-alpha.37":"2021-04-22T18:15:42.127Z","0.19.1-alpha.39":"2021-04-22T18:44:53.226Z","0.19.1-alpha.7":"2021-04-28T16:13:40.944Z","0.19.1-alpha.9":"2021-04-29T08:17:24.626Z","0.19.1-alpha.11":"2021-04-29T21:06:56.576Z","0.19.1-alpha.12":"2021-04-30T20:49:40.788Z","0.19.1-alpha.19":"2021-05-08T07:53:46.174Z","0.19.1-alpha.21":"2021-05-11T18:49:56.077Z","0.19.1-alpha.25":"2021-05-12T15:53:44.277Z","0.19.1-alpha.26":"2021-05-12T16:06:41.618Z","0.19.1-alpha.31":"2021-05-19T18:06:51.835Z","0.19.1-alpha.33":"2021-05-20T12:11:55.020Z","0.19.1-alpha.38":"2021-05-26T15:02:46.368Z","0.19.1-alpha.42":"2021-06-01T19:12:20.081Z","0.19.1-alpha.43":"2021-06-01T19:45:48.141Z","0.20.1-alpha.49":"2021-06-03T17:09:47.086Z","0.20.0":"2021-06-03T18:28:28.620Z","0.20.1-alpha.3":"2021-06-05T08:28:50.913Z","0.20.1-alpha.4":"2021-06-08T13:27:41.307Z","0.21.1-alpha.7":"2021-06-10T17:26:00.166Z","0.21.0":"2021-06-10T18:29:44.800Z","0.21.1-alpha.1":"2021-06-12T08:24:24.129Z","0.21.1-alpha.2":"2021-06-12T08:35:10.708Z","0.22.1-alpha.5":"2021-06-17T17:05:04.034Z","0.22.0":"2021-06-17T17:58:33.469Z","0.22.1-alpha.3":"2021-06-23T16:04:49.186Z","0.22.1-alpha.13":"2021-06-30T18:40:21.857Z","0.22.1-alpha.15":"2021-06-30T19:08:38.326Z","0.22.1-alpha.16":"2021-06-30T19:48:41.701Z","0.23.1-alpha.17":"2021-06-30T20:07:31.347Z","0.23.0":"2021-06-30T20:14:47.828Z","0.23.1-alpha.18":"2021-07-02T14:38:00.741Z","0.23.1-alpha.3":"2021-07-05T22:27:22.465Z","0.23.1-alpha.15":"2021-07-17T09:18:02.142Z","0.23.1-alpha.23":"2021-07-23T17:46:09.568Z","0.23.1-alpha.24":"2021-07-25T06:45:10.177Z","0.23.1-alpha.28":"2021-07-27T19:44:08.106Z","0.24.1-alpha.31":"2021-07-28T14:06:50.684Z","0.24.0":"2021-07-28T14:13:56.397Z","0.24.1-alpha.1":"2021-07-30T19:42:27.764Z","0.24.1-alpha.4":"2021-08-05T19:28:01.739Z","0.24.1-alpha.5":"2021-08-06T11:31:20.268Z","0.24.1-alpha.7":"2021-08-07T13:32:46.727Z","0.24.1-alpha.14":"2021-08-11T14:50:41.233Z","0.24.1-alpha.20":"2021-08-17T21:06:54.153Z","0.25.1-alpha.21":"2021-08-18T20:16:29.342Z","0.25.0":"2021-08-18T21:16:39.934Z","0.25.1-alpha.2":"2021-08-23T21:40:57.999Z","0.25.1-alpha.4":"2021-08-24T19:33:01.302Z","0.25.1-alpha.12":"2021-08-30T20:21:57.050Z","0.25.1-alpha.13":"2021-08-30T20:41:16.456Z","0.25.1-alpha.23":"2021-09-08T22:15:00.004Z","0.26.0":"2021-09-30T12:35:27.848Z","1.0.0":"2021-09-30T20:53:41.108Z","1.0.1":"2021-11-11T14:51:21.030Z","1.1.0":"2022-03-18T08:10:59.187Z","1.1.1":"2022-03-22T19:52:28.677Z","1.2.0":"2022-04-22T14:57:00.782Z","1.3.0":"2022-05-27T19:41:21.005Z","1.3.1":"2022-06-06T20:26:09.655Z","1.4.0":"2022-07-06T20:15:34.856Z","1.5.0":"2022-07-26T20:52:11.237Z","1.6.0":"2022-08-24T17:44:32.564Z","1.7.0":"2022-09-16T12:14:55.472Z","1.8.0":"2022-11-09T19:45:30.311Z","1.9.0":"2023-01-11T21:46:12.689Z","1.9.1":"2023-01-30T15:30:06.719Z","1.10.0":"2023-03-13T15:53:37.715Z","1.10.1":"2023-03-20T16:10:31.107Z","1.11.0":"2023-03-30T15:30:52.619Z","1.12.0":"2023-04-13T18:12:57.484Z","1.13.0":"2023-05-11T13:30:02.830Z","1.14.0":"2023-06-06T06:00:51.778Z","1.15.0":"2023-07-06T11:27:05.148Z","1.15.1":"2023-07-24T14:32:44.418Z","1.15.2":"2023-08-08T13:21:04.540Z","1.16.0":"2023-09-11T12:14:25.585Z","1.17.0":"2023-09-12T13:12:28.480Z","1.17.1":"2023-10-10T14:18:11.846Z","1.18.0":"2023-11-07T10:44:42.737Z","1.18.1":"2023-11-08T18:09:04.280Z","1.19.0":"2023-12-14T12:35:23.074Z","1.20.0":"2024-01-15T10:15:43.196Z","1.21.0":"2024-01-26T06:11:06.025Z","1.22.0":"2024-02-29T09:18:08.192Z","1.23.0":"2024-04-03T08:10:01.177Z","1.24.0":"2024-04-24T14:28:17.735Z","1.24.1":"2024-05-07T14:52:34.198Z","1.25.0":"2024-06-05T17:15:34.619Z","1.25.1":"2024-06-20T09:19:09.299Z","1.26.0":"2024-08-28T09:17:06.301Z","1.27.0":"2024-10-23T14:51:18.573Z","1.28.0":"2024-11-18T10:41:30.093Z"},"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"description":"OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"readme":"# OpenTelemetry Core\n\n[![NPM Published Version][npm-img]][npm-url]\n[![Apache License][license-image]][license-image]\n\nThis package provides default implementations of the OpenTelemetry API for trace and metrics. It's intended for use both on the server and in the browser.\n\n## Built-in Implementations\n\n- [OpenTelemetry Core](#opentelemetry-core)\n - [Built-in Implementations](#built-in-implementations)\n - [Built-in Propagators](#built-in-propagators)\n - [W3CTraceContextPropagator Propagator](#w3ctracecontextpropagator-propagator)\n - [Composite Propagator](#composite-propagator)\n - [Baggage Propagator](#baggage-propagator)\n - [Useful links](#useful-links)\n - [License](#license)\n\n### Built-in Propagators\n\n#### W3CTraceContextPropagator Propagator\n\nOpenTelemetry provides a text-based approach to propagate context to remote services using the [W3C Trace Context](https://www.w3.org/TR/trace-context/) HTTP headers.\n\n```js\nconst api = require(\"@opentelemetry/api\");\nconst { W3CTraceContextPropagator } = require(\"@opentelemetry/core\");\n\n/* Set Global Propagator */\napi.propagation.setGlobalPropagator(new W3CTraceContextPropagator());\n```\n\n#### Composite Propagator\n\nCombines multiple propagators into a single propagator.\n\n> This is used as a default Propagator\n\n```js\nconst api = require(\"@opentelemetry/api\");\nconst { CompositePropagator } = require(\"@opentelemetry/core\");\n\n/* Set Global Propagator */\napi.propagation.setGlobalPropagator(new CompositePropagator());\n```\n\n#### Baggage Propagator\n\nProvides a text-based approach to propagate [baggage](https://w3c.github.io/baggage/) to remote services using the [OpenTelemetry Baggage Propagation](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/baggage/api.md#baggage-propagation) HTTP headers.\n\n```js\nconst api = require(\"@opentelemetry/api\");\nconst { W3CBaggagePropagator } = require(\"@opentelemetry/core\");\n\n/* Set Global Propagator */\napi.propagation.setGlobalPropagator(new W3CBaggagePropagator());\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/core\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fcore.svg\n","readmeFilename":"README.md"} \ No newline at end of file diff --git a/tests/registry/npm/@opentelemetry/resources/registry.json b/tests/registry/npm/@opentelemetry/resources/registry.json new file mode 100644 index 00000000000000..c180460ce69b5e --- /dev/null +++ b/tests/registry/npm/@opentelemetry/resources/registry.json @@ -0,0 +1 @@ +{"_id":"@opentelemetry/resources","_rev":"184-b7abc59ea1cb96e1ba0a2e1184295628","name":"@opentelemetry/resources","dist-tags":{"canary":"0.25.1-alpha.23","next":"1.8.0","latest":"1.28.0"},"versions":{"0.5.0":{"name":"@opentelemetry/resources","version":"0.5.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.5.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d7d9a0968406c1a2e24036aae71fe0d31478439c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.5.0.tgz","fileCount":10,"integrity":"sha512-vOlf3nzijuwI166stpsLrHiDUqA0XPn/AWGvqBZ0+trGt5iFeS+lt3LGwhmdeppahwWQkwrxBOfh2D68Hoit5Q==","signatures":[{"sig":"MEYCIQDK+qCcpbnAoXL4FdqFDE8un42lBX199JBLZItO66+acgIhAOYR51aEdlRZxU2zhdJof3bmCHhqwJYC3QPR2tIEGv13","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeb/htCRA9TVsSAnZWagAATXsQAJ0OZvoMECIFInsOW735\nUhYctAs4wqbUV8BfOq9ktEJUe/4EomoOW1OXa1IvE/eNL19izOze73eYuBMW\n9PZvCMWoKu+rle7qHTfXuOuE0O1rutW+IUCR3hqMIOMwcDh/VmW7Nl41Mc8R\n0zqfBdUfhfrv8m3pK9F+2nlSdcF60tkrCbJaMg1Snuvs9Qn8QlChxez4ct7h\nup55SL1GeGC9DsCqbsFgfiJqh1X3PVWyOCzZKkELRXgpU5YdPlnM2deMl0RX\n2sYeT+xYrLvBhUQSejOMCBYiZepNvxeEAfraNootDP1hLyOUmSck0Mhawckl\nFCKuzL6KeP9G1cvpDxema0qaB0upA1WerXv//ioNWeBKe7JTlpHDMWSXiQ1q\nb/H27tdAeZVsFnwHbyA8dQkaV/i/Djwuw1dP40yICyII+5HJD4h59EjkiUaW\nBp4vbqb2OTeYA2+l3pD0khfKxXCb9m0CO3OJFkpyXvMvFBC9tNyqnFktmytm\ny2FuExHc0kTBLwU0yWaBF64vScw9EyV2YV4ABMrecqRGux1oGEaB+OuMivZi\n0YMQnC+wmxJa+CaXcIeLtOupX11/Lkt/z1SLzerlP2Xzn+xPCrFOpSJA0WCv\n0LVT5nIbFtXRKzb5pUZsXVgxoxH3gJIGXpP5OjIuIBedWRvs0lyW0FgFGiOi\nfcN5\r\n=nGrA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/api":"^0.5.0","@opentelemetry/base":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","mocha":"^6.2.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^6.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^5.2.7","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.5.0_1584396397217_0.8910905601362709","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@opentelemetry/resources","version":"0.5.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.5.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5595c24c2838d9c699934a54afcaa529555e58d6","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.5.1.tgz","fileCount":10,"integrity":"sha512-Ap96j9pf125C0PthtyUBJ8wE2VOsMgQVfIy9dKLfR272itzFwmkJeVWmjbFT5yGhr3g0G4C4XPlHodDNYntcWg==","signatures":[{"sig":"MEUCIQDyQcoKVxQkL9I0jn8WoM3k4D/dFXpFVnBIYYAj9cU11wIgJqYnrQ732A/pgzqiup+dUVyaesq79JrbJ1j3iDkLxKY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedBGLCRA9TVsSAnZWagAALTwP/AwfqS/PqayjD7TOgTak\nE6HCQrKLRLL5GGysapOh9EQnc/b+553qy1sJezu3WacFF7eI72Lnmb6jbR9D\nwV21w4uW4jA5sDMKh4sWdJ3J1COchgmGSG2+vOIwafBirJt/22a/Zbj6W9+0\nRODb4cEjoGg+b9pd3jHYeqphC4KOCoDLcwLrj2X/V+XPvFMXrc8jr8TXWoQp\n3d/QcVwR4Ao9nWetU3jYS8I0CZfPfIF+ttWu94VtRGdjULsbII7DznQ1TIZ9\nEo3DCjfKWRNoquvrEDB2qGbKlpw1JdMNGjlarKb4ue2eH8PCLWOJz5PPoaFa\nyGaX9eZPx+TWS1HU0Mk667QCsK0JVKpwsMfZh27tyH2hzFSyVWUA2dLo4M+X\n3MkT3rmD8lX7K2jZhINi704dR3LYjY3dWbv7CDDfHb2ry9ClNnki2vw/MG1g\nNK235WqpvyltJDyjSYQpNEb2fUkV6cousb03TgzhnhujFJagkNgSEta6qxxI\n8q0oDQ+FxX5v6Wt5anndxu05IwKD91ZhEVyCjhX8UuBDD2bsFlyDq/GMbAxf\nsTO/4q6eGA/QlQkqrJOmE/wzdHFYfQ/QKKidKsAnLix+RrPxxXh0iC+1OBwV\nhAkUVzUzAHC02UoI1U/D4bkpq3rydHxI8rA6JVs9vYUqnOQaNEJ1213xW36B\n4Rg5\r\n=qtLC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/api":"^0.5.1","@opentelemetry/base":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","mocha":"^6.2.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^6.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^5.2.7","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.5.1_1584664971244_0.46385036184750383","host":"s3://npm-registry-packages"}},"0.5.2":{"name":"@opentelemetry/resources","version":"0.5.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.5.2","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"08bb6c6793c112fef2f769929bc6424cfbf7fdc7","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.5.2.tgz","fileCount":10,"integrity":"sha512-aMORsB2BR52Ks/kqLO3cn6p7yGa12rN/DOLCh+smS7A2q6sWhnS4asAf+w+OcHnMvYmCfnN+8Cd3tTjkJekOtA==","signatures":[{"sig":"MEYCIQCMJtsBoXia+2okwlKhfkQYunvF8Z6ac67f01CvmkxBKAIhAKa+90kgIT/v2q6kz18qrTDrTTyh1xsjL3wObX02VtMB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefkARCRA9TVsSAnZWagAApJIP/0KyTz6une8zQyzAISiC\nAPeIw4LgrfomVblm1cgggGecv/odObLRfqZS9tQCV5P9+SxVN+44EhRl6klZ\nFZwm1ibSPfs77rBa6FNJqf17TAKuChFWysufMQvrRVMui0UqAqO7kzuyvzNi\n+Ip6QjWe8B1woA0rgeaIHu9k0mlCf3VBM71g3E0NDEFdkGyG7Tfz8lBqtD7N\nkP13tqjHiTbQELpc+dB9jFuL6BUt8NZlmqKdNdYbVjqAh2DU98RYBo1yi58E\nRHE0EVtXRu6Sqy1c3yI0HuGgZjL1sTxIcPMUUqeBhYCTYBUM83hLElwpNU3R\nWpXFWpswLw7dtndVDOxQtqfGUHXQMqmH37FdhnDNTugQGT8KnJa9RgOm6NAr\nnZyTlZ40tGtM9h6utUL5d/9w9cC2ppprtxrl/YNT3cNzUIqZEFM3EeXWIGhk\nF4a2+bOykrk74A/BLH25fOFu7Ryjl71qrohBPYI0LULhsOB9a2IMPoK+XllV\nqGdef3VvJzQtdm/z9VJycrogP1Zj/JBbWwGClSmNKpCULBoz7B5GHzHQ+rE7\nN9jMb/rg+QcqOVoBwxqFGBdOUH41vHJQDp/l7pWhrWIagpcsev9uSYan7wrK\ncrJeoGXgTKqnCzRu/yq9wiDdnsrig6CBSzkXrecYux7/dc+/pIfoou0ASlSm\nmZR0\r\n=b5e2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/api":"^0.5.2","@opentelemetry/base":"^0.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^14.1.1","mocha":"^6.2.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^6.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^5.2.7","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.5.2_1585332240931_0.7560970088336871","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@opentelemetry/resources","version":"0.6.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.6.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b57cdf923ba0a9960d4860f72c4927e01ab0226d","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.6.0.tgz","fileCount":10,"integrity":"sha512-Y30vN0/+3SHvhxOEyW173fmUPaLzbplvrQPxib85JtlYbrULYPauVtUT2t9XCUkYRyqWlOULe51aRs6jnG4awQ==","signatures":[{"sig":"MEUCIQDlmDZza9LwuasYasuDf0NMz6aQk5pnAk4SuwLk3o2z2QIgOAHgqgshxXliyAnkbOz6Yzq36I79hQyLrkYzX+J+QQQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehiIPCRA9TVsSAnZWagAAOv8P/0jkjVJeB9WRcTbWjW2X\nzDwFyWTO5sOZCb3fsX6hVhEE9mQiFvTR7BQYWkORIJfRUILQkZn+iQM8XRrO\naFTaeLStoZdcW2ATMKoGjn6Gyx0ihKYMdagvD41Okh5gpDoOwW1IsBfg3Jin\nhpkENVvHegx3w8487xJ0iGEIwDtYW1MTBopJ7zmbajLBfPKaBrVTmVOCH6UA\nXE1x543YsG97KRvuVWskV6G33ux5rWE3iStgOT6zNkjA7wzWO2vvSfZFu4Aq\nAObs26LFY1bbkOtJhByqqqAHFw1aQZfNW7PBc9o8Dgauwp7YVIwvyja5kb49\nvYgUX+WkzZ81xijNt5V+JtFb/V7VdhU2kGrLOJhSMub0a47eCj0u+6RD1YTT\nuxKE9CHTPJ13SjaNltZcmxehM7TaUALLjFfphxBERxU7vdfB1Z79afoxHJQ6\nE25/MpPHie6aIWL/zV+q5GpK/JxkHGVf5S6Xc8VleVnXGYZqxZCUbRIrKofO\nqWlSqaVsgQcT/dD4cmzAgLH3HuU2/NO6R4puAaJO7v2oujnFBRHqN+1kVi4l\nnL/0HTp992t3Us+MlYqhSMlO35KfgNTnD15ifGs84A2XK9SAfWjCbVGSBTMJ\nZvBSKJXnTkX4UEq1NL+xXvsA+BbugXvHXTPMa3PeC94llj/m7jr6qGrJFUex\nqLRu\r\n=EwHI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"10.15.1","dependencies":{"@opentelemetry/api":"^0.6.0","@opentelemetry/base":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","mocha":"^6.2.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^6.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^5.2.7","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.6.0_1585848847092_0.8421565921674956","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@opentelemetry/resources","version":"0.6.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.6.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f89cb33606c351498dde8aa541f4bc4d4e990f99","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.6.1.tgz","fileCount":10,"integrity":"sha512-pAHVytrr08gGR3LJl9bcolELG0ELmhiyssr2FadSLDop30ghx2Na73nPyK3yTkdbnt5ztx/6RvTFSwYXUgBTdA==","signatures":[{"sig":"MEUCIQCgWJpHW3ODqK1jPCTqBqkecgGVBul/Z3y+Na7nP1TnEgIgFBS3Dtq2XDNIMyYzWhS2PTPzlTC3CushzgUhdnCvjBs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejhnsCRA9TVsSAnZWagAA8HgP/RpEBMJgN54f7p2whTjF\n9kf3t3lX+X9c+qIq+oksi60AA3cgTtLvc4K7D9F4jdyx26bJhiu9N5Fer1Ed\nZmcxU3qpITgJyYeBgBM0ZMJmg9aS10yr069+e8eJtjjl617zmZr499cNHxHO\niD1amXaj1wKvJNyj/s2Pzdb9kVRlEg1+EZMfhSuffDgSQvJCN2oi9tb73XWG\n5dobjB2b+9V3B3GR3PKE+nnk1wgUrLWlyRPqmd5DazrbJit5K+DCX0/vL5q6\n0HA2NOHU7PfpKzOR7SDS+j9nx/Ig/7bIM2qzpZsSeGddPHQerme7NEaBqWPY\nsLqkUbtA/gQO+Y1xPT5BYE6WwXV/sySiuAMOLaWh60A12FbqAcb0fXgDdlFo\nGeSNClvyo8g9ZiIBYGRqIKg4OzSfpqWTGbS54nCkk2dgd200kiz/ojprYZhL\nK24hRMzKIwc1Y5ISezEqeSDCPXAtP0pim4mEOK+O5QL0c7eCAQMc1dXF4jZi\nrQnBrQw+BuTC0+/i0GVjgTM2jOO4D2jqxBSgSae2LZrVFhx4MrL5Ql8e8mkW\n3rpaaCkh+3ySEWVFjFNf6yrgPK3jlZeyENRl13l5Y0C41iAAUki5V0KjM6hw\nyGtEypqoq+xcMTs0R8pvAr1uQzQVmqeJWr9+yLZKdHKTF7izkapTeWpRSU6G\n19MD\r\n=YHJF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.1","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"@opentelemetry/api":"^0.6.1","@opentelemetry/base":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","mocha":"^6.2.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^6.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^7.0.0","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.6.1_1586371051708_0.6417864431465292","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@opentelemetry/resources","version":"0.7.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.7.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9045ceb44e203b4707600766d5f397bbb85018c9","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.7.0.tgz","fileCount":30,"integrity":"sha512-0pHfsSR9eSNeqI3mcaaawbHrf7TImdyJePL69A+wrULcYkLzb6M/MlpQzF0dvVMOUYL2bLIcUmkrcCt3ZV3gJQ==","signatures":[{"sig":"MEYCIQDhCKucHLwLUh9VMsixGvQR5DvkW9mh2az3MVx1MCYSLQIhAO4JsXucWdv3Z8KdJYmizJylEcatJ3tAGaxqyqjqR5zV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoyzmCRA9TVsSAnZWagAAyEgP+wXefZ9gYxetLM4Kfc+b\nysOuYE+1XDY9dw5Od3q3rSyMHhSXlrimkNPm3OYjSQf/P8siz+Z34G0tTTfY\nqy2TAm3y0C8db/iB+8QVOhWVIVUia/7iDKDrjLIPlnAPhC8RgSKHEtDjDcVB\nZqenbTSH42VILn3sJqBXQlywIsyl9YdAwym7OY+A2RSSkamR6MsVLO6+joP+\nuKKPdrnxJiSnUwHVpi9TRVcxVi48VW9sy+h2rXTzLLRd5Zy7GZYkVzq2wk7A\n/ArqObYei3JIAmuNA33FsahkzBtmAeBn9fAxKeWJVwOQz1aRHcd3Lvk2lYcy\nFzbS5zmdA/klnxSE/9OB7tUpLoZGEC58T1U5eXnDL2A+L0RapW60a0xJLEq+\nw65EyxWtOJ7eXEQ81GFeNVFt9biJQhFKRKX3VCecSbgTk21ID7r7UxyZttOt\n1GaZtaExaeER75HmE8KWbNRL4VCkGlYgPXsK5ZFjoo71Ks/Bl/ZuzoeeorTB\nQaGgFs5muHxsb4Zt515xVAhnq4WEjzDFdjx9VlcYX57aidCaKbFfcOOM0xOF\nPlChpwebB1rPIavG8Ab9Bo6aMPlNhYE4ACG1staL4FD1S9ZmbHm5M7t+Hk2O\nFblaW8FoKtBYPh0/zIpTEOGF8b472v/z9i4Snw04pS2TGvk+NPn+MJHAq1Tf\nAxVm\r\n=LfRz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"10.15.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.7.0","@opentelemetry/base":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","nock":"^12.0.2","mocha":"^6.2.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^6.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.7.0_1587752165838_0.8294568245552454","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"@opentelemetry/resources","version":"0.8.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.8.0","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"147d718ffe0456cc1a992151ae11f52900f41ddc","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.8.0.tgz","fileCount":30,"integrity":"sha512-4mJFsZR7nAwl9UFLiy7Jy/GGfKsqGa49q0GL4r1F3eUzbClJBxZfgQAu9xIh7kiIy0R2xhAaJEyifOrYaQ2Jww==","signatures":[{"sig":"MEUCIGHPib2rvqaGtvgpUKZXua75DZrHJGh+ZOsf9HN4N5ebAiEA3PZs9AhPLVfE0VX4MOO40WySIDVVzuvQWu77ai3E02c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeutD7CRA9TVsSAnZWagAAnvYP/3hLluD7XCTWw8ry5+yQ\n62WVXHO/BNYYI2tr/RGbpz4oRqDcF17ZuUM3QnSUOspLVmwSEMzjSv4RLycw\ndtzczfeQc+rTsqUlKN+QN3eivQ5RLft55XzeICeTfdJ/bpbEsazGlJ0LMIMO\nVKoNBVYZie5uFlrtmlI8qjaMPdTYWTV6SOcvh5xrPkaH5SHcX4C08jWN0Djn\ntW1MIPtFK4ugpHgdJJLvcolyaZH64lmgQiqqdwoPFkEZGUn2KuUElltUrOnv\nWFClco01ImLZfIf9Uwi0dY2/ZeFMoO50Hic6aBWRikCQhlYgsWHr7iwkqnhR\nq4VB6sqUI96/ABtCeF7Mf+690UnSaXF8TrGRE1zC1hOXWNlPFF7IW1CdBH8i\nLfpTuoj2ZWylc3g+SYYjqlMsIFNpd6P6lyv4ptsHEUlU25hdremzuR3ZL2b0\nqSs1JzjoqcA93oylRjy8aH1f8MhoXRxfrYQb5yAOCdmDsUcQ+1VP01Bp9Vmr\nmyuQxLxpVR4+T9s59ORVLQ11co34DL75fvUVSNnCnbHjIHn1KPshheN5VxyJ\n1f62je+ejFovQT9bUwpeSS+NN4O7fUqbBgMyx0K3xCH1ud07sqcC3KGs2ZNX\n+86PS7fa3UFk/xnB8UX46yVA8hj7qhiI9Qxh4bafwpj0XYRGB3ABNyqmo5wf\nmKjV\r\n=y7eU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"10.15.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.8.0","@opentelemetry/core":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","nock":"^12.0.2","mocha":"^6.2.0","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^6.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.8.0_1589301499281_0.623450357566786","host":"s3://npm-registry-packages"}},"0.8.1":{"name":"@opentelemetry/resources","version":"0.8.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.8.1","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7be6c071be30790fed92c6fdc0e85850a2ee83f6","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.8.1.tgz","fileCount":30,"integrity":"sha512-o0bw9EU8Gnt7oxsb2HaGVZc1oj+BwSZnz94Y9ZY19RBbaZ2HKDKLQvtJB29CIeF/Me6oQzObLyoyXPU7Ky2WTw==","signatures":[{"sig":"MEUCIQDRthwvFPuFrhdx2p8FpMml3ZxVGGf6anhIArufaK7qqAIgTHKnmI9sGxFgRGDEmzpuYw3bhwY4e7rnyZXCaNFnH7U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59622,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewuQFCRA9TVsSAnZWagAAMncP/0sWg+7XSTLWzj58OYpb\ntfRzkrB5FS8Z774P3exoAuzROL04wWjiyiZLCh9O4ABgNKYNQ/J9rtEegBw/\n/QQ0l9YB7DMCVPYbekxKrcUt5Z+CwzVtVFwqfjIGUmokLdLgaxFWWZTX/p3a\nCnFaLMXZWrN3uTr8bKIoUsEUzyEIeYaS1wc/xN3UD+4CCDjWezigDNKVUS71\nmnQDmZl3HvJBkrTuwxWAgRNS7VJEwBCD0KhwGntComNsbHpPYyfWcgbORtu4\ncRYpaSbUOdDtnx+6fz4yr916WHITo65+TjDRBgXn9pw0vnzqVzVeXeqA67/z\nu4urh18V20OyCWdrP67YgMIGx2lsq1ot3g9RJhRyV+1sqYfOv6I9NeShtTpZ\naI4ZLlTX8v/fO76vN33p5PYChOXeDwxkFIfC85u0wES/sQIhetfMgHFo20+Q\nedN/7apsRkdBbwevWjqXl75Yl2BjVRIvZod3XFY1ugULl4fcSSMZbSLDRCJn\n7x9kyf2hYLln0LG5hoOIo52ASUSHiS89bQaDeSDfjAxogsq0s0/NRonfHcZI\nmKYu6w7O2g+iXeDzEPMiL+GhyVUbqCCKvF2UcGyqWMBQt3OFmIT6kead5e/A\nR0HCkaL9J0YYaeAQTCunapMVIW+al9bLgRsPiDwXoZyi2v2CpEJLU8KNlRmi\nrzhE\r\n=3Mf1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"gts check","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"gts fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.8.1","@opentelemetry/core":"^0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^1.1.0","nyc":"^15.0.0","nock":"^12.0.2","mocha":"^7.1.2","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^7.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13","tslint-microsoft-contrib":"^6.2.0","tslint-consistent-codestyle":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.8.1_1589830660655_0.953916362844039","host":"s3://npm-registry-packages"}},"0.8.2":{"name":"@opentelemetry/resources","version":"0.8.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.8.2","maintainers":[{"name":"bg451","email":"brandon.gonzalez.451@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dkhan","email":"daniel@khan.io"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e5ec36c739d648287967363962e2a9e2abeff718","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.8.2.tgz","fileCount":30,"integrity":"sha512-V7V82eFE2fnIZSYgdrFYp2qZZYHC86pa7vNw/BFGKY3ujI0cAIPnS/dnlVp7dg4e4kXZPkLVURLQUcFFHo5KQw==","signatures":[{"sig":"MEUCIQCrDmt4I3tLh1IhtKx5VG3jDqYpNjhhrkiJLKLxkXc6WwIgf9Xx/4o7736IxLbeyTT+A8rLac2XP7lFdVpKGYTYXxo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexta7CRA9TVsSAnZWagAASDQP/13JLwp9K9VQWinRyLRB\na2DdvGILdXazp8bz06jCEFcPi0wQtFLlZqNdnUmTlkbB8/fuApMiuwqW7VU/\nBNVjpJ1kK6eMop7A1EthfeUwf2RzUCCVwCgV7jRT/3nVTYj0O7mTNoum8W9o\nd8ehSAvSI0WajpgkheTxIgWwduwHdGeQXhGzvU8xgj8mrBCF0FvcABVO/3Mc\nT2Qb5fsEH/LHHQ9if1QuW8zXEDfuVrSea9LoygVIFyQFoB6PlSrR7mHbMj6P\nOfI5H3y3BMRpvF9OPxVYsvPzsOQog7zlOSTSX4GqrY+qCPV/luXzcLwdxov3\ncnwveCK/3HiB8eDQvadpwh2RQJU14taUNLCCZAGqbvQWAHUiCiO8VZQYjZtF\nMok6nPQjjKk/1WTkHXFNkAsDyaRk1924/Hs/7CtyiYWfdnAeAPisYYk/GsnK\ns1Rk3UPW2nS8UQQ4cCNEcgZ4loQIJAUiZuHJwopVxw0EsWrl5YXEhgpUQXhq\neMV6IL1dV16wy3lJlEbFVgu9snewu2OACm3W0wd7DtJQ/kw/7Jv/MbhwRnie\nz05wzdGC6CMMcHvsnaVInn8Ht3heu+KFmYD229p/s4PEUl9jHDYnGjRRu50W\nK3lTtXF0QwIXzCPpjz7vW1gsi0veC5m43fSOsKmgug5CALhpqHFszAPvglI1\njbS+\r\n=n49a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.8.2","@opentelemetry/core":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^2.0.0","nyc":"^15.0.0","nock":"^12.0.2","mocha":"^7.1.2","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^7.0.0","typescript":"3.7.2","@types/node":"^12.6.9","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.8.2_1590089403194_0.029189884285889756","host":"s3://npm-registry-packages"}},"0.8.3":{"name":"@opentelemetry/resources","version":"0.8.3","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.8.3","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d133682bf30b9fafa270e5ab8267e1e7559f607b","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.8.3.tgz","fileCount":30,"integrity":"sha512-CUdfCd1zz4n5HwZPZh9iLFDHTxLDQhoo6g01oDmRcP1uxdlCEtDJiLQ9MYcQYuxgYsIdDYWNLIOUmgjYCQh8vQ==","signatures":[{"sig":"MEUCIG62eokPUjtYt+zw04gJU4FdEQx+BUSRl0pt1jlrHCrlAiEAjjPSdc8NmRIgJaILQsqnHJcE2Iu306mIAR5RP5J/a7U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0BzbCRA9TVsSAnZWagAA+uIP/0V0G97bn9cfw5WzYcs8\ngLesLrVxd0A0NCMLk0iQLdxsz7kJcFz1baeTAdlzQNxJ56d2iFLtZ0enfg0z\nC0KrjSF4MuR5wtyF66ACko93Z78RJwNN2JbmImc8vKDS06sYyL/sRWT+yyDt\nKBdUeW7GOlIl+TdMZs4nV3nRST/Mhl0C2wCiO1fW1bz5nwDVq8Jmd2gL5krh\nZuHtioCRpAKPCb5imxkJjP5g06y6tqUCgi+Tdp+EZ78aDkUxa8Y1JgFg+i2f\npcdXT/1SZSbZIPmfVhcJpKJVRXi4h5EV1fOSeEHPvtOXP8+3bCvLnqAHzf/N\nnaUza/W/UZH1mWAH805Fwi6rToxnPivVuTwBbKelUzJWTR1VPBj0VA9AtzVj\nM1TzWLROG6AkwEala030e249R5Ce5UoxUK0wwVQXtOTf2FJgCiKc4fYuNBb9\nSGjoT8q+jBJX16VnAIMO+bsUqgwsSuapmC4D8q2Eq6ItXPczGnorKDAMRtFy\nbyhueNhcsn2gC8rSfb0H5MAH3dWD+EsfoSQ6h+F+bFEwGb5qNK4XndPOJDbP\nFDy6mPh/P19uHf6R5F6uRL2CfYZbwmhjkUTk7kHCRhT9SY2PlYO1r0/rRCiM\n5j6hYLqZ6vk6XIdyK9X9Y3lIZshb9px/GWq7dwN+DGm1ecEUcSvMwFxfLFut\nr5Yn\r\n=Jphx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.14.4","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.8.3","@opentelemetry/core":"^0.8.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"^2.0.0","nyc":"^15.0.0","nock":"^12.0.2","mocha":"^7.1.2","sinon":"^7.5.0","rimraf":"^3.0.0","codecov":"^3.6.1","ts-node":"^8.6.2","ts-mocha":"^7.0.0","typescript":"3.7.2","@types/node":"^14.0.5","@types/mocha":"^7.0.0","@types/sinon":"^7.0.13"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.8.3_1590697179305_0.7060310787510562","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"@opentelemetry/resources","version":"0.9.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.9.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c1271446405920b480d2eae5eb9e10d36f0b579c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.9.0.tgz","fileCount":31,"integrity":"sha512-+eIEBfWm1/qGBOK8fL6wdi+2HIyssL9fRSAyTmWVp0VrM9tnIplJj9Jzttf6NArwvF4P+UayLh0s4BgYNSmnig==","signatures":[{"sig":"MEUCIBXpme3DDKGkwHxpSxe3ZbLSh8T8U6tK9+HQYbdmL+o4AiEA3TaMrwO5EFejsKEcjTHArX1IL0TsqQ1sXISwfUeJNj0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe69vHCRA9TVsSAnZWagAAKKoP/Ak+BfuQBU/Lx2YfbXoG\nopRMeTmFjndFkHsQRG5f3E7Z7lIUFTPcUoTqw6r47HYfgq/il6IQQA4C3Q8c\nts0HzC2LHsiBqDKzSiptMst7tYtCAH1wpakdSb3Mz13Q3EGIVFA6s26mRDBB\nHGORlCNdNlWdtwbNCaUA6ONxERU2sT9ojyaPdCvF+gG+73q+pMBGNwHlhKhl\nJ2xef5pxO0H4azuk3yhaU0rwspKIiV5Q1AYxmCRokiWVCpUmw4TUy6aBJ/Jz\nIpELeZpfgYWhzM+1AVSOI3AJhSpJamAij+uMPQnLYf34eauaxz6sFcMUvhhN\nc4vPmW0kgZclSqeLTEHxNQ+LUpg8kE7BSh0tiu749xkHAyBj/9FtTJPcTWO5\ntUMBQQAvYnqfsVNpyuq3jhQO+w9gHcTO4ZREhpGNNXBcpNokgt5+iKzQAToj\nSfYRq9g8vVP9zHAdPMDiAY1ePVjC8pdSdXVPZvgEGrnnMuh2BSHA0VEmY5Rx\no7v82F8HA54kkN8eMnQcJFb+azVoIHMUKddFbNgNDzQ2zqZEcZgIeZszqA/F\n9lMubylH/MASAIBTSrTZ0dfYh0qym3CuPDXql2zJAS6HYoH8pQe35PLFDTwC\nGPRBhuX78KnaEmKtrMRm6jEzKgwLQe61H+ZBHulhVkFpBLtKe1dj313lAT4h\nnJw1\r\n=cpfd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"10.15.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.9.0","@opentelemetry/core":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.0","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.5","@types/node":"14.0.13","@types/mocha":"7.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.9.0_1592515527427_0.8807110625935559","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"@opentelemetry/resources","version":"0.10.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fcf8e078a2e9fd84d634c1227f2187244b9ba021","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.0.tgz","fileCount":48,"integrity":"sha512-J9Mnj5B4dDmoJOwg00rwUNo39LqCGsme5ipWzJhiAQyM4JOIKdSsF1+mSdo5kxG/z6yk5+a9TwtaTkz2qRwqDA==","signatures":[{"sig":"MEUCIFjAYS/aLAj8IBCMNA0WaP0l5qgCBGYT91Zo1na230idAiEAzqlru6u7BXy7FaGi/mq/zu+s+6BIZAtKtURKKM4h83Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72031,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH0AnCRA9TVsSAnZWagAAfncQAJQWPO1wGMz28Uch9LNI\nXI24kxa93osANRJd1yZy6KaSDwCIr/YjM/ABbjHTQdiYS1EfDB61MVEh0nsN\nqykU7WIzb3vTS6Y394G3ZUDAjMT9qrX+PyBhlSr8tLep0KfG658oebbppPD4\nIMC91CdiGe1UdeMc9uclba/9STdpKrE0N3apRDiF4fjiqeNf0yHth0wAu8eq\njsbqNhUSk9PfHPAztRhCkOwqpcgFI5UXN8Eam4eeoQTKAjkQCfGplCFKwaUl\nTUya8jjbA8q1APNulIa8b9stwf2KLmGBhRgObTJpb78mg7ZHSSizvR3vV20c\n+QXg/sACmgtujHSqD9/Q85cnP6YK28QZk58dLwTn6yfys9zRRXNl5wulw6QC\nSsf7DG7p8pJbkBSAUZTgvxyJmBRPy7Zgs/gbq1H0PmVHbpqbO2tWXlSjpZKC\nCvVDw5dlJgUpGU6UuokhJfV3xUKDpxzDrkAXFv5/7cq6133z7rSNeEOYaDQW\naXW0/1wR7HyT330ikP59ZQySTWllSFXr2tyC1g7QpyWU3CO15Wo+8j6aUsWg\n1dZVqZUhIeYJQTS4ExdhEj3pkpxqCqEN0LHclPx5+C6xY1fVraKQcW9kAJOe\nRDU9gBEgvisTJDHYHU3jnG/7L3th0jxG9TRWxhNeinTcUnQlNSIkSh8NLmgk\nDg/i\r\n=9maY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"ab62a4d69b99b3a8c9c26100c04f3226af7859df","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.10.0","@opentelemetry/core":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.25","@types/mocha":"8.0.0","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.0_1595883559280_0.8769773787442476","host":"s3://npm-registry-packages"}},"0.10.1":{"name":"@opentelemetry/resources","version":"0.10.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f8967030ef7e9b5e5abc079a0ea1b69df2cbc64e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.1.tgz","fileCount":48,"integrity":"sha512-WKHUcURmKrm2HrQoaAlIYjoJB0HHaV/lEnkFZ7FA7XMapjv8Ug8dt4KQnONK5/TEUy7k4N+5Jn/6mFcbxNX0sA==","signatures":[{"sig":"MEUCIQCEnkH3be70scFLTrP5UaA5LEOK73bvEAnjkN3+UHnRnAIgNdRBOriQHcHrgwTx5jZs4KA0cyWNalj95uH2RXXC/Qk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72031,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIEBoCRA9TVsSAnZWagAATRUP/0aiuJHRuePzyd86Kw7f\nV4ps6BJ81yt12961GYxdcDdhCNimvW+XVVJmmNlw27Y/bvKOrSXNIQ2WKByx\nu+zOktGIcW17tc2ZPjCLUweS5VRxEFGUDt4bIc3OMxKAtLTZldzQT982ugnf\nHaYuQVfJ9TQtN72/RiCiFlBtNY+MNMAOiMUq4z0roJogoa9KrYAFDHJttwQO\nWim3+L7uKWIVbuCs1zH38a0kKwpo8DVPV23aX9Di/cMU1KuDyTpYtcHaSNlQ\njg9gKD+MKmZGkgyqyuD3GMv6j5QcUssOGYyhjBmE5HndvqCYAPK/SmSUXVD8\nAQM0OGKo953PhzrPxwY+0FWF+4cu/w/Sne5+r9X2dfHd30yz2OZVpl7qQGNS\nhcmelm34qHY4cPfanwgXT3z562PwQ31GAHCHlnEBtFeaSK+eT0QmITuAY9Gr\nzEHaHvpXAYZD4qKx+tfIzzYgg8Wei5k01eHrLK5v9ATr1OG9Kx/TJ4JzuCDb\n6vP0O/vA09itVADbvzgr0k8xIb71Yk1lloYoBQw9LzXxa3yLP39ublUM+q1t\nBqSdOUEQqvEHu5Qs7ATCVfsdBXxtHBk94htiMj8s87051WmAZBpoODQwxb5y\nuMAMRFR/gWhV5CmNSIr6auB/FsyQ0NXarq0kSmI/sOp2RlKyl+lHooeysEYv\nMqzs\r\n=ghfy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"03981e4299282d0611d1255ab0076368d5830753","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.10.1","@opentelemetry/core":"^0.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.25","@types/mocha":"8.0.0","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.1_1595949159549_0.5605558846643064","host":"s3://npm-registry-packages"}},"0.10.2":{"name":"@opentelemetry/resources","version":"0.10.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.2","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6e291d525450359c615aac013fd977047f2c26d7","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.2.tgz","fileCount":48,"integrity":"sha512-5JGC2TPSAIHth615IURt+sSsTljY43zTfJD0JE9PHC6ipZPiQ0dpQDZOrLn8NAMfOHY1jeWwpIuLASjqbXUfuw==","signatures":[{"sig":"MEYCIQD2iDRazJ0Uioa8TUrDecRe5NISOnlYT6lQteC4nFrHNQIhAJGoJTAja53FLFUUW5JcPlZqCmHIZa8W660cZHh1RpyE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72031,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKJz0CRA9TVsSAnZWagAAC0AQAKJ//LCvme3HcHyndEUd\nz8CeqT87c6SJaxY4uuRgYASXNkCZE8PYcUpLx3UiSjx+4Gi09TyFy3NIiRGb\nIaFbqr/4r3atU5KBylQryw8SrXICLYJPF5VrxvkxTEediC8DK+J7loPw+nGd\nh0J+ifOSpza9jjC0VykXLfOvBa21eSbKNnVK581BJlw3MB4lG2z14Rx6NZJP\nuFbG9+4xoTaxDx86wpEQcwGLUM18IpAcZINpX2KyTFE4f1jRiP42y5uo0Rmo\nllzpGCQkRsestCB86rulmon97z3bMUzxfXshzsduIc3W3wSzeupXYqHFI0pI\nds4T7JKiPf7vVtnqXaqokghmtKDw1qEcwbrKWXQqSoi87ah7SxKlfpcqBGyu\nx4kgllf3Q14Bf6cmLlev7H82tWEP98tjZ4Kqu2z2J7gvNGTI/MzFq+hdBNvq\nSmOSTTVX738YOP4rYVXNkMF9XDOo3ShfL9jNUTSrSqDuj6/KoOblEaLyf0jj\nRJz+twAfwXREsQVbqYudln6xuelIsMtqw77j4Ywn5BcHW6yEgBp6D7MFE1lP\nKoFpxqYWFgHyo7A4MtxTvbR2zKYnD8iUKiyDRTDoUMLBRV4mi+xLgKvkvVNU\n+2XchRMrDreny++PssGFjAl6ywxTVrOdibgZzE3zb5CxRd5CScwDBr8o5zZy\niino\r\n=49g5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"b247e69034a7888a842fe75e0a5ff06f8bea44a8","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.14.1","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.10.2","@opentelemetry/core":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.0","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.2_1596497140203_0.418455637084892","host":"s3://npm-registry-packages"}},"0.10.3-canary.0":{"name":"@opentelemetry/resources","version":"0.10.3-canary.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.3-canary.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"70bf5b1599a32ad687df13292d649c84296731c1","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.3-canary.0.tgz","fileCount":48,"integrity":"sha512-dYoW3QG90MN/3m3/ShFYO9TDhnu20gZd7P8uSrizPzJyxisgY5SxY849aZKMzb7WUanKshCBBcIYywG698ncBA==","signatures":[{"sig":"MEUCIQCmCtpBTqnNq1pOmZHXoOqiCletyCw+Cs2/sk+rVKCjKgIgOEZGa9wATSCbVnJktFN+c/CACdosfYxJYB2HAFt5tww=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72118,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLYWfCRA9TVsSAnZWagAALTsQAIpzjEkcEpn7fIV87Yy2\nj6FGdcpMf8kgDoYpTR5NtVBYlb0cqwsDoeptRJ78OJumWFqERv77w5tAfM1j\np+kI2NFLuiKAVUlDhv2aeL++inpnBiFCJHq0gt46TORo69XU935UTgTeaEMW\ncolUbFcPDdBs6fPjrulfuOZov2EBqbmujM6uGpE9qYPbWzLKp0mtbPl3A6ml\nv1UcswVWr6QK5q1QOGTxasom55M6oFYI1iEIaNqAwW5JJrDYlFntWc1hmYgu\ngnCD0nVyYtCYQiz/LVBvonW4v8F659OdOXtHIrepI9vXGs+APx4mIqqypMyV\nH8qeFylDfggHZgXtgauB5CqL0GKLI7OSKDegCkI112CdCMHFGWxGzoRz4jU8\nTP6vxr1o87J5h7do0PgzSTz88IBe3BWBT+godYbHRIiX7KeVHRs8wkILxAAo\n1W9tFqARoCjWtdv7csnOj3no5BfEtLx9nybCJV3aHnerj8+3hnWXU3MebwYS\n4WhwBUyS+YiI5Z6s33O/dUBbSqWdBiSaetmpV2EsL/1zJbZh3gxBA4TyX1XP\nb2imP2ROlgRMbotVYeViMUOxoKC5L3hSqcUp8L/Ktl8l+tPV24S8NoGnTKEr\ndL64CmxMp/3x4gRJMUqiTy94huViMr0rHrFmOdrIgPlj6qGOh09Fq/TyFOlD\nVCqt\r\n=sxo1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f4f2f84bc087389b3206a2e17837b7b0b95fb2f2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.7.0","dependencies":{"gcp-metadata":"^3.5.0","@opentelemetry/api":"^0.10.3-canary.0+f4f2f84","@opentelemetry/core":"^0.10.3-canary.0+f4f2f84"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.0","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.3-canary.0_1596818847081_0.37093174743576496","host":"s3://npm-registry-packages"}},"0.10.3-alpha.28":{"name":"@opentelemetry/resources","version":"0.10.3-alpha.28","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.3-alpha.28","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"10441c63d3009e33c3a425cd1fcee21bae3890b2","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.3-alpha.28.tgz","fileCount":42,"integrity":"sha512-aTHCliczwZoi3cSQzfGi2IVTY4sjnfd9WGsyMsB1hMKmqnVjpEg0tPjyJqDYbaiGzVsnhtsJWTzji9x6QldZJw==","signatures":[{"sig":"MEUCIQC2ek0cqbdm6+8WjTKgzOISbmf04BIodSxDq1SE6McQCgIgWmWPlsZq+rmsf6QIWo7Wek8VhrB+MkVU4/c2iLV4FCg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPT9UCRA9TVsSAnZWagAAgDMP/iZDTzfp8CvQqCk3a8az\nJnFdNQuv1Wac22StVWf0O4R7P5/z9hALeZiu5KGHf/yiN3DZLbfybnUwFWnH\nKQ0DR2nG/vUlJJhvBkvvAkLT++yf0blAkbU7VprKA6J8Kjw/Ab1wwEUtHxDN\nHfQXStaCTd2p7/ZJPq8T0VNjlneJqvkQb/0IITCS8ulnhfCL+HmrZ2c1AyEO\nGCrN3G3UeQoqw9psr6wgsx4JTgwUYfIQNsWmksqv9qGPKxzs28UWCEWy5dRX\n4JxgwHhwkOB2VaHyYu4XgZGlsKSUPT1G1Fg0y1SChWpPA32Ndlxv8ZA8Npvw\n7vyxkCiTXXHu/KN9dILZ4HkaRPfUgScbStdAABWj2i+M0XAdmkfTpwg9gA0i\nc9s5rQmYxpeokGVqhMdAkLw4xniYZtuXgFfGwxRYtNNNsxAtsJ3cPwYGfqTx\n1Ux0OjVohJABaWVbDD6+2r6JXakIy5sBS/1puIlCwlbqO9Nxyki9Zdti6qkc\nvGwtAXEFAN9kecC19s0gsmA7tsNhFogNaBK6RPBdYuqUtRv8jG92ECCCokPU\nNZvET/5gj8/U1n4tW5MoWSzD02mp6K9+cLkddbVs0X5ulYCXoF6haxVeikev\nDnJv4Rwhatih59HRsGUJRGEAtHTm9buvCAOyCoekjGqvZ340pgbd0rXgq8XT\nedri\r\n=N/dV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"d68ff0fb7594f6a367cb7a5057cfb2875e8c082f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.7.0","dependencies":{"@opentelemetry/api":"^0.10.2","@opentelemetry/core":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.3-alpha.28_1597849428404_0.11695363139503945","host":"s3://npm-registry-packages"}},"0.10.3-alpha.34":{"name":"@opentelemetry/resources","version":"0.10.3-alpha.34","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.3-alpha.34","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8ef87d8858c0c49a8fcc16a785a30536ea98ead5","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.3-alpha.34.tgz","fileCount":42,"integrity":"sha512-Tlqr/3xeegZUoJ0Od1eZ5ihcoShlsk/409Wkm7a18nsfzZE7XI+OKbWacLrqPGcPu4t5IwnR0KvDczIyMf1EGQ==","signatures":[{"sig":"MEQCIGNBFeZV6mbAl6v38vn+8yWGsGNctALOyDpUw2gmdqcUAiAR2vxNz11G5l7gZ9Z2mIqAdEbVN26i3zYSgA+2uvi99g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ+5tCRA9TVsSAnZWagAANWEP/2BXjCZphEVThOEUcPy9\n2vK/z5WMvn46Tzzjt+E1eXj6CH/K8cR/j3/X98KRyIzNrh2AsdtPM+tnN19C\nPw+Vv4J1mGZi6TMQLmu36US1JbmaG/Rn+X1dHwoBVsmwyc5R5x9qJ/5akX79\nQgQkZ2tLQCVpMcVzmZXrPSTI9dxiRfxMpHA0Ztex3FnQ5z+qaWZlczcKT42s\nDA9CxUVj5HR1R83Q4P4e756nHf9hJGRk/R+/THw3gTYyWi/E5TqkQ6IQ9NU5\nqYaEBut4Ycu9qzdl4AAfrsQ1fAJG8VhcSnYRRdh13qb1vBS97IKPysMZkK+O\nDUFnokl6k953HdmctuQsRebpQrOwSkLR5jdAkyzpkBtBUuZCl5wiZeFC+ews\n88L3dDJT1ntrLZq5yqYSh040M5ruJMvGOcW1dt4ufl7hCQWnVBIeKDT/CZro\nWRf3EXKO9LWGwYdieAIQeVz3IUTZCdY9PN9DnvBII1lPx6j+2KhwMDBGfXJo\nImITskv+NcjYL4rAeDMJxVfHbP0XQj1qTjijsMkqkMcyPQ2280j9ScSQiHOZ\nJrQQnrAdAqCLRUMM52nMlS0pU9LXHZYFQ7Krz3EqMUyNHyL9qm9mODJs4Wwh\nOU6oRT+QpMk5HKYWT0ArbrQwiIaRYMR9QiT8Vurm4PlWLAjNz9Esx+pwA14G\nD5h1\r\n=N3Ro\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"fb06b5bb1142286acf5b326925f3af3353aa9d90","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.10.3-alpha.34+fb06b5b","@opentelemetry/core":"^0.10.3-alpha.34+fb06b5b"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.3-alpha.34_1598287469372_0.6749176434986528","host":"s3://npm-registry-packages"}},"0.10.3-alpha.35":{"name":"@opentelemetry/resources","version":"0.10.3-alpha.35","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.3-alpha.35","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e4b79df9dc938a762f3661c00d19a9d123c59d5c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.3-alpha.35.tgz","fileCount":42,"integrity":"sha512-hm5z4SANNJD/Ie9WnqSzr8jJ8CSF14KlsAySyieiS29uqsc4qIRktNr+8Z7rXbSdQmegDMW6sypF/qZ0BUmiZA==","signatures":[{"sig":"MEUCIQCFuBBYfLHzRGyzANGMhFo+aF2VXMQSsUOhxbALFRBb6QIgFWqs1qhoqrjvIFfBD6tcqD6wmzrFl9yg3H0igRQcmsc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfREMCCRA9TVsSAnZWagAAdCwP+gPEoYf49N2U+YUROJ/G\nr+C4A0yR1iqxEnfXfkuX9t84zT/ZC8dIByEj26sFi3qp+pNgEyiAH45eCv4R\nObebmK4sxozbHLITcwFbDIPH9b2fVgbPYPc2D9NJdw2kGzzsflvhYJr2+RLm\nNauEEoTkBVICGMKulIvINVdlzkpNzi9iL9uKOd6Ie9P9mWP/10P9hNnZi/Pq\nMuFFOs34dMG3gPk1pdD0G1ICNnYia3Y7HAEd8HDFML0GMZtufBt4Z/RM8W7S\nNwQpLft3qXamWu/NnLeQqJHRMZ6LhappCXGs9TeCF16k6jSKnJPlqmJ4UyAr\nrdHfaFvsawmrjlAKT2Tg43GuIn++q//Eg12Ed/MXovN/3mxlSml6Bi3Qrv9s\nz58U09oFoxSyEkz6lO9T5H6pZ6gdQXayUd+hu26A08Cin0hTxMiF2rzIFlVV\ngrFWTqoO3l0dAzRmer85q2dFjZmzAM4GdzhmXaRl2X8s/NghzPFqVwJZK7V5\nQbakL7mZBeNKL1S2gp+pI02/bPYMnUz7oZcY2VeGdLg4G+f5GD99BUqDSKkz\n58jCmZ4FPkFz9/b78bmkiUv/+XyaMUgyQdWct8XqVsIbWE2/9e2K2XuggKPz\n+DZJo6rupVJYuxFxHT66E1oJlaRVWfnI2eCWwp0vtmGi84fxfK++yn+tUIlj\nAdZu\r\n=AiBv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"2ee9f1aaf7b61c4b4ae6b748f0a07f8fc708f07e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.10.3-alpha.35+2ee9f1a","@opentelemetry/core":"^0.10.3-alpha.35+2ee9f1a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.3-alpha.35_1598309121784_0.6493460006836094","host":"s3://npm-registry-packages"}},"0.10.3-alpha.40":{"name":"@opentelemetry/resources","version":"0.10.3-alpha.40","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.3-alpha.40","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"988af20e7d6c1031f330d7218e58dd2c9cf4d9f2","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.3-alpha.40.tgz","fileCount":42,"integrity":"sha512-UiSreqB5iVVnS3ZRBNy6Rk1H9yeoHO4GhRPxuXpdtweD/BJEZa9lF4MzBjOXb5bq0J5mbpXHkn11tQ5J7LUMUw==","signatures":[{"sig":"MEYCIQDuSraUkQpbByksD6TgeqEhtxOXV5i/6t2b5Iq2/iLGuAIhANiE0cqATV+Vq5Kjzso+zHqcsenKRDBx9Oy2PPwJLwJN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfR8HYCRA9TVsSAnZWagAAl8oP/38oICMjV5XlFwyDwPFz\ngllEySnYwz/Cpu+g2OLaL9VVQem8dSpSGFkDwNmmD15Jkr2u5Cav7lstiurE\nMxuFt639Ul9kli6g6UZDX88q8R20hiewbHw2qlF0xX/RAOjE4SRzbHLeQG5h\nifVBrIWUjhguMn2hhGi7CumyGDlOqp5lqF03WFCK9B3aPcvj1zNjox6q7iv0\n5nH6DVbQ72JKBDynqd9s8eT3IrIqpdkrHumtGqyvHqEORxVFD2IDJ6P005y1\nqu7zN9DOTQApSoAwomMXCR7qYL07tCqRtvS5fv2JG7jSKUt8FkIDr1s3ADZe\nULBudhsv0/9viDdsm1TrTLM0t9Lxk8oTITwo9j2phqrP5jJY8Xu1ZkZS5Gl0\nOmaOE6yjJB1/6aSjm6AiQDX2bGDBjl90df0Hd7aDmz8SMgz918clj/pDKlCV\n9zAS22kSsvAMGUMYX8Pc+tIZojwrL0ol8VwMTf8kmzVdYQOpce0MAXXgFvq6\nS4E6hR8Hhi5SHxjkMY9D/gNZGdmcphBLQZu0oKFUd1lPDHcTB1EC7MwDhyr3\nQyHXW3pIA4sqBQiNxt4uNAqEHp84nUDCe6I9rtEwmstFAs1M9xETFGkOUsKr\nBBEWH6kayzUi0rNReXcX6csXwf5Pqp4Cyeace7AigOuSG24xY69b7MGA+rEs\ncYY7\r\n=sDs6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"2052a245bce0d7a6ddc273cb3657bed5d3d21dc4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.10.2","@opentelemetry/core":"^0.10.3-alpha.40+2052a24"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.3-alpha.40_1598538200594_0.06541344857196263","host":"s3://npm-registry-packages"}},"0.10.3-alpha.41":{"name":"@opentelemetry/resources","version":"0.10.3-alpha.41","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.10.3-alpha.41","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bacb242fecfa5f2a2bf1a8ca2ce9c5c8a62cebd3","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.10.3-alpha.41.tgz","fileCount":42,"integrity":"sha512-b2GGEsMrZukeTDz0QC9PA79GEYMLC28VoLF2idxTTJMNg+tqLTMz4AcpYta+++wgwCVRyaWIWUPFFaRotISCXA==","signatures":[{"sig":"MEYCIQDLOcgUV86eF9HrAHwtqUmJiNgzZX5EBjSR2lwPY4IJJgIhALQa0LZtypozYknw9pb+QHSILrhr87X0hu7Z27IQOjU1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfR9qJCRA9TVsSAnZWagAAuicP/jmfXEdDfp2K7kCinJ0G\n8VL+4lRaGrUB4amKiJ8nIoXInbnSTgQYbVj8/OqTC5KRQ8OBwOWHNYgIIRHi\nC4vGGQnQYcx2ZN+q0ryhqaQZA8Z4ib9sztUk+kE2hEu7Quf1oSZkLG9I3B1z\n9SXv3n1gBSlylZj+C4eHLmwmmfPVzwVhRs0r0erPg2jRYrFu48Vy3vgtOq3e\ndQs0uG4R5mYru7A6+ANkCZB4dBTjxBoG3LwITUgjVPshSeQ6IUtzRBtknUdr\nmvz2MU0HO98G1ytpCad5X6uunrZRcwel44GSnUwFckBCdQ5GxZX98h186648\naD1nGP01WA946rnzOuASQs3rSL/M4v9vq4CKuNGofV57fOqP5SrnYHhqTxZH\nLQfzV3IaEina5gZ3NvPpZXi4WyPopZP7qHu3fLrXsWpQ2hOlbeTIYrSL+6PN\nEuLyoyvYd1ZObFIdNQxdWC0xz0Jw4T7ALYXWyFbl3BdOb8EGhUB7jE8gTgcM\nVTwwG3aaEjfcEEuBeRDNRT6XZoQRczYg9fNL1Bml5WIaYyujR1qB4bX4VTTo\nauSHA5X5htYQYCc00f/Ln0dAcAe1m3/PrL4n+dLjqpRiSbGgePVLfO+s0MvC\ni+LKwFJVZfD02towQm7CSb+A0bOJB7lgTwYNSWkfKBWnKjegNkdve3C9U8Bp\nf3rc\r\n=GhVz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"5c7753fe6534a34f0f4eaf653d53f8c002ee299d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.10.3-alpha.41+5c7753f","@opentelemetry/core":"^0.10.3-alpha.41+5c7753f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.10.3-alpha.41_1598544521127_0.672631743703006","host":"s3://npm-registry-packages"}},"0.11.1-alpha.48":{"name":"@opentelemetry/resources","version":"0.11.1-alpha.48","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.11.1-alpha.48","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ba4929618e577c460a578d3d3d80ab8747309b9a","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.11.1-alpha.48.tgz","fileCount":42,"integrity":"sha512-tbtn1c8T82iBKwtYwjnJbb8AaELVqZYNBIwwqnyvQgSDCso3s09gTp0mIRdzB9nmQ8gg96GwTAfMBs2ZGjoNlQ==","signatures":[{"sig":"MEUCIQCKDtk6ml1HsK5OhqHQUDO8HhxMcAh8uHFPjqPoV4NfeAIgLOUznQUQHxwqHOdOi8/FwJHZcQ2T9G2oMsObIoVuI8c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTp/jCRA9TVsSAnZWagAACv8P/3Rn8nf7QIysCujG/EOf\nwbOOI9eSzzv2TQGvmRCffiu6NQim1hm0W/RYWvWXXNOB//RmYzE8Dy6SrAfZ\nyGf7PMulKy15uRzgMpD45KJmQLOD18jtCcoxngrhfZPMmmQxCaeg+efqZ3NY\npjFX+4wuDSJ4JdxAkGIKL4Q32it/HUuecQ3cJxqioG1FamVyhzZNmnUOCllf\nKQfsn7ChV0cGVFDDpiQk5CY3ptHjOjfHfQ5MdI1/pXk4yU+Kwc5L1Ow+V92v\nDSKa4pWPkNHkoyIvbpmLH0rTmc2G5oCE/9OIWWtepLQ0bnhtZ1uzNr4jlJsV\nDSUSdTsWl3aQALNGN8VFCzuV3Ep2gbc/sN/f2JUry1YKbMHt5UQBYQkGKYhc\nkuKmelzQc1nV4Yla6dGUUdU4yxNnUH1asmt8aOs93XYC/cScwtiI58/Fw/8r\nZvV7CRm58hynTkPafP20qoaMVeiqd4D85v2MU5L8esJ3I+/NJUv4NWvtuRKG\nHMBGQt9iZA/oNqFr4+H+CHLMJhUiXDS0NSdcf83tCp3nLKD9XHxcgmS83fK+\nID68zp5E3NyqmaWmyryOq/JKdM6fZJjT9ZAz2rf/2MJUeihx1JX9wRYshGHK\n1K4L3lPrCY8+6GOla2YtVUCEVATz2RnuhO5FxlYZ24IQHPYB3x8v6glCw12K\nZ8cZ\r\n=+Ww6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.11.1-alpha.48+15174c6","@opentelemetry/core":"^0.11.1-alpha.48+15174c6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.11.1-alpha.48_1598988258735_0.15951725778999637","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"@opentelemetry/resources","version":"0.11.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.11.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e522354eb791c3bb3b20a06b7793259ad1cedf6c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.11.0.tgz","fileCount":42,"integrity":"sha512-o7DwV1TcezqBtS5YW2AWBcn01nVpPptIbTr966PLlVBcS//w8LkjeOShiSZxQ0lmV4b2en0FiSouSDoXk/5qIQ==","signatures":[{"sig":"MEUCIQCf3hjN1Ozi0pTQgPJMGN/ZnfUVKfV01p1ajg/XGSEsTAIgcn9Bsncq7LDCJBrXh38hl1BjB3UzEIIJu+B6rpxYf0M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTqHGCRA9TVsSAnZWagAAuNgP/2drlWzjZTRyz9NfHcxr\nD5CU4Jvfg7zN1u5WR16ujr2DieeILxnsIRbdBfbZ/tGwJgWnZJrqtmuuSC3D\nfn8PY0myOEXjNz6242JUfU4wuOrGNcLo5K4qXFHe2XdT1LkpuO9k7TKC0BSh\nzCdSeTKmRGv1mo31eOjLDlHtTRvXJinpAqIa20HsWBwAwWih/ULt0WjA+gJc\nNz9Zgy36SBW5Ho/0h8ij/r71WlzInom3lxdWCNMMvQhhZ+VJ1xXdF/926ALG\nlkyGI6wy1khr09l65K9P2h3K31e4szClAp73MX+jgDzOAoLXwNDbumxt44Eg\nClYZHmsw4alM5jJx8YgCpNu+9oDUycnxb+z+SpRYkQOheEMdw8zZP/e09lkI\nwQ7cVvJGH4GLdUd1uN3vfR7/ZLSAnD62z7ON0927jJUcj3UJoNDSHASX2iJs\nuUIBcco6DkstnhxEOm4VfEawI1oB414oPtF4+mOhy6PE+o+N8kzoM5jzdvbg\nF2wxsTpIurQ2BPsgQXRvek+TeVe6zWn4VwJflEj2XL1DA44jTwipnf9DmubK\nF/Ji88GMZG17OvJCqh2N0frqcrZXuftokiFiST4DmxVFSsaAbnM4Rs1xL8nz\nH6Cqz+AQBfI9gEjlEweMBtsFFMKvecCW5dGYTGfw4tZwtYkEzwsZq17kVmVB\nA2/u\r\n=gxBR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.4.0","dependencies":{"@opentelemetry/api":"^0.11.0","@opentelemetry/core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.11.0_1598988741821_0.502177032233736","host":"s3://npm-registry-packages"}},"0.11.1-alpha.15":{"name":"@opentelemetry/resources","version":"0.11.1-alpha.15","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.11.1-alpha.15","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bb84be91324dd7ac416a6be4b4e526e98d63ffb6","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.11.1-alpha.15.tgz","fileCount":42,"integrity":"sha512-Gwend8GBkKPWWW0PHzCKDA9xJLSvlX8pm8n1k3EJXQSLh5zsGUXhRrTl6uM2Qw9W3Nt9lO0myRTuurH7tr7phw==","signatures":[{"sig":"MEUCIQCG+BwvOp3giRrO0PDTWFy9PKnbQk1ThOw6wPsOV6uBMgIgMwiY72TEv/CbApGabQkku87WNezu1LZxVU86wtQgwug=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaB48CRA9TVsSAnZWagAAsXoQAJpacCLXee+b2L3Efstz\nXyU2qAXrPYZJedzcWK7R8uD4djcbDM6ItHDwTptarESSONLrjbmJ8KAoe91P\n/kF9dDheyEzvqdXqiSbtNPTcyFsuaPYwJ04Lnjqq1UgFWcaEdwmKv4YFqz1g\nJZHrYmvp6De89cHkcfzT/O78HHzSrcSEHqJ+BVaLEfayaU5wijj5iGPUxa2M\nkPswqBM2ASd1LtkrojwmTMgrpDoFRorxKcLaMDkfDZVEzw6cXmd+tJBUICdu\nqlTng14kTUbjZ5W7tjoseyFw1KjedO08FUq2Xk5yxw+ry4bfCOiCQtswpcEL\nuhUblUugxSSDcSf4gtSLX6U9sg390kOGNBQKC0LeE18tQQVCUBdcqOVYRUXH\naYLj09dohKXfkxYj/2lkpccdP21o4Pe8Ywf6JVg1H/+3BsE/ob/fJ+8YNcpC\nTOa+YKok4MyySlZ0YcSustXajm6AwkwKU3PQsUkzjPRpVWNcVGJt/Iup/PSB\nRNaKO72iMjLNuzxcZYqMJDJ0whKwfqESMC2jkLQ24Rbcwcb5JhS+n9cFRjRb\n78rae75Lp/SGKRG8y3CFmYXwG3c7Gkag2APCpFSTeXtC9J9IJkM4MY0fe+61\nmLIb8QW51NDtt6+Su0/2cd12+UIFQ/k9yYmbPvHKxL386/TPSdomrJsIeu4K\nhv95\r\n=CCOj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"e170039015e8a1a7419bb835a00659b2a734b8a6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.10.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.10.1","dependencies":{"@opentelemetry/api":"^0.11.1-alpha.15+e170039","@opentelemetry/core":"^0.11.1-alpha.15+e170039"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.11.1-alpha.15_1600659003724_0.364116563137737","host":"s3://npm-registry-packages"}},"0.11.1-alpha.35":{"name":"@opentelemetry/resources","version":"0.11.1-alpha.35","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.11.1-alpha.35","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4c242a7d624de3a1fbfd82ab577bb52223978716","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.11.1-alpha.35.tgz","fileCount":45,"integrity":"sha512-ghPAtwsjzWuS+9KFXJVIw6aFbib5ku69MjRrNEF3RTSUwHY69m3SmJS3OTOD+5cSe2nr7BIx2voI9ulw0T0rwg==","signatures":[{"sig":"MEYCIQCyg7u5Gd5qI572MfCaC9ZufL7jDyR0ZeFXIpqgBUEasQIhAMBlGqHm5a5P7Ef4raME5trn5EpHvzgJ9gtfR/TzgGnI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHh2CRA9TVsSAnZWagAAWE8P/jybmJMphOkjTaMxiNIT\n/QhViNHBAnsDyXTJpPOFV5/RrbH8KQaeGurBK9kYTsVLLC2IdSoL9gETgs9O\nyWhmno5wQeqMF46SqHG3kGXcW52iJQyIEyouVK9/Oh6uk2tY2dw+EIeMfNry\nk5rtdKD+sosnWVWrqvAblERdgtlvVDAm8TeLlbTYXoBZSTVAUV5rKf6NMLGz\ngmLE5M+8bFTQX8yntlD3ISzlI27yH0aUhSEFCNVEeaWz0X7FKPe8lxh/aqQr\nzbWn0puOAS27tcSVAGW/kn5Uqp+cMt0/ngDmzSp++mBC0H4EX0nNbAzwCLez\nOoCHKUwyJdQCC8NYYXG+AiFOH5pNapKICf4Wr8mzFQ30K3Z298TQM7WolP4U\nLeM2OjhhRrZoP2hsgaKaXEn/d12fwLdTg52JsLAlvyLNzkmjqeISdNStzTrV\nHOtglEYHK6eq0MXQ0uMShaYSqdZBWuOiHdqgNqY2+n0PlC5Zc3x28QaIqnFA\nDABiF7egG2pOYUA94+iJGESkrf7bsGCvC0G2kjRecwxzays7Y6h5v4zrjuDt\nyX+ggqr0RnoZlXrW/2LITPifUugyES0olfFe4euR5amEhs4TMtwsi7PzKxk1\n/W8xh8gbrPSncLbQIxfPKXyHCtcUyYX9CRS/EfOzdZZr9IAzzIRegA846gLL\nSUZ/\r\n=YIxI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"c6c993bb16c58ba907337a5667da01b3c248e350","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.11.0","dependencies":{"@opentelemetry/api":"^0.11.1-alpha.35+c6c993bb","@opentelemetry/core":"^0.11.1-alpha.35+c6c993bb"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.11.1-alpha.35_1601468533594_0.6777719470337134","host":"s3://npm-registry-packages"}},"0.11.1-alpha.36":{"name":"@opentelemetry/resources","version":"0.11.1-alpha.36","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.11.1-alpha.36","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f73180c8c78739ba2eb13bbdff1f79b8b7b070c8","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.11.1-alpha.36.tgz","fileCount":45,"integrity":"sha512-Q8Bl7BNipgbKnhf99O1+e/40wYRJRgfthLpAifWgJNEOBdH9wcuf/a+t4Fh0bv1AH8l302Dqrg/+/OnYKvP/mA==","signatures":[{"sig":"MEQCIAWYX3fAFuMy0m24xRIlcgizty0S2xAzftP8LdZZVnXuAiA3XMzFD9r3Uf9+NTAOZaH4Wl35ayAEEe6v+3vw5dwYkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHxcCRA9TVsSAnZWagAAjv0P/iqgIWGpiNkBHWNeFwXo\nky3dc7QgBbpO2w5ZOxyfrxwCb7EIKZTAlqtoTSoIVSCAPYRJoG7zjSLkOLpH\nIf7pMBmYNOLDE+teZIrLRNkuiVKcfN62LJYu2mtG7RfjQrSmthC80l0GmPi4\nhkqVHqY0UzmbhGq17wvDlUOHU/1g+gK8zouaYZ8u8NjcA6VeDbDksrqfuC1Y\nodLU4oFPsGBuPiVKxAKTNxlmbVrpapdPDHWNqSHqG8SLhIn4cWeuFbTlRovk\nYKk79kxT2eba8nhPJxLQ4vpX+QvErl3gyaj4Lep7bsxW4y/j3ETRpFpHFW4q\nKdy+lvfZh5CDOK487+g+dGBJ4504D0fXUevuyJITzOgdzmoEaq7fFJFzHUvR\nSBmkOcFgLhiSV7lJKOz0kDxqz9x4XCZAG7k1CGgayDJuAp+UpnILfhJsuFGq\nMhiSI7Si5YY0B1H2oYwaihuIWbeIvyIAODhsklWO9LDTNeNtl7je5ciZbk2a\nVBf7/aOBFIj1D9X3NIR8lOceW6t21PoC9CqTQJGvppeXlQBrzS1O/DqWMFnl\nYXSeO63ZeGzgkuTREv3LAZ6hxGSNPXrqB/+VwK6x2J4EfyWU8r3MA4+8xiWq\nCqKR+Uvw0i+pWJBLbjkvG5ftBb8D+iVEGCySgEEfdui9FPinpbOmKIgtr50J\ngImL\r\n=JwKA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"6eb157c66925fe84b4960f247a86678441f3cb60","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.11.0","dependencies":{"@opentelemetry/api":"^0.11.1-alpha.36+6eb157c6","@opentelemetry/core":"^0.11.1-alpha.36+6eb157c6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.11.1-alpha.36_1601469532073_0.7617485987029977","host":"s3://npm-registry-packages"}},"0.11.1-alpha.44":{"name":"@opentelemetry/resources","version":"0.11.1-alpha.44","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.11.1-alpha.44","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d705d5c652dab148a2dab2d05e4b1c655ecd6fa3","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.11.1-alpha.44.tgz","fileCount":45,"integrity":"sha512-eEqFyIFxrlP2Akwkg1BM+lZQJjYIe8uDcOR36NmLnJQpeyYq2VJbv+NYYJW5jVnSrwtIZsq1JtbphItCPMQpmQ==","signatures":[{"sig":"MEUCIQCjvUzs955+yi9prbp5vchlzls4oCsVGVgHSrj6FoTZNQIgfLTkKPXUHNmtmdxVTFHHAtJAaUvbtgUC1G1HnTrB7sA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffh0XCRA9TVsSAnZWagAAVBQP/1xtZu8DKkb2q7QSA0jZ\nBCKqy7+M7nJLR+LL/XyGyfst4Kvo2ZKjtVuCBm6wF561fLp36/5q1YI1MxHq\nddSXPWqoROQtK+b9bmMzpHrrK0KqnZYB48nvPpKwAKX9v4HYryENsw+/EU/V\nkwKjWSoZ4UuaPrDXhdJMlmlHqX/TzH2tKjVL7xQQprv0wJvHffsFe7Ky+MiG\nCLLJhLE2xWloCV3YuIjKIir0CDMmaN42J/4zby3uwNOKPQCb0xbaJwbjglya\nRfTGXeIbdbZLGChxTLu9+oN6l/TOpoRF78Wd/tscBxoWuYYEPdewRSS2g5ct\nh2P5wLXf41KI53D3z/JWRsF9Lj3R5B4SIlmX035ly8SfLLoqsXIQJP+ApqNo\nfzlG9K6VRQg1FQW6pTB2tfnZy36/DInzHN55gyVJP2H9SqNOYFNgfmIZKg07\naNZSRQbQP/XcGCKZ6Q9iKYSGNJSnNR9ne60z65cORsYclVnF6VzEEK/Rm3E5\nViqVuvpx/mnUNhesgbSf1H7fABIpQQWqGaP2AW+zgpCki1x7FAC5xkp36FKd\njMnaavq83skiDyMbToCfV50AGMHYMInA7TkohdCtBl9IQaCYSjzoIYCpuLpD\n/ZXpvGcG765DybXwvQBbmIp81smj1LGIKy1BLl8wfmRJRkYjuUrpCAn/NO4p\nuixe\r\n=RISL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"240f852cc41707c751f28811b7ce3d243382e3dd","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.11.0","dependencies":{"@opentelemetry/api":"^0.11.1-alpha.44+240f852c","@opentelemetry/core":"^0.11.1-alpha.44+240f852c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.11.1-alpha.44_1602100503559_0.35968270960318516","host":"s3://npm-registry-packages"}},"0.11.1-alpha.53":{"name":"@opentelemetry/resources","version":"0.11.1-alpha.53","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.11.1-alpha.53","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7f4e9b78e07ba9faee4ae304b2bfd74c740a72d8","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.11.1-alpha.53.tgz","fileCount":45,"integrity":"sha512-/bgN526HMi/eL+hIR7SrFiJEncWNWdKSnzXa8fAih8+DcOH3/uCuBMKvd6oYBS/DH0RYplQSnBkG2VgAVlOU2A==","signatures":[{"sig":"MEYCIQDOvhkJmopopdj0yUmepRzFVMOawo1qqblxnqwbauC3lgIhAPxVoKuBgZZNdw6W0chWVaSBG3rDZz8oTcRmp7m6KaEe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjX0DCRA9TVsSAnZWagAAWYwP/ijieAnfftYs1WEy5mbY\nvnYuEdPjBkYnCyUAeIToHycFFFaWu88l9QD/U+WD2kzh34yaaboA8c66DOBk\nyZL5HMWmt8Hv8dwyI/viCVM+9WsmdOrNsH4BWHcetPBM9Mf5ZkG3O892bIfB\nZujEaJQ+c9+EdSmeo4kOHvhD1O2r6SuT/LL8K4aYCy6JD9YiTxUc3KjEX6F3\nhO3zFXIwYUlCViaHbO/3JeFGCxWjstRuFLcrI36jqXfIiy7PRnl2BlURp5GB\nVRMo5UAiZ27KwTl7wrIOra34P6rfJBgFuhVecaBXikqWfc0WMAEyjreKbzSi\ndHJlIjW5ZbHleTDwTqpuTZY5MaBGio/d9XJWG/LlqlUPUNmFd7CSLuDojML0\nUH24xiwqqHr4e4NTQiyyh9ccF/CTZT5XtpPTnn1vnekUWfMw88PiLcobIfFM\nmULKp9b0mUMxEgwESpb4fD1QNU6zPWctRa5EqwZLHWu/0a5+kMJMKjZ2tTFy\n8CRop3pVpsebtcQA/PpJz1xFqHysFnFP4ONuF9uUloisjL4Z5gC5kjbdvNoz\nvvgLxm5QeE6yCfZGZC+n14KWbt0ZYZ1nzP4Qjhu4XYYzCjtl0WwYKG1F9ejN\n8g37OmZM3dnXw1Ya5bY9VR4bsH72odbaqTzi0C8Tq+0l9JfzQdBIjKSWtELV\nq6dI\r\n=IFOE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"00a8ce7f982ea24bcd4bc398477112894078ab29","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.13.1","dependencies":{"@opentelemetry/api":"^0.11.1-alpha.53+00a8ce7f","@opentelemetry/core":"^0.11.1-alpha.53+00a8ce7f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.11.1-alpha.53_1603108099016_0.9086196309952237","host":"s3://npm-registry-packages"}},"0.12.1-alpha.54":{"name":"@opentelemetry/resources","version":"0.12.1-alpha.54","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.12.1-alpha.54","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f0594e71321393f951f4f12ba3572b6154bd82ac","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.12.1-alpha.54.tgz","fileCount":45,"integrity":"sha512-QSFLO9GicaT6lUgdw50e16Ecp5JBoNXRNwovvDjZ45d+HG1mKvSpQtJmm6Yt0O3EBVEhWBS3BsAPi4EVtMqthw==","signatures":[{"sig":"MEUCIQD26AlIwcFp9E4DO9/1QJNrFG4ROYtIlftSJMd4W5LRmgIgNMI0tngof/oHiw2RsHonPO0DKCCuKon8A6dq9Ga00ro=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYt+CRA9TVsSAnZWagAAIBsP/1OVyZB/8yY8scNuUS6i\nUvqRfCrJ3bdI3QVyR0wXN/ljytRDHyXneJCzlAjdCqOIRFo0vjsczE5R+rRm\ngfRPB0kEO01o8PB7DJISK/c0DO9rb+OqURS1si2wnMCrH3zWSsQh4ZqO/9r5\n5ubcKQmwuKdugAX9d9Ctnn9LVHEw+5P0Ny7pExFz0EPMrCcnIkWl9umKa+i+\n53Ne0NsiG1LGKW8zbk5wbGOQXBXBgqGHXUTAwL+A8hwbM9eu06at2vWJSEDS\n8Hnt9Mycsf+liIoA6Ojy9Yll2D8u2+b23W0+sodKofwaW4TBd7pWJQqcbbbH\nIjQAsfe5Gs4zd/4N9e6vOsjsnAX+CjGiQ53o3sWhfR97rHFi73FCWDqjOMl0\nOF2EY6VrIOzSI14RjEMFKA8zYZxRY7qIOylWsM7bDgQzgYAqN8eEFaL9h2fM\n2iZFoq9l6Tx8ecfc5INeXDCpDOfbNViYDbDLaUT8TRZ6ClpCTpEg87S8A4gI\n20Yd7hWAVARCWJEhhG2YKMscsxWqXtQvwsd7PCCFRBd0wCKOxLx9HRxLiE9C\ngRqLwu0hA7be7kPBZKog6wDvlrsBsdeKWsv0gf3x6YRDrgAyfz3m5EMV/2rt\nMPYt6ea2wJgMF4YkzddZ+CsX5KI5mUO0pkJD/I5vcS8e6eiaRoQBHZrmSD6f\nmbUz\r\n=9u8W\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.13.1","dependencies":{"@opentelemetry/api":"^0.12.1-alpha.54+3f72613a","@opentelemetry/core":"^0.12.1-alpha.54+3f72613a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.12.1-alpha.54_1603111805592_0.5072234412858905","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"@opentelemetry/resources","version":"0.12.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.12.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5eb287c3032a2bebb2bb9f69b44bd160d2a7d591","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.12.0.tgz","fileCount":45,"integrity":"sha512-8cYvIKB68cyupc7D6SWzkLtt13mbjgxMahL4JKCM6hWPyiGSJlPFEAey4XFXI5LLpPZRYTPHLVoLqI/xwCFZZA==","signatures":[{"sig":"MEUCIEq+JuVHapw8yJYvrcuXUgatZM4g6nGK7ZZR1BbLNbbbAiEAwCfde/JwN/A8HZ2tXKdeBH7uecdlLlUpVZEkiWSmDJA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62118,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYxhCRA9TVsSAnZWagAAA9oQAJy402/DKzSqC8Ncisb+\nmTaLGb5le4MHvDrAXffKeMq+Qhl9GoEDYup7VKmgzlWUQgaXJHJ5rGZJ2ZCJ\nYMlg1vhKXf2bo6H0gumFmfb+jmmgGbEz4R4Wm97lCcbAW8mVXTnOHucle/n5\nJbN9BNkvMZEZNwFkPvuCrlULZTszxOIAFVvazzpIv3UvhulXJVck9UPvP0ij\nOcEujJp2XR2zZaTiXQxEgLHU95GHMPyeEqz0eOlNDEJq17SA+7KR0DXj2TT4\n1o121nlEUx0juP1dm+QSmkei424WzqfzgoPI2OUuyLjAJauZdziY89x4juyc\nkIOzsgxqXROYdpGotUwtOuGrJSJG5DgBhHzAWWN9lPFuO3jKswybOiuD3IoJ\n4Gheg0THNiahJSfXETbXFRaD+Y8hlF7kGAx531/V1190f4N7BsVoUr/05kG2\n1RI/jk9hB3nE9Mex8sd3muumV49GX5c1/wcPE6bsgXqYalBsvkuzdhjfE4Wf\nc9H7O3mQ6JRMAcnpJkTr7a5UtSQZvb44n+XPtPneb9hnGFXS2HWx1hZQF8OZ\nyNJ+m5lJdTJn00BOWxqH/lgXVs+XqbSkpoL0ogXzF8HIzj+sITILTCbrqjKG\nE962PFwh4Ena+HuaA1R1O1rsQHgPc+YBJ75iwi2OMVsvm7sODLOHwj+CSyWj\niW17\r\n=mj0l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.4.0","dependencies":{"@opentelemetry/api":"^0.12.0","@opentelemetry/core":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.12.0_1603112033336_0.2595458775499204","host":"s3://npm-registry-packages"}},"0.12.1-alpha.7":{"name":"@opentelemetry/resources","version":"0.12.1-alpha.7","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.12.1-alpha.7","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"779ea41b81bcc4cd2cec6e4a6e2589706aa75b6c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.12.1-alpha.7.tgz","fileCount":45,"integrity":"sha512-10kSTBAviKME8sqTYayaMqrDcdRMPvsoNMYtGvEK76CXmUStGFmVsL0LAvAWk4FDs5rQXaddgY+7NO+hsbuCkw==","signatures":[{"sig":"MEUCIEOEJNhun7kV8JsW5P+Cmdm/ofba3dUoKU5+nzQ7uioCAiEAyE1XbeHE+a91hz/cGrnXSf3NGlHbM3cc4V4xft/g1Lc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflzurCRA9TVsSAnZWagAAHDkP/RtRCeUXgOCQuFEb52Mr\niPmVDHIPMZwwPQ15WeUiMWd62yCNZOZ3fTzzTbIqTNgjWb8FhKA/QvppUwgf\n6d5yKLN8Phpwue/G1S8jsWCPX2SNgSRlRYK+rY/6eEjVC9O4TmTwu6t38gzI\nZjQoX6ZhFUofGAPQqT9bhFHxgzbRYDNzaq2e6R3txuy/jhGB2XML4Nw8tDRI\nEQPsjcVZgDX7k/tgBL9viSU86flmM/uaR/FAdy4Qle0l8yT80VeZzG1rnNP+\n5IKBocFS6cwEqT9iX5G0pmf8doO19ytXLVtTOOGE7d4o4215Rlm3V3Zm6BST\nJ2p5kTQ8SO9OiQZjNhLCwCm+0KLzIUyZGxFHYnZQjKGSFFhEFj0IL/BaSATZ\nNNXJ6+3tYFK8RNFAqZbMsqGxsLMbgUmrgvdfdyz0ylcuMD34NdwFTXxekhD2\n0imTBm8c+d4f5pwUsFGdVfffZIlidul/qyZ+y9Z60vNQbnWQdbubFZLEea82\n78b2/j1fmhquaB8KJfkLZ90BEArfi5nZQBkB9+PnHNCQwVZNmYjHbW5s/Br4\nV9K3JyZ9my9frXPBkSlPNkojuLoCRdGNgqNxUTu0ZlfDneDVBilpVan2vviQ\nxCHCKDWCXOzcplKomGNOybQuQrFbaAjbc/DFfFCc5Oh1I1JkDMAUTq9SNAFu\nTSVQ\r\n=QQTi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"46f31dd2285d55d239195032528c3dab1bf0e15c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.13.1","dependencies":{"@opentelemetry/api":"^0.12.1-alpha.7+46f31dd2","@opentelemetry/core":"^0.12.1-alpha.7+46f31dd2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.12.1-alpha.7_1603746730665_0.41875103327090724","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"@opentelemetry/resources","version":"0.13.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.13.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3f3f0647dc9cdfefba3bd09ebde190fc5d81611a","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.13.0.tgz","fileCount":45,"integrity":"sha512-3fkiwFKTkSCP2TA8OeBD2JYNY8PeYP3rKTR/m82rW1/bWcaGVgfl8FDgRQ1kw5qixSK17zWVwUjvFt6oQ0Ia9g==","signatures":[{"sig":"MEUCIQDibwMEY2A4YvdNAjELZ4To37ujzJQEebsoHn0K6dNoRgIgcW6kQj4E5uvU4Dbvz4LCaFdnN7WqBuxE48Pz97WDfVQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62119,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyql/CRA9TVsSAnZWagAAV5AP/iq/7Wj7PWPy6kuTOzlt\nwBUPJppTcQ8z4iDiyiYp2Cvbx5zf6DEXmNnZ3StCnZQytVcr/WRAeTgxVJge\n2Zg87AkJJGVoXWxfGMQi31y+PzWzy99OZ4jwb4asAXks16oNI3U8yVnBTszu\nZ/KS7+rta/VQ/wysMX70qmNqcu9IDUvQYuq+Ho1eL2SrOjcE1tDjsuekH58w\n2X2qrUF7+DDlljlt+kO3iAYcjz9BP70oFBBOqfkNIJ4ulIntpbsR08wi3SbZ\nm0OHvBAA3w9ialrWi/7PhbEmpYJQRnb+FIt3y8tLDJTo4Ss670fnGo524EYV\nold8dcvi4N2fDTpXPtSxCsAfmHo+urpdQUmK7WPdQtGIJu3LyFVGWuvUbvcq\nGaZf+c/1HQDLZQFV+bUSzVyAlY4NNEB4QJr3YfURZhLk26MwQzeL3MzWLPwq\nvCuZ0HZv+TImRSNndF94FOpTeVKKDGBx5/BKdfEVUVr4Pp+0o8xIVYk7dYUC\nOFdYInSk91hzFGiJx+tMZpaNZgQ3FL5C/DMJKmpShecO+05hUor8FhJ7XAX3\nn7/GWudoj4gc5otXCs5cQs/HFVv724qgEzdkIsHU3t9t8zDs7C4yF64BPS0w\nctItrSC2AM/LVQmh0BbRSxg2J9nWrZduHV0RYxKWlGUUF/Q+FZrExj+F6bwy\ngbAn\r\n=aAVi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"86cbd6798f9318c5920f9d9055f289a1c3f26500","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.13.0","@opentelemetry/core":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.1","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.0.0","ts-mocha":"8.0.0","typescript":"3.9.7","@types/node":"14.14.10","@types/mocha":"8.0.4","@types/sinon":"9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.13.0_1607117182658_0.6413375169431181","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@opentelemetry/resources","version":"0.14.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.14.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e89378931b4e02d4b6fb526d237d9594db2bb68a","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.14.0.tgz","fileCount":45,"integrity":"sha512-7XVML4HxvoH6kWY+x0mhMc5m0a2YBvPCTSX7yAqyp9XIGvFpdjzAE2ggJ40DZrL1sPv9f0QYAbnIKFDVLBTfGA==","signatures":[{"sig":"MEUCIFa4euKHj9dUK89xw7TDAkbkF7fgeY6PoZVHEec1A9yoAiEAgFU74D+cNi7P0WUXnl3RywL2AbWC6mhZRY1X8fow/C0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62119,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf28UrCRA9TVsSAnZWagAAYRAP/iCsFY+rsKA9B8vNtw11\nsSLz15qGyZDxh9rZRrgwRJVwd0m5vHwWICAs/o+QEISbcFj/Qj0rzbdZBLp5\n40BwXIWY1EFlA3fZqf5qgQuKCQbRlZbEmsoajGTgYsR/TmO0LMM8GAvFNcA0\n9LWlx97GarAjeMQ2r8uf5FYTpFlRuQKcIEJ2jLSCsOPir4HdAW0E8n/xyT4U\nFI0k67Di/wguJOVQtHnmcgUq323AegolmNnJebNOfAqs2mNpI7CaNWcIz1Eg\nApHbwgCjRcIWtWxgmuH76MxFya6T3khMGTxfBV2gtDDmyCoL6/YKeqpmbFtC\ntZC80XrpHUhCtmQKysZw1ue+2ngWOTC6EMaGNpk9bvlfBeSXQBIv1S4iS2lZ\nD1YEXdRWBCp3uUucdywQWFUsSEWWrm3ZZ71hMEa6mripmUllR6E0BzQpntsl\nLXkZH5mUoc0Y2da3KzttNjOhD2rFRO0se5cC1DNN3AbKtpZu9RvSS2Mv7HQQ\nEE8NorFvu4AMPklezCsuB9dNxYak716A3qHzjAMxWTRj3e5/08UiiC4EJZCG\nJf6vMu+Xfyaapv3/8c4By6YKcwGFUbfwT596xo75VpviHGsKMihsMRa75i0P\nZSoTWeywzC1CDs0L8NwkJ5eH+LNa8vEWr9aio64VGPOjrj95AwnQQRj2iYkC\n9139\r\n=Grir\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"27a8d4530c56257c191468b073669909bf8892a1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.14.0","@opentelemetry/core":"^0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.2","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"3.9.7","@types/node":"14.14.12","@types/mocha":"8.2.0","@types/sinon":"9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.14.0_1608238379295_0.5588367451132641","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@opentelemetry/resources","version":"0.15.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.15.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5a26ec1753d005470cdb31be524eaca7a8532ed2","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.15.0.tgz","fileCount":45,"integrity":"sha512-0PK6d6NEVwchfBXqjoMWMudRsP4z9IUdY6qSlBPXL9ikOcbLzLp8Ngc0rY2BrnZa58CttsRRceA1ul/1ipp+1w==","signatures":[{"sig":"MEQCIE/Iu2ATZd4rleh8ABbfHeb+sE4gq61OaBDNXRXpYc2xAiAhZ8JtB2yzv58B1WKZxlV7PnrRuNDKnkcKLIkmLXDKfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62082,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCf4SCRA9TVsSAnZWagAAyO0P/2D5WBpW47Ob55jcDBlC\nSWnFBfj4WbzM17rN2z4RsfnJiitdKXP2YzsJfSwcl9a2nfFFv3/Bd8bCCp8c\nVwQ6AgSpdYHhFngmHaCGkgVaXtygDN+k47xiNKtX+soHY72HjRg9/0V6SCwW\nNFeC8XMf++KdDjyjF7o+vjLL88JmeHvkO2kHAukxweXpTV1TBuyFeTs05Y8j\nW+YFARRLJ0c2RSByYRbIvpnCHKgPfvrUefk5btCQwooZh26t6PNvCSgSZvxO\nbkU5w8czNrEY0kVUPZh45u5Cqja/5qw/vHL2zWmtdeqyxWdEl4SvNToPFYko\n6/fO8ZUOO9gZMMzzmltnYGk9NeljIqWpLfFYe/tALSkWR3CoF4jo+u1xgHnb\nwz5M0XKf56EDChWlNBbzjASS1paDyVs64bp3HO18eZs5F7VO9eBAQFDlRpxz\nRVhLuHAgEqQldOoGetaS8MaKCmR6/pM5gWV1gnyXQXZq8qeSyVSecVfAkFgL\n6lj8XGyLIbBQ0VN/cPTIYZK+5brEzgNp2VKSfkGlaqwTz+cjqu0hQkKwPh2q\njJUgF9/RexNeIlUxWrJAcympQp6aVHtObIqKz47lxocPH+QQ/i/CVlmw8Yj1\n1jkVv68JJJzFtOZJ/Vzz8CEFE2pGUMnOtTgm96seqjdyEnlJMX4o7WaS0jYk\n+uPF\r\n=cBKw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"960b868f5b7686eabbf49190071b8463551e5d8f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.15.0","@opentelemetry/core":"^0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"3.9.7","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.15.0_1611267602040_0.4641719074298778","host":"s3://npm-registry-packages"}},"0.16.0":{"name":"@opentelemetry/resources","version":"0.16.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.16.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"40d3737545e4cae8b9c46b42acac041711bda2bd","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.16.0.tgz","fileCount":45,"integrity":"sha512-HOAmcRnZGbEhcddsjqvz3Q/mEg75PyEoH/CZZ3YGqYmwTPimTiusm8iz5nXMxp1UpT8rkzlEGei/E21SQ/Zh9g==","signatures":[{"sig":"MEQCIALZiVNMCXNIXQvDLMGjF9R5mTkibwPfoyIBWHiqEfHKAiAKg0UgrNM6rVeLyJFPsgXQqcIEuCZ0xDmNp2ve4kpbnA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGIG3CRA9TVsSAnZWagAAhvUP/izWaT1tx66PJBN4GS8U\nrXJALeIHs1iGEumGPKETbZlKagoIoZxd7Y2F6RwgQ+xI9fl4flW5+ZJsVBuh\nBpTLJkySZSBGDfS80GzwZxjxsp12vdK524sx8nqp2MWu3ltvEqWi0gZ2KqF4\n4GtRYISwM9CyiyAsR2ev5zFI6THdCgj8b16n1imypIyMwYMMp7R4mGnOd4Ok\nCzNFpG1v95cGngwZW4/u/5YP/l6guhZprQ/m8T2fvPIlIYKvKyo60Ftg6oZV\n3EGrzmnyhpjqwmjyM3VNgp5W0FUnqAhAsTZ8lMjlrwksGKwq5r4MG9IXDtzU\npMGNheLUuADAguqVQxAH1qCGSLtX7MjZAtuexN40ZhViGnAiHJl+1BG5KyFC\ne/LUMKlltwKlq+6KBWtUCivO3mmDfvfVIFO7BUnLAy6+JoRJWyrRMp5p32kR\nhRoSd54k+0H4djeV29qrOW4JpWcALPLyoC7d4fwnLo/W8A75ZxVhi9jdEcDu\n+Of+KFbUiNTWL9qUoczaAX/QupBkIcbCX14z/ggPviOat1QltpYgpCjpZycn\niptWEa9ShodxGV4JZEngw+w/OxT/DHa0BHYMYc71NLddXXD7XxR4swmkYHqt\nSgtXn/fJmyaFPyWgqQik01Cz0+mWLRQN7WWjwtjMvpDAY0F2iczcREHg/Ia+\npgUi\r\n=ekue\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"e68863f8e63854b08ad13fb54677294ac6d6b681","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.19.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@opentelemetry/api":"^0.16.0","@opentelemetry/core":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"3.9.7","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.16.0_1612218807314_0.18260059808625706","host":"s3://npm-registry-packages"}},"0.16.1-alpha.10":{"name":"@opentelemetry/resources","version":"0.16.1-alpha.10","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.16.1-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d9315e918f7d5b9753297e990b72ca9525a3862c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.16.1-alpha.10.tgz","fileCount":45,"integrity":"sha512-/7wk8JwHO+lGmBgSRZBuKcIEqOI6pdvbJXwiR0tIN8q4L5ULmCkNMnbJ4h1DPjpgd8IinYWHWeqGGTYwat17lw==","signatures":[{"sig":"MEUCIQCGs2C649ojRgi40lW/8mtKzUqk64N+5m4WRWtkmUfcqQIgGXhvq2NbEx3EipZXupLuuqlkoS+SOtm1FzDLlcicloo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIV23CRA9TVsSAnZWagAAG80P/35srKIYtHj+wvYjLWVi\nbREDAiMI/07Xtv+S3Kbh3xuGYKa1yuYlfS6Hcrs0MzUN0jTB6jGbnu2sNU9A\nLJm/ZvrWN+ta3crSup2pKoK/SoKKB59k3CktrQ+rjgg7BdgoeK1n+leab4MA\n9CkBNx2js7tvDAzBnt6JE70MH9Kgy29HgO9aos16fc1CgkmxitRKsMs7JQD8\n8Iv2MzqIiUW6qSH6X+aPRgSVq7l0PKzdKv7fYcjIJTaY2Swg8E8YFM6HOOYC\ncgu4btfB1EUrmgHf9YnP9BnD9I1+Ul/zgKYx76LVkQ3HQMXvrcZgXux4ZPey\nBqcTrZUPdWCAMma+BTrsh3iRDyRvGIFZ+N2DZmIhjxr2ljBIoLnwkm0NqH+d\nRuqZ0e/0yXL9oAoKSzxBUPES8ovK4zssV7LtGjNcobhelhdyuUrlO1GRso5W\nfqMW9+Pa5c8Ag1y/gxqNLcmV6FMDWglc7T2/5s7QDqRA1QxVrpYtl9ULgEvl\nJ2a9r3o02MJXR4B8vpPWwBMjXt/E+D/CtxCJKpIV9pFcxDXF/vfPF67sdCBb\nKFv/4/POsV4AUCcgwyC2oJeHYSDz633s4Z8OpMNy0XxEQDBe9qnSid1J/KlJ\n2AciPansVTnkeFFDnwo6bIwBPBOfK6nXBWrUO99tq5jy611p6+ZQt1kkQude\n+Lah\r\n=+m7G\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"cacbbdca0e89d31e2e0b10a8ff5fb86d7a714906","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/api":"^0.16.0","@opentelemetry/core":"^0.16.1-alpha.10+cacbbdca"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.16.1-alpha.10_1612799415253_0.06711073559864977","host":"s3://npm-registry-packages"}},"0.16.1-alpha.11":{"name":"@opentelemetry/resources","version":"0.16.1-alpha.11","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.16.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bd9b17fef545d946905ec949907407e5eded071e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.16.1-alpha.11.tgz","fileCount":45,"integrity":"sha512-U8BaJqjmrunvXOhYwmYrLKvrMXMStwjH97F1TduERl/onlroKdYMiVmacF+Qgqh/tJVBOtRBOzagbFwhvHYERA==","signatures":[{"sig":"MEUCIQCBKHYcRVyN/BLH10izj5jokeCFGYmqMCBn5vUkADUBYQIgGnhODigO94/NmQuxT0wmMZ2GM7WyuobKZaukms78bAo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIWQ8CRA9TVsSAnZWagAANigQAJSFEwrAHzezT15gnENd\nLTh9h5y6W8wADsrYRFOLTVC1IyKWFbsTpD6+7paUkb4M1EsTqt4DfiXgDRpb\nXxJbAUm9398NdBPhgAnvvvpucv0TSkPsJN/oA8Ega2K0ZvaQ/9NGsU/3QSHz\nN9a+8DsqL26ziP1cnz7KlY8B4yxc2b4i7o3WbqljAbmZoGihnYdgeLSjPYw3\ngW5vKmA22J4/jVrEzga8krMpZYloLjlMo5X47P5Z+/eEsFpMn2nRjWbnxdUG\nJgsWkB81fqnGBjSwtJA9xoKK0CQYuB6qdzmM3hV3Jx44qAPsUisJpx8u+K9l\nl12ubK5FgtRDqM3TOH4x4BkK2aH7ajG/7SeH5F6pZS5hd8yDiLhgv3Xr0lWu\nony923wVrerHlnNI9SSpHBmtUXlTDiz01V0+oQQANnbdxYXWnkVG5IVIGa9n\nwfIsJhvUFcAjkvwyzEIaP5LFKAMztXpUoHA2P+kVwUyLQrQRlUJ3fXfDBGK9\nWmur/TUYS4eRayoaKAOxDUDOF/Qe12xNhFn6b0bSRaCwgHC/o24drHJkXJ+5\npLfzGoBaira9CkPk8B0q1DdW1luCmMskzj2it2bi1xxRBoFpieGyfSSWH+f2\nijwEcEv8045W0a80jpUc34S+CMo5tREQiOrl61FF4baMtHF/Xus+RdS0w45w\nnpbG\r\n=AH0z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"70a128ff5dca16060ca7c2cff943369ae9999c34","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/api":"^0.16.1-alpha.11+70a128ff","@opentelemetry/core":"^0.16.1-alpha.11+70a128ff"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.16.1-alpha.11_1612801084057_0.3310941407078343","host":"s3://npm-registry-packages"}},"0.16.1-alpha.14":{"name":"@opentelemetry/resources","version":"0.16.1-alpha.14","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.16.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"50175c5fc8fd224b5b0156a9fc038b11258b087c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.16.1-alpha.14.tgz","fileCount":45,"integrity":"sha512-AxLkbl/KTuqtRsbP+p2ifwb4/Q3vxdA1x5qpGJ9A5HrCIHxggbcNYeiGZdw5wMnjQud7EaXpDg5nPFWAt3FlXw==","signatures":[{"sig":"MEUCIHIPJAwT4CErNKlH8GrEqe5i192H6/PNRuIeQDZ+VC3oAiEAzqa2LhnE1VByruzbJwK4ov+dutVheXv1bptkGDUWMJA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJARyCRA9TVsSAnZWagAATgAP/AwHhCu4S+tEvFp/GntP\n9siznFA8wWkQvpwauQokyybtE5x6BMq9vVGVBDpvCLTEAPJaOFmpmdXcKqs2\ngRY9mQeQRn6Dha3Ia0NgyLeGbTWHLVz/pcrD+sZpfvEa+5wEnnF/abEnXmmM\nKOBfF29IyrLWjUyaGPFingFYR09/Q3bttkixVeMaJtZRlieEZHSnitmUXBX1\nLvlV1Md9vjPHYjy+Ys+M5FKBoTYEE+7tROwjIQb10PvdJBXYiXz3+2FduBKc\nWnxN0x7wnQ5+Mpu6qE+n/4/mrVuwdS4URiM8xyxNcZGsFOrJ7dm1zbAT0zuD\nCl5A4LhPKJL2EoqbXOtB1sp5PwJPH+gwh5XnudOwsS6H9p02Ks7lN9jUb8GX\nxzkBERr+QZMUiVHRvz/Wr8I2yh88aemahC3o9/3r6PUVlFtMTymET7J4P+FH\nPhrCJVQ7j+8gEi3GSc8jfHSrELSZYgFlrZRnp56BtX6c7Go89gjbecqJqP2c\nZktt6XRVyCRBFIkYD3//JZVaQE4FTI8vGl9QR5P9WDlaQMo/NXEjXC4AbmMp\n3E5EpB9eUrUHn4JzU1hpTv/G5c30+eW8MG1oVOBr0iC5wl+VlNH/vC7ZkG01\n/qnwGoP7xPpjWRdPuLczVtXl2DL4DshJoV/4LcsNsgmExIsALkavekX45v8F\ncDXn\r\n=i0oE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"000a8ac099a3848a9a3c66f4bdd4826b4cff987a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/api":"^0.16.1-alpha.14+000a8ac0","@opentelemetry/core":"^0.16.1-alpha.14+000a8ac0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.16.1-alpha.14_1612973170508_0.7793942042492619","host":"s3://npm-registry-packages"}},"0.16.1-alpha.15":{"name":"@opentelemetry/resources","version":"0.16.1-alpha.15","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.16.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"312abf72eb1cfefc3a1f2695b0dca5733386006c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.16.1-alpha.15.tgz","fileCount":45,"integrity":"sha512-flcRUOK9fvoXjaypir5F1osG+r3sOfni67gEMvZ9QtH09KVnBzcrSEtVncNO+ImLDvn5stZKOjaIb3ztH+jmYA==","signatures":[{"sig":"MEUCIH18wc32EpXPtGkSwosLp9pIboPF4y4UQMWRVbFS55tYAiEA7iVtbapvj2a9ioPOdE+iIaPuvBDG4c4cDi5FyQSS0aI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJFulCRA9TVsSAnZWagAAKr8P/0HB7n+Lu72NjP/1y92e\nfs2fr0PqVchfnLpgjj4HxA3EDm04cvfbkGbnZUd8A8CeKjMbtPrkKYy1gQn1\nr/fZvKjIltRsNDxy+yhvVu5XpNm77iO2SaNqsYbCT7Rt0M1LW8IkvQcwdzlL\n0SlaNFMuD4KzAJqJq2a7lyT+THD6l+lpWhsfy0FkJcmBIOZvnTPiZsZUJP+X\nCUlu/fsK4+SUHGyFCcegj7vKVWG+ijxuFOYulYHj5+XaW985G7IDF9qRodso\nusNIZxzHCQihXGF+/wWWjoCUtF+wHF1J1iDq4v0hayrUJUsmc66AV9aE1u6D\n6kbcyExUjGu6zMSDdTWqZW9ZXk8/8nfLqKURn34NRY/howWjcv/Amwq6J38F\nrPbvxcWlGuZbie7F+zlhm1x7bjXPwenJ26TIPARqxXb+bTXT9wkkPl7Vt1Nn\n0+ZF8aF4lsGDebhqdVETjSvW6e71tQ7M7O2Qa8AQuFuclaAkqGRNuZzBVrap\npk4HHUiHRwnOYCUXaoCIBfpEZunPl0BgERn5MgjaXzAkW7eaAtkV45e3blRE\nWiGxLUJbtJY2Hd4dvUDv0JWNmml78XTjAPrfvnYf5NqzPPOfpn84df7YKA9U\nEvPyVco8F2yGjXS278oo1krr+wqZ6tT45RYMzTkDn+r0xpBFbXQ75KnN8Y5r\nHGhq\r\n=aP1g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"1d682c2f75f9d11265cfc1692fa822174594d4b0","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/api":"^0.16.1-alpha.15+1d682c2f","@opentelemetry/core":"^0.16.1-alpha.15+1d682c2f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.16.1-alpha.15_1612995493302_0.29556701817542774","host":"s3://npm-registry-packages"}},"0.16.1-alpha.18":{"name":"@opentelemetry/resources","version":"0.16.1-alpha.18","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.16.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b7f1fbaaa4aeec1a03310c3fbbc3e355cfb6edfb","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.16.1-alpha.18.tgz","fileCount":45,"integrity":"sha512-PXKcBDm5oRs9KfEOc/8bcyHYWLle44PmahOArZB9RFaMciqX052rlcNN4WdEqsgAT915v6PaRWMa4j/Q8tR/Qw==","signatures":[{"sig":"MEUCICaKgGMzwLvnZAW8kymKOqvlNarUb65Gf6kDOIWjiP1LAiEA0NNYUoQSd/mVZeCToVWCbLYZcFN/lGSU8//2+7t0NKM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKWgWCRA9TVsSAnZWagAAY8YQAKGDq8W9tOTwk7hEG/x5\nWAlfXQY2wdlMMdI2YvGNJHqEys/Dns6bIXPtMpMhv/pi3gVvNL3AsP5weCiz\nAO7+4beV4Vm+dJm8vGCcg9L1TH6iGrtdcj+1uEtuXIOYlYecDinJCvql2ur1\nNo4o+3iiICwg8glHuMUSzO+XsMkX8ylPw2aub4t2bmtVBo90YEbXF/y6WzpE\n9pEjXY0jABR9vEpgtHF878S26We53WIW7cmytwbF53k+ATaIt7AeY6Zec3ir\nM6wOX2RQOa2mvEi5uK4U7N3t75Y4pyXrxV3YLunTIk4lhJep7OqEG1cgyhqQ\nXYne6pk55dVv3eKjnMryd9/PnGLYU/vNPnC8gDRSvyVIMRGutOmJzxHzwJvQ\naCz7WlBXsZbqnkwy3wMR/tPuhTNZubCsS7ufLOMhYX2cu+M9QPZA/vQ+2yES\nf2uolKpss8PXl9S5QsOax0qlT0XZV/jtNJ0QnA5MUqY6VaNtZT7zo29uIXJW\nP/+RT6f6XZBY7sYhjXxiId3bcF2JaiIZ/YwfBFcrp6dzEbIvNfyuk+hSdn4h\nsC7Av8nZ0/6rwHKcEEZSwqToY1soHAb3yIijL52eDiNWkAS4G9/uW8wUfnXM\nx7pXpXkZrQC+rQJC/eC8L6C26hBHm/2GqM8afMyf4InKDBW68T3NC3NDZXdi\nHkBK\r\n=VWqq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"9f965b0c749108df00bbe44eeab84d79b04bb0a4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/api":"^0.16.0","@opentelemetry/core":"^0.16.1-alpha.18+9f965b0c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.16.1-alpha.18_1613326357745_0.7738625393152132","host":"s3://npm-registry-packages"}},"0.16.1-alpha.20":{"name":"@opentelemetry/resources","version":"0.16.1-alpha.20","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.16.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d41f64098cb6f87235a34f4ea5589d523a8fb3db","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.16.1-alpha.20.tgz","fileCount":45,"integrity":"sha512-8+AfZjZ/fKoMMx3nGKXhzth1t5cBIf5THRBUeAKUlfEAHUjX+0R8YMee12NbQxbJEWx42TKz4AjsgJMt+CvEjQ==","signatures":[{"sig":"MEYCIQD4tmCJIxRUWdbe7/0U5xBKAR9KfeB8yPsSUd8By3O3lwIhALJNCyL0YUlP3hYV7BUlyNWHoLzWTNMNI/0AOxzF45UN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYHxCRA9TVsSAnZWagAA7nAP/3bd6o/M0qdmM9OtpMZ1\npBrtFDbSfkR9NHXFwDxGTZ+os58kvKOE54czSnMszw/DLRYLjcyeLliIzKwE\nEZXObUzXRS81lCBfPx7tNfeNiAUUIDGQkEgT0/g8g0JTwFFfOZd8+Mf1cXSP\nhqegL4/bFyLR2ttjhiryijndTvaepAmDDD6DDe+VLt506DN7SusHaQr8A/6q\nDd9hbihuUqNg1KrmZzNcVb/5ghphlYBZ6G49Gssvyu/mU92XkV5TjoUem9KY\ncfisQwCcus/KjVPbTGYMHqGY8W2cFT2tqaSYfBIcoggnYORwjKfH4lImInHq\nQmd/zYpJB0O7sMAQsvjhAKkl1K4cmw7Y/9VKfPaqr73Xi2y3PcKwrKp4OMMX\nQ/cFEjtRvww63N/f6mu9mwte6uuwyHib01qBqqx2kEC0jri/ztFrqty5WqAF\nGNc7wBYu3vm/n8y4dpRmkDGWk8fgBRZu+bSmIKkS3/YlCmcAhAEs81StF9tC\n6RAYngvkZRZruhHZ/rGGTcF3yH3exMGKYJenaUt/IehUEgpCjryqe1TiZngm\nLyZ7E2T3FgDlm2R4E9khm2aGMw7Rn6h/a4ZWkmkvdutrYmhIr9gRhRsWNejf\n67XFg+pNPpwSxgOE6oUKRYYSRRunmr+f9zdY5efbaWDAnJMxDmNCq7ZccUvX\n7LvI\r\n=WKIY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"62f8695d3fe5309c62418a1043bc6e8a176bc11f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/api":"^0.16.1-alpha.20+62f8695d","@opentelemetry/core":"^0.16.1-alpha.20+62f8695d"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.16.1-alpha.20_1613595120878_0.1455606870292936","host":"s3://npm-registry-packages"}},"0.17.0":{"name":"@opentelemetry/resources","version":"0.17.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.17.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1087d12178c69fb13125767b363a313dc4e31621","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.17.0.tgz","fileCount":45,"integrity":"sha512-0f+RryxBh+m+8zrZ1x36CihK21KME/1pIFcPCH9095hDx9yHiAv1h3AGrR/knWpgA5j84Icr5ymlALarmpWSbg==","signatures":[{"sig":"MEUCIEHSS/vK2jARpoKu4dv1U6xQcEHGNYRCIqWApMeHMdhZAiEA4uf1eNvABQfhVIrYhCsZptRvKqNnp5JxPj2Ntx3ykUw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYeYCRA9TVsSAnZWagAAOxMP/28xJohZomw5HUv0uScb\nzAuNBGtxfK6rqfTkTZPm+T7FlX0YIpSytgkTXTca+ek2fh/Q6A9koaNTVFtv\nPB+bc2KBFKWG04jCGIjqz5ccfybKXsBqfMEu7IfCtF4gUYq2sA8crS/34+SS\nOnCNLxFx2yaws982k8Qn9kLBvZa9TpRk/vW8/StW+Xj45EBLOVTZAQCjZh/D\nskswyQYfx6CG1Ms/+MR8DFb+KmQnpAqkgz0PzAf8uKKGFhC1QwEM/a5XlVW6\nYnCq5c3BnmJU435xc3pH4E9PRHb+ygPrztA4kjGRpQvNKZVBUQ2hMMOM2ZTr\nPoZg41TxLn0pPzxVUL3xQDC3kZqp2ZtB4A/oJYWI8e3MBLIQDpE1O2owk9TA\noh1pui/JppsZ1YqkxH1PW57VSfSxIC+u5Lnp6BJrnwS4XxPnGK72AkfrsF92\neb6GOnRVAHFyAN/YaxHD+LFcH75OsWf2H+hYxTSHlYtUhNu/5S5rGSC2Xwye\nOloAk5EXiMu1nWhZgBaSrADdri0225lzicwSwwbTbm/np4hA/qgF5jXQxVPI\nZtD5PJnihcllaQTmxM4NRHlAI8vF+bzVITfNK+kiNW1/+upqhCXi6lUoiwgX\nTdIPpfDDBKm1vcr2ROl8rO8JJArv6t4c3xnBDkEllWwVx8A7N+KlPzVKm91z\nobv8\r\n=ZP6s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/core":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.17.0_1613596568010_0.7955386914400262","host":"s3://npm-registry-packages"}},"0.17.1-alpha.21":{"name":"@opentelemetry/resources","version":"0.17.1-alpha.21","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.17.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"16434846d6d36ac69057f67107fe303ff917018e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.17.1-alpha.21.tgz","fileCount":45,"integrity":"sha512-Itd+V2M8QJkSWVGq1AhLiP0KjgmL9800FTuS9NK4Z4mb/Ld9tDtoq5E+YfdMIgWqsgEL13oFF/EJXRcqDtuLWg==","signatures":[{"sig":"MEYCIQDqAd5tGBuqq7ilRhtvLfpb9PKLQRIUJSU1kDOvh7leHQIhALpiWqlWcvxLpTJb64qdCCUqscVggp92lzdAUVw/htYZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYfGCRA9TVsSAnZWagAAk1QP/AjGRP+Jqy7BzBVKHuxU\n3ziBFKuv/SFUs6jiLjiQEhVvzn5hfg27lQRdCDk4HjNntWED0Y7uLtlTP4Ep\nIsiMmHHFaMWOJj0pT0nhLnB+cO/t48ngQzHIgvrAaqm1g5+X7hClJrepH/Ct\n/mHXdFx2QVIRIkyBLSFrsQ+0j9W8Q4bnGtLxZlY0vrq3+OnCL/CR9r6zucau\n1DYiP9XnTIxathFkPOy/GYFINUxe22pylTK0ue03JMlAlocRsBI0Eu7Bm85L\nHzOD8CHzkIbQXWv+IvBP6/sBZ/tFtgiZ24Inpek/RXarca2iJdky1OF5OGrV\nICm3lLvcTmq5UVmnlPD8jSfIv6rBN1A7QSOhurH8iXR6X8CWsFXVHSC/K1Q1\nxdr2ahBXxDz8ObIzCwJ5pJ041BgYkIaFtc3tXSNSW7cNiDv8XqyqbXpPMnew\nItBZIOFocL9aDI2LgesCJKhXEPqQKdTA3zVEUcffm3dSgNlksCTF/oL0JhTc\nPi7oZgCNhoGiN/ao1PRgMYtRLqZngmd0o6RC7kP/XCRlELCmd5yC5ip1GzRS\nMcRvcCA2jHVOAo+Xw4DeNJXbmJexOJTCxMgBKxjaLu1knIfCVVH3Co8qL/jI\nYd06iIMABlzGoWvMetQ4G29GWpKBRNQx0wMwCvc6ItMxeU3/QYHicY2AB+ol\nt7B9\r\n=zMD6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.4","dependencies":{"@opentelemetry/api":"^0.17.1-alpha.21+a91ea761","@opentelemetry/core":"^0.17.1-alpha.21+a91ea761"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.17.1-alpha.21_1613596614381_0.1162112691999646","host":"s3://npm-registry-packages"}},"0.17.1-alpha.2":{"name":"@opentelemetry/resources","version":"0.17.1-alpha.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.17.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"62e29a2a2439858f8a8452aa2c0879e62fefce89","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.17.1-alpha.2.tgz","fileCount":45,"integrity":"sha512-BDxrmkzQdTgEkPrIMu9PA4cOlVJ8B4th1Giq80F/dqXarc+t6AiyMGndmRhPZs+a8DCxTYc++wa0+JKuL4yf+A==","signatures":[{"sig":"MEUCIAVve4kCixdHb7J77T/MbBbegeeGMI92lvcibImfrgllAiEAz/O31jrUlGVlc6jvzPTwH4xrvNHilX0XZJPgJ35WSXY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61406,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMUjbCRA9TVsSAnZWagAA/3UP/iN5BiW+yakgpxWfQ0B0\n8TNvj1ECTDHrhp5Egm0vcO1+dqzo2tJZhkgzo0W/Hs3FhAO5eTcDY4MJ0jZN\nfGe60HUZGgNL0+i9uWZ38gcRS7q1IELK3Gif26X5G/1aOagMIZVGXd5ryCYv\nMdfBS3gcZHcFZT2yG7lN+JZUV9iIBMTYb4Riq4vXmKSr4S641Ii6QQaEMrFe\nSFqolCHds79+fHTA5tVagB7c9ZUjXRPDBiLfG7dDPAati5aouKmNIek9QpZB\ntLMVK1LKjwH9h729o/5XQPnNdyRJuL4gJDbO16q6HXvHvaH4hLvKyS24i2lB\n2Lqj7AdcBs6cW3pQeBhBDx8/aCeWV0hzfwlmWlLswd2rD09sCQVV8byIN6rY\nl8tn1cN/7WUjq+MbHNfWHR+1d4adMHY8PI0643CHMqYrdGHS8AoyERHGqfdX\nzgDKpkQsdvQPyRagQiIygr7fhKRvv7+wZkmUNJJThIJt18xbih9N7ijVoJx4\nPuA5lCZP2b5XE2aJtgCbgV1huiv0SgN/CPQfRqd2+bVniZG8n3RP6W0hnEw/\nPReZEKul+bcjxVOEV5ywZqQim/xJgeDgekEjK1LuFB06wSDqBa2UsONJgJ4t\nbCiRmQRZNLTA+tbAC/5RgzkstvRHWY2sVt68V9HWPLfiDsBm5smmJA6vG36f\nALuK\r\n=HrbB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"38d1ee2552bbdda0a151734ba0d50ee7448e68e1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.5","dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/core":"^0.17.1-alpha.2+38d1ee25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.17.1-alpha.2_1613842650707_0.3028787398732038","host":"s3://npm-registry-packages"}},"0.17.1-alpha.5":{"name":"@opentelemetry/resources","version":"0.17.1-alpha.5","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.17.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b607c70c641ea2054d2b499a2102c682730e5ac5","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.17.1-alpha.5.tgz","fileCount":45,"integrity":"sha512-nOSQXSVRyt5bLZ8FTef9pQG2GaRSNz0poptPNSqlQroIW81/RYaQydNhiq66G7dwXGbv74f3yuJzS+GVHtvwdg==","signatures":[{"sig":"MEUCIQCGmt3wyDe68SAzqbG8CkwcRG4jSLRFROvqIRo5rd+GRgIgcZoNbWD3XsogtaNozPA+xByrGMifz2KU8vsbITGMX5Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61406,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNoqvCRA9TVsSAnZWagAAf6sP/RihUHOdpqB9yflQ4usl\naTVZRiLJuo0gtn1h+cjb09enjMWB4+rkRR4/d+UrntnC/dNWRhL2pflRxhpQ\nUIv4vZZQ3wSKkRDvot+2WBxTrWZlXme6DCwCj1uOUw+Z5gNbtx7EQED2LMEn\nqLQnIycuAWtldr/5WmQwWeKSO5j7C/1lSDdHyT2bnKyY2/sJbECoYWYDk0XV\njWpOmhc3gzzgERWrJZSym4Lp9o5qSWNhgAnSAw5g1S1bJHOfH15okDDHcURS\nRL01IVviJ3iY83K1G3dlAtSR8l2UR1AaTkP8CGtuqDHtD+Mt+3FmFBy3V93H\nVOuAJp2618UjQg432xJF7lVkmc+eOLpbe+bbJrShmvRLOnF6V7kPx26szF/6\niUURB6CGk6dMUFxZr/tePbAw2EcybNzav0kXuc7odaXgVPXr6o6kOquAu/zq\nAfKIAeUjA1wQc+XKYF/vvrdICIJNajT4hVhlN9WRmDLIGyE49yCYjsn94Agj\nFqn92aSJqO7AlEwmNh3o3/DyLU0/YQliYLXD9RFwtoc5tFzKa3bd3PiYx8kn\nKvw4khro5BjijtElHQTq5/Eg6WmgKvR+CUFH1z2/soGn/Ivo8QOJvBDC9Qqv\nmYzGWX3HbIA/m/EieNnRQqbI0mxCd+w9l2QfmsbdtiVUwZTimUFocWoQtaP4\ntOHL\r\n=eHys\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"36ae1bd89abc2e2cc7f64e4a35a94d7e75a81d0d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.5","dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/core":"^0.17.1-alpha.5+36ae1bd8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.17.1-alpha.5_1614187183176_0.7249522203235523","host":"s3://npm-registry-packages"}},"0.17.1-alpha.8":{"name":"@opentelemetry/resources","version":"0.17.1-alpha.8","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.17.1-alpha.8","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3ee26c44de1f450a72b41443a830dcef21050042","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.17.1-alpha.8.tgz","fileCount":45,"integrity":"sha512-hWrh35/dKhnR0UQUFouZMXrBOp50e65udpyYFXKV+HOhOl7oz7NOtOU1nKBKf6ntJwVhHvJ3nKct86y3LjPqLw==","signatures":[{"sig":"MEQCIH1nS7q+sDhLM/2kV6a7E535VGKrXFc9/GJ5jL+2M9Z5AiB7lYoDGGLHukoo9+m+o3b6blMl5IZUPhhkTIZhG18MYg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61406,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPO5MCRA9TVsSAnZWagAAiukP+wdP5W2LpgQEzXS2rGED\nbmDfgkYTvIFlvuTrZ71zzKVzfKDE6TvTsHUUwsAn/2HwXp4qdLo9GjNtkA6d\n10uExEkzn8qZC6aJuUpszfWiKtl5VnMj3YsoIW/0sWieppilz6qQeoKzgHXJ\n2CuzUj2eK0UKW55XEUWEyxc/dZtQ36phgSO5i42Z/AQyCQTCuDsK20cWy1y9\nEQ6A2+93SaY6kWUif/ODrIlRRYiAAkleHuWgyqTQP91c0lX3aeYOVF0IbJm+\nYKozdc8Ta26Yxid4kBc1A183ml+aR1kjP6qx/5UEpvAJcFp13NHk3PlIX5Qx\nTbWDlQslbL2zOjCws1FHNxXEXu5g3Mj6uM7rYneer20LjaPMQPRdICXnPHxN\nVHAajPBx+Ty7AXG45rf3NeseewOjp1+3YIi8VL6hbqbYSvmC0IH7kA71N0al\n/2b6DVna4p6ywdhEzhhNrKTTFpxgVzCd5krC/lndzMBgs6HGEsdMUxh+eaj/\nOraQPeKZNBxZWsFP4JScr/lRYQqNbLmlaBClZhTdNdjp/dKCi7QXgdv+o4+r\nzXzDYH/KgaLU18v8lUcEUlRi7wFuLAtn42poF+E+nxrVA6nZpsUaBLkxRxLu\nrgynEGj7zMNzoKmsx+2TQfiC6YkvJJlDLPiJyYutPuUduAdT6cNTVBGcebKY\nvoZ5\r\n=W9ru\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"67f7e70a3de005484d3e110b06f6bbee75b6f8a6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.5","dependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.17.1-alpha.8+67f7e70a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.17.1-alpha.8_1614605900236_0.6396749568087083","host":"s3://npm-registry-packages"}},"0.17.1-alpha.10":{"name":"@opentelemetry/resources","version":"0.17.1-alpha.10","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.17.1-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d770f8942910de337e840528d8401c0fefd5ea98","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.17.1-alpha.10.tgz","fileCount":45,"integrity":"sha512-ZDI1oYMefegMU+xXvGhdu2sC2RR847eLt4BrmpavOWRhIbDXh1FLHpxzsGuRUN4PNEkgIENQ6vZhpCKZwch2Bw==","signatures":[{"sig":"MEYCIQDdS4Tiuy44+gWS817TbxM7oF3aXUEIHyk/S/f9NtZzWgIhAMgNLobuEATY+q8i94K/FayZJP9tdlIFZZ3iF3NYPqBa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61385,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPjv/CRA9TVsSAnZWagAAfHYP/3Qy4uPE0D4n57yE6o76\nEz+T0fTuRn4S2ojMEFTM521OH14PFItTuOfIleOQPihRxMaHTIoPJMZWO3Oc\nk47ItAKvK/uOewxn8J/N6ir44svxM14wRnRPBI+4/l/37Ma4Q5evXLGzi8yq\n2+JGQAhzP768C/xdzW9Ci989bG1QHoFHyn1fPLNlykGFwsMIhWbfQwr79YkN\ndUdY0PbyZGoGlxOOb+V1ALHFl9AHSSWmdLgnCKX+UTfYojLuFEuLM31i8RPF\njGs15f/U/pPkf20buzk7RoWRn5TxQgnfA//ISmQwmQ5ctBS7tszeLvXjT9Im\niLfoxOO7T/12/dB7if9+ZhzIAeqav+MZrBAhq7vxgbkzf4QdX2rqidjr0Q59\nYI0frA22uq6JMB92wrsisMthwqKwbo0qo/fmBoR/dKMFJCSFVSxFT4ht+b1w\nI3BcqOH9CxFdu5xcchmxQa7spvCVdJ2to9m6RcFPwN7PPvAzWQBHHrnWhqJX\n7n8hjc6tZMPjhTIqsgRmNP7pLvCon6HIybHy6Z4I96PxKx5OzUWLM48gV9BT\nHY74FtSmKyxAtr0f4oYW9BhcwuF/RElaWWkpOaMKvkWJbTuB6w7CdMeYJqPr\nXP5NVJflEVEfU5B8zj8OO+aax7WKdjcc3QZCcfTYs5iH4pa8WaUOL7PTVrua\nBVr6\r\n=tqo6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"4c609aa13c899dd2b7a963d2e3e491bc35ffb742","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.5","dependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.17.1-alpha.10_1614691326573_0.5257449777294001","host":"s3://npm-registry-packages"}},"0.18.1-alpha.12":{"name":"@opentelemetry/resources","version":"0.18.1-alpha.12","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2c655e36b42388407e93dfba8824365ffdccd913","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.1-alpha.12.tgz","fileCount":45,"integrity":"sha512-0qLyL/MhqKaC9IiZKTBNrXYJ03YLzaF1oGoQHU76qVqPm6T6Trois3M8EqmUq69yGe5bP8Pp04DHIcRiHmVhgw==","signatures":[{"sig":"MEUCIH1GwGwUf1ct6rh5HuFFupDnh5hsM1eQnRP6/W8EVIKUAiEAp7ja0wurkLyBdljgM7iycxlSik+ToqHV6pgkXV44P1s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPkN1CRA9TVsSAnZWagAAhkkP+gOs3ulMtW3jp+/nfd8M\nA0AGV4cwnzbOZrwLz7BxgdeEA5+dN8yB/IGRj7DOr5KbFZHuvj6sD8sjbmis\nTK/RdjqIT725Nj1bIBntbdB7Hx1OnxVyF/1kr8iOipCCNxPslG6072LYhfCc\nWN9sh6K8s9lTfXAcVj4aoTwC3FrjSj43YDcAJG9qLEWUsfBfuygo2mP5C1dt\nVWMZcsqjlT3cx5fPqxDLS7+QsSZaxH8SjSTB2uzuLpJQcnGYkS+Y9iEPlZe1\npD83kJffcrhknb42AXBV6ZA3ZE7oKZOnFj+3Un17X+gKLaRCHo5KzMxFNVPW\n3FV9iuy9uJHJ54nzi+D61IVy6m82a/2NmwK6Us9cpcjMTxXkM96rLB8HYE3V\nCSeFHDX2BKg4qfmYAylgBueIlLuHD45TekHMVwpFrfkMK0NPbjewxBVhGYaB\nJucrcITLfJye9MLIyLdX9HDkKwQEPe5/tleTXmg5Atk4kJ/77KRNHYbV8i/J\nBfjr/dDZAFu42goAMrqgn2CVhl3qbT3McLfl7yTwHmumUTvDVZ6e5pbZW2JD\nXNHh62QITf+87erHebXGtKIPysC89V9TBeQ+4aPQMRlQSJ69lCSSGz4ioJAH\n591GbLjztHYFk5t19EytnTUU5ECX2suDrSptK66+vJwKhW10JlJrt+nRdrrw\nNIfr\r\n=xKxz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"6540b54a8bd49746e164ab730269188237f89b1c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.5","dependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.18.1-alpha.12+6540b54a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.1-alpha.12_1614693236720_0.1501374086336833","host":"s3://npm-registry-packages"}},"0.18.0":{"name":"@opentelemetry/resources","version":"0.18.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fa6caad38efbac1ace424145f276e57ca12228fe","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.0.tgz","fileCount":45,"integrity":"sha512-Mko4HpoI5cCYplhSyiCuMFi0QEG1Nw/YwHFyAK+A67r+sgmo1wVpM6Pengb+XlxJrrO8WgmLsDS3RHqoMWhWNQ==","signatures":[{"sig":"MEUCIENbn0xylz71NVeeekyFy1Wy0DBMLTu+oK92gV8h8+MYAiEApV41BtoEIp/ZtYB3TuVsDzrKQF4d01LdE/xRe9l/cI4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPkUiCRA9TVsSAnZWagAAhZEP/RLAZvnvV1qulPVMYxQ0\nnccGc0n8yoGaC6R8szMCcDUw4D7cXAy8TuoiFuomiliw0lpkmDycxScL0iTt\nFm6ietRPqtINDfVZLffRkr9a4QwBC9Bkb/JBFHXsi8zfIPMtYXx+lgkBpDrh\n89RKK0KOPaRwEUSdsrLsr2QqC9Cn6J9zjsPwwFYQbVYFrfQeM/KBYceb96xZ\nY5h8AMzO+gmYvi6RD0d77A8HZ0YHchLnbX+r/B0YHxwiztt3p20s20rGBswU\nj/4gili+bj0AIMF+dLImNdsyNTUpdSqOt7PH3NBAcbImwKhGOSwjlYS3XrIR\nrCTCetcUeU60hSgaBf8dcAdSfOJvxuTczPd2g+GooJx93fNIjtc+cN2833qw\nDlI1QzyCU3bA42KyZDCHUvr7mhACUOJbDRRNxQKfIWxSzz+OVXQISUBqD7Cj\n1PjbihALG2uZsnP/pfdS6vwnjiKvCE8yF1mIw+TEVgVo6mMiej2+V2plrAfV\noTnuS1djBL1WuRS//3/DguK/YtaY2ovwaaiXilTU8nIWMtrqrTl46W4fAZwS\nHvoJASi5Ma/qDjNhxRpzCEHNnGBpOpd4WAU2fuU2Ly2OodmsBVPJQbWISjyz\nWrskwiBJX9Uv9q4LW77uWqiKUyhPWAe6JAhDmGVCw3l7oPmVhN3Zc92uLXGx\nDTKo\r\n=ncSs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"6540b54a8bd49746e164ab730269188237f89b1c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.0_1614693666403_0.4527923379880714","host":"s3://npm-registry-packages"}},"0.18.1-alpha.3":{"name":"@opentelemetry/resources","version":"0.18.1-alpha.3","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9e897db79470c42b505d922c0a279b79dec7f5ae","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.1-alpha.3.tgz","fileCount":45,"integrity":"sha512-r0LQHv26hpqmCjYDwJSy2RHLQ54uy7qeeAc2IMEk0hX5wO6yt1ElzZslNLv6y35rt3nFOqVK12bCieII+mvQJw==","signatures":[{"sig":"MEYCIQC3Z7py0kmFH/0ZH44+NN43X0fqvB+5OfrAsZ2jnoTvWAIhAOO5Atgoa+BNRi64pfs91a9mw+UcNCfxNImwjMsuqmAP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61401,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPo1rCRA9TVsSAnZWagAAav8P/AiM8DG4GbSwFd1Zws9n\ntZcCVSi0S1imarInkGJ/Mi6HtyOHVZO/S4QAtGXPa0S1XbsjHdet9sCHbWZ7\n+I3GCskz/KydPSZEoHoURnS6oOLD+5moaF3UBaexEOgkx1dbgHDPEbLozJO2\nAyNq0M9GaRaSB6iMGIvz2Swp9FhfHNtzVtqn+wCca+V2sArQagaiMm0Ipo/P\nPR5d9d2M+lkPrpRKGzudqjDmxb1HlXK2i716shNvkhV/V+OuJYnC7bfmzkAB\nwcHPdgHJHuqkr7w785Y84LYuWVPzSuewKVYpUN/opkUATEAC3lDPegcpK/Fr\n6I77j8Z47GK75IbFnHFHuOyBOtgU9H1CwBDClKEUnbA9/1Udphe7k/AQQxul\nYrjeqJBOUs8/cR8KcUx9YMOfld+SWI52ULFsMxfo84iamxHCEWnYxZXNrkyE\nCORj8yZ9JKrN1x6AQ+ThuUzoBc2YytyJh5sQr9ismlxMiA1IvaMyk1EKIH3R\n02TB9IEzuPzokMRsb3kAYAxpMUHsaoGmhfVqnpDpsNJfL566W+/7kTO6jkmL\neN02RuaCtbbmdy2yQw8C0hgJ8G0A8Qtg/JJMGRuiIKpQOOBlJ74V4BPV8SzR\nhpMHtIGOdOAE4ftrWyCLByDkktPz9IHBZ3RjfzYIOe/+JfibDfGhBfDb9UGF\nJoIS\r\n=90IR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"0643642f61de5e2bfb8942ce7b5dadea643cb295","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.15.5","dependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.18.1-alpha.3+0643642f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.1-alpha.3_1614712171221_0.4872483930994971","host":"s3://npm-registry-packages"}},"0.18.1-alpha.20":{"name":"@opentelemetry/resources","version":"0.18.1-alpha.20","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b486eee8b52fb41a9ea1fbf525df88353ab5652e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.1-alpha.20.tgz","fileCount":45,"integrity":"sha512-FzN6F1hY8sPM/mejj7VINYgvyhWkW6CtVjKt1SJsFc174QBsg7v7fsKNfKoHTJFWzJnxLCdQf37kcGyhI0F0sA==","signatures":[{"sig":"MEQCIBgZt/5onqVqHfnkqAGqhZiID5o4akG7TE2F9fGYv/PjAiAIXWLmzhuPD4mp1xGseqdO9OxKKVkuw3AWO+YVSt+p8Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWzpeCRA9TVsSAnZWagAAGvAP/0oSwitEuGdojzaA+i52\nbbLBEhTVbW4N+T1iequGoYOIFxfzRFqZkNkJGtQqLyAHPsTr5JVL+A+6czTU\nGEMnqYzK+wKZ39rxCyKqu87vGbdjhHp3G9ZmBtu+tfLzV5DIAJt8ztDbYltz\njV3B0w9VAV77RIuXra74T//PzfMlhRx28AQDGZX10Qsys84DFKCejxOuS8OU\nBPuKWFJsKa0bKa1u2OgfOj6DC52ecVbxxsPMPhRz9X6sYEpuvkt/5aOrLGzG\nr8tSyW2gXh215j5oLC8lheKEUI6WXsHUmwmaDd//p4Pk9U4rPw6VodwO5Cal\n5v0CYLZSSW2dBgqCc6PnrdO4NcVlkxBm2ltZ4qY7860EJ2C6bsqc/M4nl3+G\nQcTVEtTXFqHJ1TJMhUtYqw45+1f+DSi+yIanInbw0LZDSgulOJA8Tk0rLeE6\n9TQkuyd9rX7zfD4vfUG4RDu8si/rLunYgNQjSEV+rJyFu+nho9ku5xGMAgfk\nEWIoauNjX1aijOdKdMa+kYfjNRmS+zB7WXuy1FSzZBOE9NFrmWqkzJFeU/UD\nR9gjU8eAVlybE7H+5FXunLQwL8eAtXmxbxHYTrXSb0wzJA1z2VPsg3c6UBEy\ngw8sq9ksP3AfzVodroGDgGcbOGs1kva705pP5cxVQYWTc0vEfUZhF3sWTFho\n45sh\r\n=EM11\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"24bcfe82340e02e605c5c722b0f955da50bf82cf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.1-alpha.20+24bcfe82"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.1-alpha.20_1616591453968_0.6546071664972919","host":"s3://npm-registry-packages"}},"0.18.1-alpha.21":{"name":"@opentelemetry/resources","version":"0.18.1-alpha.21","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7c21fbe6f4997044d0c52c9c6749a3250339fc07","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.1-alpha.21.tgz","fileCount":45,"integrity":"sha512-fZvZCltfiRDWStHkQCwfvPFSOdKAvMAjEouDXWoEA83vU6OJqhRVoRwhfLo4IB/jhtOiwcUAQFAnzTeNq9arGQ==","signatures":[{"sig":"MEQCIHFheMJBTdsiGZ04chI46UWFCkfRoRMB6Vf3TGvlTDN3AiAP96PgsB/HquzhM+NsuMOVs3ethgP8O/FgPM3fff3GeQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW0jqCRA9TVsSAnZWagAA9JwP/3TKownKlbx8bD6LgphD\nkOjy5qPzQNWoWjSBp8RBhN1zgS2RFSQ6ShcOrvIYoMpYX5LyfGN3Am78ysUr\nlj3DMf5rkiinVcPON5WeTwYQQviz+3dqQi8USkSjMyDhs9CGqD5JSseqFAy2\nu9+bAhtEg1sXx0lh5vc680Jrumae6HJzmsplRIUU9TWTRCMxDBJKreWjJYwf\nQju8Gpxq+EvtfPNEwmpDyuTYzBnk6MdIS2CRWuQjWo+BHWoAUc5nAaxHZQag\nQnOWNY/50jQPMBYwmdTE4T8GjRjFSyMqowzBJEiGgdFn97OlKlwm93LiMF2t\nm+50GfAmm23gDiyLBxfzeI0DuE+N4dFzLcu7vYMIIzDoZr/CYk+E/Ay3ZTAq\nMqoWzlRRTJ/fifA/5r/UDLyLfMv+WrxBIJ9LEmK5TDCvEvrP+rMY3ATZyQgP\nVWSrjLdqqbkpsQDhCFntwsPy5+HUvvxNI6Tm0VeXjuEOwCU8Jm5bPO8UdaoS\nvTRFVL2IsaGXqDnMo+0ukFenpeNuMhE1hoHS9abw+B1BC3RUXEzBL2iBAa/p\nH6EvXvLETtsHbyVXfAQ483zP7M3/LVx5BICoOQOl30E4Ps4taznKFYaMW9Ob\nwOgowXb4oh5nS92SzMaH1ez/tA3/YLXNwwAtZTNPTyx6JDCBTesP/yeq63S8\nYExo\r\n=Hvju\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"8010ac2fcd0c658c0a4184cb0f5d8108db3632e5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.1-alpha.21+8010ac2f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.1-alpha.21_1616595178190_0.01635822980542545","host":"s3://npm-registry-packages"}},"0.18.1-alpha.23":{"name":"@opentelemetry/resources","version":"0.18.1-alpha.23","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5414aeb3cd2f826fe923c00b9af081563e03919f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.1-alpha.23.tgz","fileCount":45,"integrity":"sha512-02Je/uRHfgGF2WK0wkZibubV++aPvQmmHSKGOIL4keUEX/9gIFi6MckfYrOa/xZi0gxNz9DvFc9b8r40xPVIkA==","signatures":[{"sig":"MEQCIGllIx/K7c74/C7gmLzKSxj6r3BZCAHsRXq+Z/eoRzyRAiB0PlIwdoAGFuxSfYv9fGlZ8lBkB/+hMmSh0YTIjzGYpg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5A2CRA9TVsSAnZWagAAyQUP/38pMx8L3olOaFaPP4OA\ngsChtvmTQe5ttMxlEr6wGNeqrjlQFtFBqDLo0benddaEBA/LdAbC2O9pN4O1\nPgcaR6gZoZRDYOZgxJJCqKrgfWDX3UrsfGJ3orxMDCUxrQ+k+krw9+XKYMSD\nar/W6qL+ndUO4OADlZXBhhJRwcYXJw9PfTJpKRtJbYZCbfh8BlSGtXEeSs+8\nv8AjdcunneW7nbBThOpJn/9DxXboygsSbVMynIDMGTAQ4RVJlbewBoHdjWRq\norzVrXhUvaI6G8/AIetJAB0zZTCjMX1DSJQWYlRH2HRVm9oAQaLQCgPdQXJv\ncdNy9Z8/ZT8nPZWQr2cUTMI7OBefyoO3Y6z8z/5OPQEpEv4w5uozZkGuK/m0\nJMTnqY2NxJrPts9QShaUVgNuC37GoTE18xd23oZOuWgWe9ohEMGYmpjL/HdE\n9bQj+RDBGJ9ypJu4JF8kmNVbQYhC2chqqOa9HWbA07+hJozXCPyaVEz+vvxh\nqwI1jOJP1OeM+HbcYpyet7+ybd8KXSQ0oCJZ5vJ1LBu/AfpibobmHjMlAOcs\nL0lV/2JRRWmvOTlBZfTGtcR3RkNw0/qksVy2/ppkRuHQgqSDqkZorC4Nm/hk\nKrFEs7l7qXsmfkISWs5e0mtTsEoVT7DUYtlHXgh246KtbjboNOn2YhIyoDbr\nvKTg\r\n=3VbY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"41db733e60b5e4f981be94eaa56e4fca24b539d9","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.1-alpha.23_1616613429748_0.44277376873261565","host":"s3://npm-registry-packages"}},"0.18.1-alpha.24":{"name":"@opentelemetry/resources","version":"0.18.1-alpha.24","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.1-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9b894cdd5a781fb1cf25f913a5b27da86dc438a9","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.1-alpha.24.tgz","fileCount":45,"integrity":"sha512-1Dhfyon2dEda4gvH2fM2o7HuEdBdNYBqCne4REQPFKJDD3LgRXeCeMRRrIOdthO6xy0U8WegffhR0GRCasghng==","signatures":[{"sig":"MEQCIE9ttF6IQ1sdTF96XnvJjcNL5v5a2QpRxNVzUBa/VrVmAiA9iqk5zs0Sj41ZZCwxGPzewRUrMiplbEcf4KQ3mR6x1A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5VACRA9TVsSAnZWagAA3nkP/jXNl2F9NtsII5or1fef\nZGgUic2Wt8UWWrvlNTy6hlUmKo1dTw7ck9bQRxt0ly2K7bnIX1VMcAbeAXBr\nOkW9J9uB3Y3a4il1FVWvDUeIxrFSQSMSM2ZtzDHuYL5k/Xxg98P0ApSgVmO2\nOErEmdgtJPw67KYHGHhxaaqZf/pViilxbhBRdRiKVeDSWES5RTKthHbLIWXB\nalzzJ0Y3w4OgVth0ZmIR+ve72q0/+8lA9GX5RtoJKaaxspDLNCI1KoBjuw8n\nXsH08rstXWs/PlUFukwSsbtQEaVkq15Q+NTCn78kajjA5NQ7wjsvxa1j+DLd\nAB7LTZnKGQPiEzZlEL/fCntVewYjzPdj4Xf4Xkm0kSWlloQy0Vgkz0S/jkUn\nVw6a5vh3lUNE6i/+jtqUlWFJkXzXvTbAbH46RMWOV/gqxcEBwRNgk5LbLfaQ\nolWjJA3MNLv0Aai/nAdfMlaTzq6Fk58vxNfKgCPJXbCovNJiANpPwTVtwy51\nAR4zz0BFpzMPLUeBTduUXj9WygNgOrS3HYjTnGOrr/6ODd1CXUVTJ4GUpwvX\nibkJ0ClCziGrwWTTWfJe7ab2gyFy4s2U76dvTfjfr6cv1HvtOEackcVkmdrc\nwRqoHwtlK7RP7ML0NYTqeM+ott85gHiz24AjChXBYrdE8tAdKBQ2ep68a5HR\n0FJx\r\n=KrMX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"69f2d3c264497bfdefa2126d0865ca56ad5f22a3","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.1-alpha.24+69f2d3c2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.1-alpha.24_1616614719607_0.93478343837367","host":"s3://npm-registry-packages"}},"0.18.1-alpha.26":{"name":"@opentelemetry/resources","version":"0.18.1-alpha.26","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.1-alpha.26","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8af0fad030dc824c91333418c656ba38140ad12c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.1-alpha.26.tgz","fileCount":45,"integrity":"sha512-/78T2bAZckAYdSin/H0jqmVIjXwpXKUHiiwitCbOXjMGwDYNFt7hgjli+2zkrOimeg5trmRDFBQ3mXY+lUbvsw==","signatures":[{"sig":"MEUCIQD9Gp5YYdlRoMt5nPGxCbn1CQttKmBK8hGrcKgiPzM5kwIgR6P/Y5AvbP0f72+mfbnDot/IHYRUIvRjLx8Y7GQWqsA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5xmCRA9TVsSAnZWagAAca4P/32mimsYreqkEQprHsAL\n1sDHoakeJ6Sszew69o0HBc/ASBYEB9K1L6HtQjGuFRY+EObtjcwUxa63JWLV\nFjBxBfN5882vK4M827bZDTztZ5PfE9xcaEOHqEq9G921U8IjSxG0U0QgKv/A\n18DrNyjSgiAru6BSjkLXgBiBza4/XAh/gM/QSlTCLW+NcMSewS7sVwn4wfHh\nyWGeMsbWmDCeOth6OkxB/ZiZaaO83FEBBDvAtY2W6P6Mh7h2N1t/q19kzq9T\nBXqU3RnBTcH1IhRd/b+arNp4T/T52smCJFA+kYuNb1iP0E9lq+YLuJdxGFSI\nE+JI00foML9zpj6uhibItPyqdqANJ+ZDg1AsKt6bwVD+1XYSOmOlxtJwbQPo\n3Sj2BkOgWgnLhhZYr/nC8Ll3Q6WisuA9rw6Rub+/5Fbc6XYl0rCmIs35A5Kt\nFTEs+WGKHkQ+vlZZZIq+hSpWvuW7QECNbP8fJmVLaj4PiWdPRvnMmO9Cx8+j\nilh9p6L4FcoIr3ISDzQGPN5jLsICAS/7fUHD/zY5DMS6xlT1Otjehlq9b3lx\n4dypQFS0Mu8lbm65SFslsSYg5O6KLdijToCOiFzmmj3xM47k/2WAdoT5XTYB\nPv/OkrCQIg1shKXxEmXLTn6v+AQf5LnC47LfAhNFM+HQmAm5iyaNVhD8lien\nRKps\r\n=cd3D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"91483873ae3e3e8a686dbe3b7711a233167efba5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.1-alpha.26+91483873"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.1-alpha.26_1616616549634_0.8979420134355596","host":"s3://npm-registry-packages"}},"0.18.2-alpha.81":{"name":"@opentelemetry/resources","version":"0.18.2-alpha.81","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.2-alpha.81","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c6ad3ad1224d4b11a2c3caa1a00536351db3ce2e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.2-alpha.81.tgz","fileCount":45,"integrity":"sha512-2tCsUFksuxPtZtPKj8+bSdG/VH0vKwHQbWChWgwkBR9IdHNkzZUWcnJDGOWd24I+xb/EbfC9LSWo6SWlXp1qcA==","signatures":[{"sig":"MEUCIDea1dOOzJ1JyGyG5/o49GGLK4zPs0M5UtFxwYNzc/tJAiEA4c/non6B2vl1Kc8Z2LjKVgwriq1myHwikPYG6Kq4C/I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYi/qCRA9TVsSAnZWagAAZl0P/0zJim8aKjTn8E8fsYec\nAsJ1vgp1NT4abi4d8VgFMHUUf8/zxVkgO1VNJet13mh7de6o7y3CHFQyHDFT\nmHrdlvlhs/Xnf9cdLREkhXAI1PemF0kVj9ndzp33ajC2lQ6ao7QgLHnJqdA7\nFoZDYwPQO7uY8txCKeMh8Qh9LYS9Iw/w/vCvXAjiyZdwT/9BmR0QQeny0Ds/\nb4ah3zdfh6u/YNBlVK4EM1oZN4SeCEyFEaqSQfoTFWqw/zu2l2wdtdipcpqh\nOZ9wbwHWGYPVfsa6kxaJOxai/1V7u3VoB0XsHi1oOlH17kW3xlrVk1jzniAW\n5m/+HGhDDuPGpUUHanAiB94buTH7msp//rUHrXA+nE6bblC4pY+XOlkRT0TL\nmvpShMbAHbXqHfUAYIvEdW0CSV+I1TS2ApfmTTV8b7Qh507fQyFpWs7oXOQ3\nEg09ckruf+rUZ2dMHpaFmGe4d8UaAF/7Ysq33C8aOP+SmsUfOs7cwQe++KS0\nLjjAbmJzEJskO0yGS/yOyq2V81lpGWltxJgpkfWZhue6htcOYZMnkM4EK049\nJ4ipgnnWuGHN3VGKBIXF47TochcCEvMNXmTZ6tG02QElAhZrR0Es4IriGdsX\n0nQLP2eIinqY5hkVpgaKgC+YrhF7nbLCR7yijjICGutwi1fP4iIvn+0ov+Vo\n1xhG\r\n=fO7w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"e369035cd228a5c8781069a99322c5b938061d20","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.2-alpha.81+e369035c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.2-alpha.81_1617047529653_0.07050396473102372","host":"s3://npm-registry-packages"}},"0.18.1":{"name":"@opentelemetry/resources","version":"0.18.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"700065efc8b7e19f41ad19e27f7d47fb0ad7db18","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.1.tgz","fileCount":45,"integrity":"sha512-Eq6vF93oeZ+Cnz/FwzYl6H4tRv/nn7ZRMsMUNnzR/gGcvcUwFhBDyoG+Lx3XJ/4M2CRlY/67jyp3mJBH9aRWsQ==","signatures":[{"sig":"MEUCIGWLh8rFRhYH/h5lpX0+bm46TLktWdf2VNtxHjwptjiJAiEAn3WtwCqzGbB1DRPL7XLVjDV8fjS65EKUP3CLo8+bUPI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYjKtCRA9TVsSAnZWagAAF3AQAJ0Tr9IrYtCEDyUaqX3M\nZpCoi+TAP4NpE80L6FJcCFi+UTP9uPxjemErnQdw1snPThZ4vd1kJbIjwRpo\nOb186e8429pvk8PQO9cjFjCUhJlRb7vXsJMOvoSN3BPUosuftVufoL8Ww62x\nJDnrMw8Fmq00iLs9Wf/0D9tpLO7bcWpJPtjIZ4qwTiQGL/UlCHq73JUcofe4\nOfhb2cfk1xh1DNCW8D50dBAA9lDUbe6QqkAB00xcsDH7jplKwvniPuFGf7ID\n+YPdwxzYp3/1oZlyYFczujVeK6MAhPxa1/8tJdfwIhO7zoHMH/iwH3tQPw1P\ncMMwEXA9zB5QHwOLtpnbHUNaDdGU+ACnnUYQgYdx1YsCpE70sbSUJyMlhh+M\nfwyeaTtur/6U78bgJkEPyDPI7SFYdSPbyntcHbRtV55aHJccv+ZtaqDnlPxY\nsNUQ4hzRBgT8GNn5Mv2IYrW0E9cJ7wHuzPQlxn2NMvCsOjzXNQF9id24a2K1\nN6CiYZbETKpuNP25Ap+ExqffnGHN4mzwPXnJ+5cObEYvoYfCA1CJR3bUtSIJ\nO1oOlk2+X1Vy3m7wfXpZjLGMsMPnbip5Ob257iXKpf2+/UWRIcykl3mckz1U\nh+PuqMQVRAtlWuWJhUi9pYn0b+ht4AxZiRKNVOtPFpWuKMlGYVm5WGITZl65\nC+YG\r\n=og9s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"e369035cd228a5c8781069a99322c5b938061d20","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.1_1617048237055_0.5390151419391065","host":"s3://npm-registry-packages"}},"0.18.2-alpha.1":{"name":"@opentelemetry/resources","version":"0.18.2-alpha.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.2-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"10fccc68085c7447cf2e6ab0891f83ee956f5fa4","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.2-alpha.1.tgz","fileCount":45,"integrity":"sha512-AT/AiwKQQtSQ0q8feJLAeAvWqxXyV8xDsGJJXiOyv/WgGjid4EXDfPUdUFh4545JZWGqA/oiY+u4IfEtP0TD+g==","signatures":[{"sig":"MEYCIQD1TWizgrS8afGEJnM/4z00g/V1L2tUal+DVAolj24guAIhAIoTQKIA84k5h1YVRctOaUL/NctU6OwjJeWCoE2SXxG0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYyJGCRA9TVsSAnZWagAAEeMP/RBoUBLvSek6b3XONdEP\nsNvOS+KiFckJNzRIvX3XW38la+hfWYyQrXOrihXIIA/52kAIihUM2fFXJN5V\nbInBTxigdsM5af+vNa4DTkVnaMlDMxFJd0ApRkCj/up2PdWcQ3dcz03sGIh1\n4Zj3f5BFgAKY8DtajRm6/UbwTjL/wPhlWqLptSVYYVNgC+Lf24Geuc3dNT6/\nZVMZQBNGnJOWleHbjQPbXx/yEPVTEHh99YqJbIcjtHwUhCLNLmjyQqfaBIHL\nHevvPY+LLIaS8+E09eKYugH2dglwcpTEZq4C8uK7IXCZgiW2rjfMbNXtc0aj\ny2YcTHCylKzs6CmTASjCAdZ8RWXzRPrg4jUjRAAZVbi76sn0tWyrSf8UTD/Z\nKXutWR0PWef6leVvNnDZzQ+FvbdA37HGXD1CkGuDKHSzdFcXCYEDb4Q+Sebq\nipovLvsKKD7aU5ebxQQicUy5/4jlqz4xVKbF8Z4aVFj6XJuvMB6ZcH7DhT9h\nJq/v7JuyRiDmIxRdueMdH8S/zl9Y/ny4QnhrWKOxRejaP0srGbm7eEKglNxQ\nmLm2NmFNtDJd1l3T27qimaflTo2jzIPs8/0B/jX6cVmUEaFNlsyMdov2e0QK\nG3B7+UwAbMqJEo82LJOQ+IbpwVDzs+8CyHG89d45zhQ8XhJ+pCf00WRUYjg6\nMwUc\r\n=oZ9e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"54857c012414c05bc83b4a8da224492c98abfd46","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.2-alpha.1+54857c01"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.2-alpha.1_1617109573750_0.7215042050613902","host":"s3://npm-registry-packages"}},"0.18.3-alpha.2":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"05af8b24e0e5f7d68367dd15587e0c7b22a07167","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.2.tgz","fileCount":45,"integrity":"sha512-ejGTAZR7z2BZPQjRAz4cYQkzhnp6L8ZEfeFxSqsRu5bWKGjlaW6dxwbcNs8p3sqcqejn/mJWD5krYEOoNMxYww==","signatures":[{"sig":"MEQCIEZYquHcZMgf8zbHNove/bX+p7262kx0tM8zfQoCSgoVAiA3hAWvZQe2A7xa/UhvSCywfVXj4g8TP5Z3N16GEOs34A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY0NICRA9TVsSAnZWagAAhG0P/3P3OpCR3A0XrafPfPng\n8v2XDQNevDA9VZxPpJh18/2uJmnMaWxTWta64TSpkIXEf2jevtr0uiVO7Rkl\nBIr4TUgGM6OkAFARv6dRsqZth+RiYCBQRooP5/eZIPZa2TwkS8i7xZy3RSab\n4N+w95kOWQQ9PRZx/Q7P0stHKY5EchKSgBVxSSwAvbagP1Y03Zi9yfa5CYut\nlivFKQ8agB8+GdfzmnDsUciKOfEwjQWzhAW2r1PJR5B7Wa76xIfHvrM/ckto\nWUkQPzaR6YI1gh2jAqXOYwvRzC+eQPiq6gXNAOK0i2Rx7mr0bQtBn//cOSX+\nWPDyqhO2zSiA21gqB4A7D3B6jFTXdM8KXVtfJbPHPR6R8xWe4MdqmV45eDwt\nUJupW89w61QOSc5dy7NarmMRAzd/vNbvvAMBidkpdjL0ksfzZe281Cgdvlg+\n7JYYr4XbBK20Gz3qcap3RlM2L64Rb5b1+QsfcdZy5ff5lLWaS2bWinvDIlWA\nhxMqXipP15XNMiYBoBaFtSIjhgkMleoW/OCSt9QjmogC3EuD2H1Kzoka1KL1\nsw3LmGZULftCv5sd7KQCQ1Y4VZ94JG1EOIMr+agYl1dTsd0FZ2uYcAAUnxzH\n957yCFEWehGqdfuZehWoIWjI6U/ey+xwLHk7rG6BnqYOupM5oCMZ7t6mr5tv\nzEh+\r\n=ppDM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"2409f1cdddd92c23548c18c055a6a36efe36349f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.3-alpha.2+2409f1cd"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.2_1617118024438_0.6052533009442176","host":"s3://npm-registry-packages"}},"0.18.2":{"name":"@opentelemetry/resources","version":"0.18.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9d671476a53385c5a75c6ef273a609c9f01d8142","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.2.tgz","fileCount":45,"integrity":"sha512-EBPqFsreXgFaqkMmWCE8vh6pFhbWExRHSO24qSeGhxFmM5SQP/D1jJqMp/jVUSmrF97fPkMS0aEH5z7NOWdxQA==","signatures":[{"sig":"MEYCIQCZkmaHImBrz3nZf33cxUMqhfyDItcB4roIfdSXWJlTbwIhAIhbLBhNsMoxGy97K39r5ETfxRNfGwAcOJHrcVo74Qix","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY067CRA9TVsSAnZWagAArtIP/jK0wwB176nnt1FKr/FU\nm9N/d7e8BQ6sCj9HmD8GB+9Cbj79wv1gk0piKqz5d2qrYXetIBMhdRyTlJkD\n8iDOmlbmEFrP/E2nug6WfTCMD5YBN/QxMUw/6+QxLfN2tQKyv4Aj1bEFLoDQ\nS31exUa7OZdWiHntt8ofLINW392u4QGzoK+HtB7PnyrgdsC69SWYwcA5TL7+\nMr+4DxQbWpRJXOwB+THpKZYlTD6MfPhrXITalmJfDuwCGbEyQpXg3GajVkcE\nfas4wnEQsCAntKp2IHoTHj0tguHHyqUQQNiwLH3HDiJopv2QEkD+5Ahl4ZWN\nFnSkujKX/9HVCJ5jfTutd0aO0gduSGwj/HYIkI3Hzi7e/fQDwYRqji7oQBEE\nnBagM/Pe4/AW+Xl9QsCEXyu0hHm+32qR9e1H3lGMiBfResTAADjq3DiCOPil\noiBOn8lwvSY5YXo2MIFxtNS1fRMs8+yLmB0vkkFSpsSuYmPgp+V0YxhIjOg3\njXzUBDjkveKldnv3Wj14m7AC7mO0w3P90K7heeE42SY25RTSjyccGWsz/Xm+\n6BRkuYppIWYoLV+4fph9De9p58u8J3xZ45vbbx1cVmcuczK5N9xNPrZH+xxa\n5UsqDxDdTvKGsRF4vZkRVQ7yuD+44XErzxeZLf3OGhvGQWvlF/HV/7RrUbwG\nj3bh\r\n=tLna\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"2409f1cdddd92c23548c18c055a6a36efe36349f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.2_1617120955560_0.23900434234973034","host":"s3://npm-registry-packages"}},"0.18.3-alpha.1":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7d355e2d625702aa57c9cc6965081fcb2f5f7523","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.1.tgz","fileCount":45,"integrity":"sha512-xtqSRV2fjTOcGihw+hwdteTnN+9QYC0F0lv6yJBhDPy5lXDRiwnfa4rlPedbIY50t33tAMS57P8JIPjJxD+pIg==","signatures":[{"sig":"MEUCIDk3/IrMUuB+14znFZu8zhAuGagstRqcWNl+iT8D9EUfAiEA4p7y/6CxiCNtB5NvWaK7OTl8SJGmqR3Mc39UTkYcyI4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY1/7CRA9TVsSAnZWagAALhEP+QEqrR/16m90puzlpCbg\nHbTGbc7WtPP9mDnj4wj0Qce5KrscEEbitp3tVZCLDi/FRbrpr/kEch5K3BDu\ns+1iesY5VRiXlcs/npFsPGA6h2tMW9z9NvyQcEy09oV/vBsXnfEWTbTezqLw\nq81FJWvwQ4Ln403AnbZRLtEw+H6NeBLaaB70sccmCXTYLzCafqQhPjLhfSy7\n1yc3kPjIubKN2a69yr6vOQASvVbpJQZ5ZCZvnlbK61VRVUMrCwvmfurZzmpw\nXQ7WJsGXk0kokzPzETbfQej3i9Ve6HQcbvp6iTjyCswhZ401ed2psUUwFBCH\n6WV35uPbOw559swt9FsB/rBeO4kk9B3WNA150CcajVNRpkQ9Wsdg1b2m+4xD\n/5biu8osQj4935Hum9trVmEpjV85N8ovK1MbIpLkAk4EfhMGXKZcjitjkQ56\nCr5Pma6RoBNs+R+d5e0ssAMO8yN+ct7ugHdYk2pkMYKQXY16+HUXYXTVBW4h\nXm/Lkz2BLRoEqW6zdokQBbyxLikcwyo5Zkwzuvv0uhfBhvw1Dx2UeR527+J6\nc5s820oVLqiY6veOOGz95IKsi4PZyv+WwRZ1B61aVDYmsH+o/944y7a1gOdZ\n2AUubWA47Y/7hsV1N7C0cPKoREfOZQ5Yw+OHI1j3qGKaiOOr00ukLysDJd9r\nDD05\r\n=Tarj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"cabf8630cf2e295ac2e7e5f44d6efd1ae911cbe4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.3-alpha.1+cabf8630"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.1_1617125370973_0.9276165778961876","host":"s3://npm-registry-packages"}},"0.18.3-alpha.3":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.3","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2caf53946e40534965a1ee023d9d974f5dad6c3e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.3.tgz","fileCount":45,"integrity":"sha512-+/UE3K4xQR4qH89qfzhb6AAb5Er+b/J4Cd66b/R4zBWVqxTrpxaX4XS7pZ159CrFLcR0NhXKlE7g/GW8+nHzrQ==","signatures":[{"sig":"MEYCIQDjl/4zasMXyLQMPcjBelyTY8bKpCypLhfSHRKpvNYqngIhAMIOAW/ksJ8fRxGfV5uXiA6bgyDmpXdTC2q/nu5ZKHqK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZCbhCRA9TVsSAnZWagAAKC0P/2JnAegjxSnf8lJ/jFCt\nltO6V6XweLIGiVT5C1O3OhfANxK6Mkl68WTp5RHSEu4RCq7mbJNAWHObd6F2\nIMvuWZ/0fhME0mvW6uUK/E6d5lK47FxfRfnNwtjtDb4IhXHD/IoZSWowGUEx\nRn0aV3woU+muKZ0sEYEiUB4UwLgjvjk3IELpHAsGH4lgUzDi4EI+o5FFCSJP\n4rGiqP4N8Dgqq+CWSglB7msUThdyLbmb/+Yn19mmFrcoqRVyEUzUXMhfOFaB\niPN0Sonl3HGQXeKwoqDiqg5dA4PDwt9GzHVJEecLNsS0xjehpgxc7ZZFhR96\nU4fYOVbUfvsz1kjWuqppODG01EKcUdigFwMdai5cykvNHRoGa15nWHyw8uV0\nss/h9qFLaZif4dvZNwR3eTYwAMxmFsqqTkYSu7mvymT/CbtN8gIeVGcIcDEr\nTuOviXQSuZKYF5GEMzRjlfU8WXTI0StGV67XeAlCyLnf/lEda24kVWf15OHo\npvfTkauHcAr1N9Mpl52C8xR65t30HVevrtWuDKByGsL0YPBtH3huveTHrpAx\nfHNYlfrO+3MXey1Y7nUisa+jHUV0xWGd+8RLVhO8YSWTEf31Je7T831ZxJux\narl0jKUPOr6HLMNea9K4qz8LO8u2wixe+8x80KZ2ptAvWxDE4c7u+DOh84mb\nfvq0\r\n=Fc+f\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"853fcb94cd96cea0bd1af18cddb355345f76adad","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.3-alpha.3+853fcb94"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.3_1617176288725_0.32351161359879743","host":"s3://npm-registry-packages"}},"0.18.3-alpha.4":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.4","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a39cee4adc498d1b71658d154e16584625149ce9","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.4.tgz","fileCount":45,"integrity":"sha512-y2gGgsDNDaFJQgD62AtTgWbedUhgkdcAwzLK94szvg2l1vXALPq5VJHkMAcOeQ0iR5gaCwbYwUANnXNYflc7gg==","signatures":[{"sig":"MEYCIQDxYPumeTR/5bF2eulJEt0QHQOy5b9Lhk3tDx0QFpEyyAIhAJpuxX1LbvaHczCyCxahs5vmkGtavCOERGdUAw4Py65V","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61760,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgazzlCRA9TVsSAnZWagAAgxUP/0+oaATcqdgbKjgEte/Y\nq9QKX911pwLSSdFhUCYPRVrx5iC4OK/4Kr+DGK+XT5ay0eMbKcTZNvW18raL\ntY8sUZIaPVovQfWeVntGOXL10igdGdYBWhuhUGB+U1j1UpF7MYmqaY5XXpe8\n+vd04cdIncGd5nLz9pwkCjGcTCH6F9WhDQ5GIU1lXe9ZpLXSWwkT7jonRD7l\nIpCzWZDLPNiJNzQFkK1yeeKizBDycokauD3kH/NnncD2EHNpPh28Vj5LH10i\n4fx7/v6QZaeCVvCag9GyNi8gULQCbJ17LPFApJGfjQGOjrMQ4iTHDP6H4Pe2\n6YVSev0DM9TNEtsJSiWEn4WwF0kdGmUDVo72sT8SAOAO67SaJ+QjIfdKgOCW\nLd+Sw+AtFAxPt6v/eeJGrJA9QlRj3dCxWZk8FeizTwN4DRQ0lTj+2/7dNe2R\nC/sHHXAJDIioTVDypdHbvhHx1wNgG4LMddfmOn5aSusgfSqdvOL49W808eQz\nxTX0//h54tGfIPbqiPVZh/fAMDTucapDAsXJPR5GZb7jxjE3RyAGY3L4JKyu\nVBmRjn1MQQk9/S2c7v8RYFPUKFbTA4SRSDsE6Ko+ymGwizxbeljxO6j/bBZl\nZkJPhldls1+sfsicLLf3JASVqKcdf4Z95n4TftUr22XqWxjyp24sqatKh0dS\nKbq3\r\n=Lf0V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"02175dfafde72898d7ab40d8078b0e1b6576e82a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.3-alpha.4+02175dfa"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.4_1617640676931_0.6815246552840866","host":"s3://npm-registry-packages"}},"0.18.3-alpha.5":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.5","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cba22cf2fcd16f64ff9f67e7adf05cc56e2574fa","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.5.tgz","fileCount":45,"integrity":"sha512-d2/9f6FeFjTn9A6fl3uSvPqYuQkZ5hlUHHUaePVOaH8DyWDUxTwwVBb8aJ2M/j1itpLHNGYRc/adWSIzFS/JYQ==","signatures":[{"sig":"MEUCIQDmT1z0T84SueUK5NTWuh79yAhg6Gitz9ceaRwOGctKkwIgJ00kWJ7uvo9hV2fgR1YGf4fI797BDucISal+Tr/QI60=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJga07rCRA9TVsSAnZWagAAzvsP/AvQq6W+/I2FZENhRtPo\ndEEUQ5vEnFJg5BorYlga6vSreuTMtn2eJEByMI5dMwaBbDXImPBqpxseScIb\nE+FC0dDHfhjzsnkcIbEi0vPXmRqdoarCsJxF0MkNoPj/pQZYjQVMxBl1UreL\nedXjWRufuRFFnKmdh/2AtBAS0pifaJEcyREVFZpZn9WEFC4Ol51AK0ibEsih\nk5ICNitZO1f7xh6OlsTJZRzgCvguEIGLHR3Sc9dONCo3qFWNNx6pxe4BWoiF\nsLDvsmCxBoAkFvw/96n7ov7a0oVjNsVxhhcSP4xZWVVcyEVon47Xw9r3A2Mi\nf+3OpyW3byPQtr1cv9qMsox5LYvoJyI+xeduc+gvmnEM7FRBPDpqVSVzzh4Z\nD5GdYT3nhPG/EPfSjgxDtGRhL2IX92KKxNve5oqL+ObU5+d7pNnQdk4QF299\nC0STnwwcN3IbVPJsM4dYLlBpw2bCzvWFMMBKLal5WdTDKwmcwnz+XyRb3iP7\nLcp7amAiBANwZO7cZxypQoIuSpdwvoPzTIO6hXBbyKrSzez5zy5RfO2l24Sc\niwVaKctFbsolW31f0d0zHeD4kKOuTOe8mOSBGIwKvCY3aifPoBMoFJnDxOMH\ni7RqeOmSyIlqQxcLLxEALMpnm5xHoBc4+buU68RGxW96r1gZxyiu85VSpFzl\ntxnG\r\n=Dcwy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"8e2e2a9653bdb648849a0ac64df55cbe3ff0c503","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.5+8e2e2a96"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.5_1617645291344_0.7675893410115859","host":"s3://npm-registry-packages"}},"0.18.3-alpha.7":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.7","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4ff1a09413a385856bde74d58ec5252a79bf4dd0","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.7.tgz","fileCount":45,"integrity":"sha512-Eh3PgZZcJFwRHYPMN8hvG+iew2c51LD3P+E9YbaUfbqjOsGmJdZNAwJIkbzrSW2LkZ1AqZGifopN3z9s20zN9w==","signatures":[{"sig":"MEQCIHh9zaddIBhOLVILv38bLXF+7ieTWcitSiooKKP0lfqmAiAsUH28UnwtW0ovXlXr5J5Ef4iKz895fXr93xe8EGdLKw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbdnnCRA9TVsSAnZWagAA+PoQAJlKDpBFE3rQlyW2wKsp\nMCf8Qz0hWBsYIO8RJHiNxXpnFAIx/iKTaRlrfPVLzMbaTbou+vnT5AkezQga\nYGACyBi56Ppax40gbNDbex53NJ4Sbp3E+Jl49uPynGsDCYKiHNw74ax0D2yD\nu/XUdA+XweNQAJk89tPgcEruNKqBKlqRXibI2T2z2Il7jcy9mLWh+9PKcIF7\nUXacBF1Su5g8reaPKJEOU3NrugitEPbtdI3LKrRaKqKHM4X2wo+bvVOl94MS\nKAJ3WGc1SPT6i2hsP9LyNQklBd35DHeBJ4SJmnxvsgMZ8XeiNWylYbts24Iy\nOJKUxopriePQrXDUl9KPLe9aMrvFV5Laqrt+v9QX/flx1S/kwSXiy3VvXWqI\nnhy66m07JtA3S0GZaLAqZqAfbwwnNWB1ZFMj3rIVqoLS+jElpTU2RFJK5igd\nsQ9Vv/oaBlg25sPjFBx5VoN+y52XplPq/HZwr3tl8QfCSCk26GtTP3WAeEtZ\nbAuvDMQb+2nWsaccoAcnpEmgmkX0HkLeUeqsIE6NWHhPJ3a/V2S/wnYrNKL7\nQizL4xgNwr9UVmG581CqlswZgp6fQYa9XlZo/t49CwAeedIwLPS71Dg7SZ4v\n5v96aeGV7cEPeDbmGcZvNLcJBbldBFvcUE1ZEP12KRObDHGDhryTsH2Lvxft\nojIv\r\n=tXMU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"897c35f497363ee3f3ea4c1e5ad1628e09ec9041","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.7+897c35f4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.7_1617811943342_0.02095684168302192","host":"s3://npm-registry-packages"}},"0.18.3-alpha.10":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.10","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8d2313a2d91a5828650c3c490ae1f997e138f149","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.10.tgz","fileCount":45,"integrity":"sha512-nc23BT7pIkK+AMSCyX1iI4ylERXLYCI4WAseeAdQORc52PREtMTNpkL70CtzBHylJbliW8LSE5N12LcbxOR5gw==","signatures":[{"sig":"MEQCIGFpIebgOsAng+2jaTAuf8F7+VTjMH5OYDpVrTvnPYuOAiA1oU0DqjHvZVhQd5pzm2yKNH2PvE3Ovdp89xeVG0BSOg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbxJbCRA9TVsSAnZWagAApTAP/368JHViKYBxxkenKnTI\ngbV7Ssc/uY6aTTSsMzXKi5OEOBtUW4PdXoDRje4PmtG9uBPNc3e+HCV5+ZVY\nj1e4xKwSOk578cSX2avp6VsHr1fGrsmgfm565t58VZDoDmpeX5FTGd4Gb8J2\nt5r2c4uFTA7pU/4JfkfGKT3B+PnEJz1rr2WIsFEEvBX2sr1B8tVJ5TzRPztL\nzPX1t05FQCYZuxW5/67W39H0kJNqZSm1iJggwe7AyNt+W8nOcYiZt1RHlthO\njfbeVSa3KOjGCUz9hTpFKv/pWBqw1i72beclVeNYz/gdcrR+Gy3/6Bp4WLKm\nxXAAABCoOW+4hKW9XOlb2Jd7tDnbvwvgN4zwnKWDa/SlmGW0kivtccQ/455w\nIji6ehbCx2zCZBUAgDMwMuGG15CZbZMxiP2vWu0TGlAxtxZTCwL4ifhgY0Gg\nztWTMvMmsO+h9i0kpKUcusCZ9XhQUpdydKG+bgM4/aSR8bCA+1Si1PLdLHI2\nqNWWmYVSpR4gdV0DIqI7pB8cKeOmJieLkYf7aojngZ/Yl8e2vWJxcQOtJrkp\nmrB82Y5nKGMDqo/zuVkyqUeIfWEYMO9Rduqe2T80ydSgR4QhJAdrCeREHOsL\nXobvNQnx0FzIDEuBwAiZd89Vmt0ha6fgVa/Db2SRSqK18tQXGdc5gBsCpYVi\nhGU2\r\n=KP92\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"80ff5e2af390ed8bf97c4bfcd1221d2a855b50a1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.10+80ff5e2a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.10_1617891931056_0.9756398483971325","host":"s3://npm-registry-packages"}},"0.18.3-alpha.11":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.11","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"243e1d952b97d67427dab02fc8e067c4549763b8","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.11.tgz","fileCount":45,"integrity":"sha512-ybxtUgg5Rfn2EtUu6vDm6RJ4TSDh0beycpFG5RZyBVOACHJkOGGurupY6NjurijEcThFa4fimUUoXBA3jxjMMw==","signatures":[{"sig":"MEQCIHUICtfAMA4Ck0INusEOGOcTXK4KJvtblLo5lSi9QUwHAiBEpHXJEm+UNXR9S95O5KeDhsUtdbS5pNI1lL9qTzByTQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgb2XmCRA9TVsSAnZWagAAVfIP/iHYP9/YQ247DeZi0Amc\nNtMgRCsqBJL3jC6MSfXwl5hQYewaWf1CRLA/uJd3m5W9A4LW67F8QHr8GY2m\nR4VwpO8ATsiKw6PZl3fD3quGtOEdvTyMxB4lND64Jv9HIwL4T82AqYTYK4wr\nfKuwPH7cwZSAvBSEMy/c391HlMbblkH9BNa30NY0JmyA/8W8e6Ia4TK9Wxvu\nbCYa3tWU+KEum14K0kTmSoIOwvsY9MGJCztcim47I61n+jiPTeUSE7jwolk9\nJBwmf1cUWczqWpjWW3lbSlxtqEovIBDaTbmkgrx24eEnmcpZv5HFRN8pjntT\nb52IW6aIjPCTQfiaYiMdniuMB2E6D/N26UGbe1pM46uySdaA9vW9MkKpCLSG\nsmlbnKNZnFkoeQdMXhskN7g5yhnCMSir3dqsyqYabewnrl5iJziHxrza4mtk\nSFRigmHNG9YvqZFoydrduZWefwTRuLDqVS3Uw2EVZLtoLugI8BjX+n6w+T5G\nwGpQ72Zhqfsc3kIc0VU1cdKr2a5roxpmopAeHNBpQ+vQWGteREnNRIKOz4VT\nR5lSqbFkjGPTNPBw7uN6vCK9tvny3ZWQoswQL6AsIoq9ucys7aFaZp//L7Bo\nemOYlUKncSkn45ZN2DnxN4VMXh7D7jMS7cj0vDtOiunMhgW8cj6c2zDfOHR+\nuF3V\r\n=xSUd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"64c8ef57a9fe3b8468f2388ff78687b927ef8965","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.11+64c8ef57"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.11_1617913317985_0.4301171827964656","host":"s3://npm-registry-packages"}},"0.18.3-alpha.14":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.14","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"883dc9a31194175f3bc5ba16f555bb439e6f236b","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.14.tgz","fileCount":45,"integrity":"sha512-0zbXi0Y6B2um+8fqP7HMtAzTq5RGHRdaJP+oLQBLN2IC9unazLke1d31iGPoiZMdwXig2DL7bSTJHKTE4stirQ==","signatures":[{"sig":"MEUCIQDb12Lq33FkkNmOww2GueVIrKxJpqbBXCr1nHp75uvSowIgHZZVDVfOcfxewmDCdgnGhhsZkYwJuFWKUsSQX6KpFDU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcBpBCRA9TVsSAnZWagAA4D0P/18evq0DPA4YUl2ajaL2\njrSNC8MIz4Iq1JkxCzMcwnR+1XFLEALoFRS4C474Bi4ze9ez8MIzkknn5s9e\nxcj0rf3oX5sEm3IhVWiJA2SPA7NWGIuoHkF6W39RAK59oQ6G+VbKRy9Y0c5Z\noZTTuzENvAe5JFgHnub1XjSfl2TfMvjCIUhETeVDHIYMJ2BElEzB65BpOr97\ncdFC9IerVt5DJOu7Dnahjz0yxx5gXZ0j3npzmMagq/Qzr3I541eY8asdTfTe\nIhDNPUMoljHGc6EKtF9joRDmSQxZgN27hPOfXmLM0qabg0EOlP1PWK/k2q47\nymLlyRhg3kcr2i31w1ET3fAs3Me4WLO+lRu8zX+VhiPdAdkxGFblCERHsuqH\n0pqE2yurIt+a8xdMqq/9/BKeDf+Jd1qrNuCwAG9ied9C6awkfFfZmS+tvCQ/\nl4RZPsAKZDx7K1fwZgXnrxM1Jf/V2BrLBOKBN/x9+tZjBQG/E8/o9j85T5/K\n9XxHkXWJO6lv0Jy2QmzJU9FguxJR4casH/O4kQOGWTlrw1jcJaIqODFiPw2f\nyFn6CPwUNMXgx7FYix51qEgCh3F4lQeHw2R5rxsDhp4N2dRwuS5hhvDH71Fb\nDs36+fq+XTJfA+Bhw0rQko+qKjkSzMAX3ETQGiltbyZ5Hk+GHIfulJOOw8JF\nKLWd\r\n=3V8I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"4a3fd1f4d86499e4485c1f1af0f5589de993b0dd","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.14+4a3fd1f4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.14_1617959489241_0.17631252208774195","host":"s3://npm-registry-packages"}},"0.18.3-alpha.16":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.16","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3e8f80efd169764374e8487b16017d3532f7b186","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.16.tgz","fileCount":45,"integrity":"sha512-DlP/mH2uLXiTeSdVOQm5OyAy4AFnst+aVuvIEMf6q0gsSNUeB67P9Kl29VqWBhq4aRpyN7YTjp54r8Xe9lk8WA==","signatures":[{"sig":"MEYCIQC7j3eil/nkKKBMgm6u1hyb3mwIRNoXTrUby91PXfR+YgIhANgd10v4mzhen9cCby4kop95kMlmD/6t1Ay660KLMG2b","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcLQVCRA9TVsSAnZWagAA0ZgP/ida3fbEogKXb0W/wdw2\nSE7i3WzQOuYfcEVsuUr4S1618GemwRcICQ1iNUZnLDmrb1jo/6t+Jwb4BXQj\nMTskhjQ6QHdH6ZiLVegNJPRMpwe9qrpJ9BpGwnQsThSltu2eKSub1wuk8dkh\ntHCqdrLX6DLU2997NoRKzG30319iWCerdYIm1+AuKlVuYCF6qFMuzmFiat4e\nP5gMNzRQN6Pd5X4nE2ovhYmjsoE76deElB73H9jEKz2gE9sPkIRbU6Nh98CT\nVHMR8BpKQmDCQkUZWl9UEKclkUtTx8isIY0ePO6So66oJmsb9cTrquFL75Gt\nyys4j/eWtAwewvXNcCwR5ljZa4I5vm1kFb+FFLW9SNh9sfNLaAVLawphcHsU\nZO6h6pz74GiGoAL/NodB69A5ZxuNXN5fUib+sXmUtENzHDTo/Quf7tsMrywY\nVVjbYxLhNS/ebFJDZPxloCG0NcC0jDiE2u7TYtzZw+UMTqNY0q+yqcMRyTAn\nYY0bsQjbwtSbZmaWMQv9Lill9NGlI/3KMMQT/5Wyu8FFumUfnhFdZherBI2t\nHJkzZkz5wAhurh19CMiDvwp543q1PRWi4gqoJrMQJtuyz4aIhdYJl44fOXzb\nzrmIOPFEtKOI/2ENu9XzW2qkZbZSrSUo4ChcS0MwomibJzzhiCXjJDr5tn3c\n9wLe\r\n=DQ9M\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"7f7afa7bb88edf4a4d46da8b252116d92b578b79","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.16+7f7afa7b"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.16_1617998868204_0.48395997852908224","host":"s3://npm-registry-packages"}},"0.18.3-alpha.18":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.18","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bbf4cbb8076e9e0b766217ab924ee65649fae577","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.18.tgz","fileCount":45,"integrity":"sha512-6fxh4bZhKFyIVhpUI0y3wKRFdr1CT1YeUrQaKzHtLeRjlZ8ZkWmbgNhHbabTB3eNH+w1FFtFgql/uV0oKyVsXQ==","signatures":[{"sig":"MEUCIQDIeP+qVHh1QbrtFDcZggib3Q4+3OuTrFasGk+3BwExpAIgXfZ9Xn3Y0DogI4s1gi/mUNYPBtGmh/xNSV3EnOMDa3A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcfXjCRA9TVsSAnZWagAA13AP/js/l3nesaha3FtC1jaI\nutfuOPkOpc2EgEGM144bYtZSlDst0VFl7LrAHt4iz2SZxfrd5C3xVY+dhl5K\naghDEgFSDQmlCzp/3YnrZ5i2sKMAWt/tp5LbdOyh9EbUwYiTbZjHGBUVL1je\nctXJgoOW8txBAjgIljqVimCDqvaqYJfz11kS3Kpw+BjYFvGot/EouWUMzXpn\naq4NRWUaK+4Ybfcp9XGvME5AI01pUCOM417cciyhpSrkGeo0ghojbrHu/1Xk\n1mKaYuvKVSynVXJonUyTtKl+mUBYipMRBMCqP2WVerPQ8If//aJVCEi7aH35\n3JL8XW2u49jm37wfpyGuNEfjTV/YaDNnj6rSROLukfPRY/oLo/ZTs9oFx6jN\nrJvPnmeoNaf9T001AeakHSXpKjBAkhlaNupiSyCqF2xxVE1jbsZksB/Llzhb\nzCmNRs7XDGOxZwE+tpsfIyuM985M35TTfgwc7h7YWvP4E0eiktrG84lGhxG8\nIjKoJCzuKiX7LKa2WRdTWgGZgcKd8ECO1/WZdrfoXiaochZvGM9jMye49OBv\ns696q4NyTINhnBa9+Q3iWboxKG+ZO7LFQ1JgAmitktrl/NzJqCMrrTPXgoB7\np5sVtYMT1Vw+5CMJ2+SM8CJRHsKZBIZhaZtygvpVr/uUZVQnJVqOllezoXmx\n/XRm\r\n=3+qF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"9fc1b109e7997b054c7182cc6db4d71d7ce9e5af","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.18+9fc1b109"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.18_1618081251498_0.6120856675184263","host":"s3://npm-registry-packages"}},"0.18.3-alpha.20":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.20","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"de928f9890c337f664225a51e50f0d2cca0231e2","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.20.tgz","fileCount":45,"integrity":"sha512-ehcQ9EZ2zSYXSRFbRu9/znqTq2z2v0QUjJJ4gsDJxFYRnQInuobg6iRtIwYY7HOnTH7xYJDXW0Lh3PBcCo2f/A==","signatures":[{"sig":"MEYCIQCrQ09sO4GZtOeivmWdsqXkI+Nc9JvW1lmDUIJSe2zG2gIhAPyy+iIKR6pMIdRdTclpyczVed5O3WNU5gKeQXPj4kd6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdGJ5CRA9TVsSAnZWagAAff0P/3w1yMuS968JLzyrNgcx\nQE3Iivm3zxZLJwy4PuNdjW1mvnBNFAjSQAC0X1oPzJjiYOjfXO6HTniMrdoE\nff67DXghlXUbMe9gZhVmtvIT1Dybfv3LmdTqfJbqPrHkSLZbpmDnbukPHExu\nNLx+/DNf3N1ou2KpTPKIEci7SwwM4PQg6+HT3F7iLM3rin0V0LB6loDJ3t2S\nUJ+n6Phq6IYXRxhhuijNdVISAfLg7vRcxDpIJKqqXrf147zBqXFTcsMwnyuC\nKaaLt8pW0XlL9AlKLNoyaSWRKapINj8XoEE5LBDy35CsSghtP18/fxXuRam3\nSXz26h5Whh4GDs7mHYBqliMEyyWtsWrIVwwn+HgfcueV+kIBXcSlgsbvcjNn\ngl9p5mGxB/p5X/xdQavMq0RP8pDeNMa5iExq+nQU+WODaBCc+QbrB+j7eZ8y\nZuS4D6us5w65434eN5KCM55mlC06new8hQi6BtOSw4AfQugem+d+Dgb5GiTH\neeNYPtKvwFeGuh5EDCN9s5a8vVSdYSVkB2xY2XrtvKqI4dtIkpGMI9dKNcpR\nGW2MhdmQvcFupPyXuasNnspqKvFDNLJ2d9mxf/IWSUpO8NnoN7Gn/SYHrw3u\nWN/J5SWgPjB7Exx5E4CciAIfyljD9EBhPs7+uxFxrRoD9RPXLlqpaT4d4y5W\n7bOz\r\n=KHcM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"b6dfd978513eb400a706928e604b625961ea7062","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.20+b6dfd978"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.20_1618240120793_0.7209612410052595","host":"s3://npm-registry-packages"}},"0.18.3-alpha.23":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.23","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f58b17a845f64865d738d367368bbb6a6343f23c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.23.tgz","fileCount":45,"integrity":"sha512-pc5oAc18e2L3bA+ZS15VNRVpZsOmiAqcshrZM/mZUih7+gYWjpGwoHtniL/Is5tp1HO8kNhjfGDBmvkL/h+k2g==","signatures":[{"sig":"MEUCIQDN21j8GrpV7kz3IDVwE6MtprVI8GM6mv9WDwnPxOOcHwIgK7hvU8Rn/iEUKXUoqbZ4lrFwR/4rRL8RRZIag+habpo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdI2hCRA9TVsSAnZWagAAT6cP+wYbJh8Xmbb0VV6tpABe\n0a60sUo258VyRTthAk9TcsqIv1jt3BsCdYuZZNpK2n9+KnO/lGrDTKBr6DtA\ncx3/0p3uJK3HaCoqa2HgoemmKYPxdvR2hmGbDY2YtEnWiqqHT+fMUJT6Jr0H\nDzpqXKSY6Z27DCPGUc2Jha9hFPPWV7/Pbs8LsYxtQGEee7JxPS70ab/zd4c1\nCoAn17cse0Q//wb169prdByBZBmVsYAmIUVRcgz1VpNzkK8qnCVp0VD7/koR\nqt1XwQxCJ4eeI2wP+dnTpNbsavbsQY+39XXp/N58FLeYzVABTyckhBPsafZy\nLd73FmPLIvI6d9ttUB15zXS+14QoYOGfGZm9oydReuGFNZIAi9FNwaEbVfm4\nZIfpocvIUsWQyJJowXenSIYgFwFOOObc5hv1R9y/4PdswSjZ9r2YZ7vm2UMM\nFXRSVpizlWHORbdbAnrq7dXkFsMjaZfPgiBfP5dc0RqRPlSRt5SiFq8u91OW\nwZ4bZlYlgXPWovtETfDKaJWbl9TTa7YTs8Yp0dm0tVfAsZ3rMa5VNb6MZ512\nKFh+Fa7NxQw4mM29mSq/WRN9FaT883q7majjYW/I6VLcDbMwerEttJW6Og3V\nHv2UkXV8tFJICrGTIWViUL7WpCR9+zNbLDFh943LDP11LJV7T4521x2drctf\n/5aP\r\n=kVTH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"2260dd6594bd007f886e7985bbedba1d655a6d3f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.23+2260dd65"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.23_1618251169426_0.44621695660028937","host":"s3://npm-registry-packages"}},"0.18.3-alpha.25":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.25","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.25","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"afe9f2025b17667c4b045a4ea3710590c5e3849f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.25.tgz","fileCount":45,"integrity":"sha512-+gyivlmAJFLpHH5swbDyDB6ZmE4lPy4JhMtPzCw3lTO/uapekFF3o0GDaU88y+uR3KKFKeSpDG7IBCJmqqj5/w==","signatures":[{"sig":"MEUCIAQXOx0iLhMZNow7DiGkW6YDy5FNY8JWC/raM9s6PQr8AiEA7clLoHnjqcwgWsGfjYGEv6WyuVNXERx/tnWMMKeVfaA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdKKlCRA9TVsSAnZWagAARLMQAIW0/XFsCS2ChTW2IxKz\ndjNUlz4SgnvbHd9NobIWZUzIM5lhN/boVxfqWhRknG1nmbeImUFGzJkO+cQa\nE3KETVll61SaSMrNDh1ES6PQ9hCf1sgW0+CoGP4C+46YWmQH+L98s4S76jzY\n4p+nEd/TJeZGVmE3Q9QJeQHcg0lf1h3pceszZYsjALjPzsn65bVVYHgUV2ne\ntEV0ZTWv/8zf3Ffo1gixfcGbyJyDFXYyK6ZFyuAC1tx7ZYedc+808Zd8Zw/b\neuuAZKBcR6F8itHkVYWexKOsCSM7INz/Ec9YOXyUXJNs6z9jr1st8Ng4M1uu\nVL1xgqvF50ELtYu3U1xqhXvieH+k8nS9xSmm9KIMuG29zTNKegGgQ9SKYVxd\nMy9yib9NJCuNF5lFWJbAmyQ2Peaf43Zo+xljOx+GwiMH012CzIo4z49yswpc\ndNlHF5AR3VFXZ7Wt79SzyGZ7Uuro6MeiFMMIiCzaLbz3g1DqHXIi4IwN9IAY\nYacxakKBd9jge7Q8h2cTLZUYQjUygi83XIwk8q6ru+y+4sh8Zj4pKh1Sv+yU\nzzCVjBdRWTeGcHAfHyUnjvBVy0WmuUkM+/FpCyi4gDKU3pMw4KnvR+MngiyB\nVI+szg6mia3jP+2D0s3VbmXhZ8WWZ4Ugfrii5Ee/FYFvHvWQlLBdn1kztrlO\noc7l\r\n=o/tb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"4ef22cae74b9c976f969151ebcc3ae3d931cf9c6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.25+4ef22cae"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.25_1618256549383_0.8505667574460722","host":"s3://npm-registry-packages"}},"0.18.3-alpha.28":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.28","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.28","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"81ceed57a2b55b095bfa645a952870e04db3e216","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.28.tgz","fileCount":45,"integrity":"sha512-ebgDE2wdP2R3ub9wwOLm593WQ/u9PXlI2Hyiae5LwWEaWIVLMiFc7E2m7WMS+DBnTUFCEVNRSwUSAUBkf8Eh1w==","signatures":[{"sig":"MEUCIQDhaGQ/NgxQY/HgL3+ixkOPkWo7RqiKKQk6Jd0+kllV5wIgIfjhqyowwKoFBw1/dO3SGqHgSniySEnII5l4WUKxk04=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdp8OCRA9TVsSAnZWagAAjjoP/2jJyE0bXLdn/7lbJRBu\nI3KsiR21BMqUMp0yfaJlU5DUdz8vObM/9Vy+BKBtFuPWF9YGvhSTQ5LtBBI1\n9vToKPXlXIC6FyXyO3K7f2nbDuskzWyYOez+/eWrQO5LVP4xfh+SXxNkgFlx\nUlkD26FpRusUZUeypw0s84ARS3hEPZQTSGRAT1FijeeOoAI7MChhLIa/5WT5\ndW82VOt0o1Qx93ZquhiMqln7IyvdqlqKH3/ErXXMqoeCSSxwTUvjdcnKpsAL\njpvU+icMWjoZ3q41kJHq6g1UmjoAqP1UA790sa5v1d4JaQzcsAdQhmozxy+k\nbtHwzQW1/EVCMOOQwvShvsK0jxE4XQfAtOAYSiLPFQvBuKoy1JSFUhu11s5k\n1QHPW8dqluZglVqUronSBTdc7LteTyUjz7vle/lDMiukb3V3qKu6olE39wsB\nQ6abXjSYyef5SLbtogvWeZiH1ipT4sf9aY8x8iVfniarGnjw2NJdMrJ2Mdfa\nQpRzUlHdZ9Ewct9KZUh49ajhv6L1ZF9i+Lx2WEa+EJF+zo+wUbpjorEkW4qG\nUsNpQsZjyiONozFmx/MYNUtOgVazwJE6nhHeWxGBPnzNAKR0ZXoVA9oBoXcN\n2u+GojQe0EPvmPjnIGxLgmN+PLMHfGFoso435fyVbnV6W8KH4rWvSSJR5Uej\nAG55\r\n=z1Ux\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"181f11ecc761b75a2702ecf4a6b017f5fb9a8445","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.28+181f11ec"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.28_1618386702495_0.09831075666319355","host":"s3://npm-registry-packages"}},"0.18.3-alpha.31":{"name":"@opentelemetry/resources","version":"0.18.3-alpha.31","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.18.3-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a04ad703f4ae0aa2a27f14d4575f8c25dd3f2989","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.18.3-alpha.31.tgz","fileCount":45,"integrity":"sha512-oZXyHOJ55rtVJTIe2S0PC0RUcwnTcCLzKY8dNwvXoD4m266K+IpuAp4SFHTDwlTpFMMuEemo5vxu8bWxes4KtA==","signatures":[{"sig":"MEYCIQCoilMexc3WH7+9oec7e1CW3HIlalROCDl5pNi7w3VnjgIhAJcXTHBM3bRT3uLXIkfGoguXaS2BeUXVvpLNOkSHYXJm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfvfcCRA9TVsSAnZWagAAPd8P/Al0fCJeMacpy51fHCZN\nBv26GAinaKTAKSuBepRavzcFvcQ2QPYY/wtgeirIMdnm+za1SY08gXHZBMMI\naajtgTT8BWXC5NviXt3i6ldaIqwzT/nqohQbMndQpL4oAR4lYvh1qN2mo4zl\nj56J8wmLuua/HirE+F3mrNO/VrtnvGBgunStFAL+mGO/dx8p0lboE7iXxQDr\nU9ZHL0Rxs1m2noTagRE/EPcuwSLNFQrWP+g7RBam2Y3Y7UXHkwozd1n9S14N\nRe/q3M3kCYmFosaySWVTfMRiv1zVlXhlQKnSG+0IR6aAB8KRhxNNriH7bxRc\nATVHzYHrSH30nosOmeP5B5gYmwDLpdllz8u1g5XtCZYhYHBJazPfoM/xR6XL\nmfpOjCVkGvTaGyPvZHMET8HpfTFx7AdAOJsXMgsr+KuGyKM4jr43O+WpNHTg\nPDCyW36FSIb7zfuvequJ8MdQbd8mR17lwi0lRq80rmnpE8YUilzal6m7F7Ao\nPtuxJjxpB8Ky8ob3vWQPa3tyNYQXAYYm2Ct6fvY8J20f54zAw45IElRrGz7n\nVdHRM3glijylXSs9I4BvIzgzKO1vQdOUegDyFLof/A6Drbk0nXtAzh71Qiik\nj8AqZPC6FqMAVSCf/6fbxibEzseudmGClCdsGQ3hrQya8I/1GeqC9Z5lUu6O\nGifD\r\n=aclu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"d268bc6a8af633ed6803626096b124a269f7b24b","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.18.3-alpha.31+d268bc6a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.18.3-alpha.31_1618933723973_0.8999638336623343","host":"s3://npm-registry-packages"}},"0.19.1-alpha.36":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.36","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.36","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e69eda0e9594821978d7f143602cadc8e0404a10","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.36.tgz","fileCount":45,"integrity":"sha512-ZFHAcyehitvk1DxjVlc0pIBYyli/LiXetR5Wv9ltgCy3Rhtuq3Us4doQxS1WL0U6wBZnN6/PKdjnV5NUcd6agQ==","signatures":[{"sig":"MEUCIG/+bjtgmBHgpq4Rs45HE4pM0VJr/+a3dTh8O6W8UF8SAiEAqxQBbfFHFVRUihoc6NSW8DHDkqMK+CUmgkshSF7iip0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggWnjCRA9TVsSAnZWagAAOTAP/3E95zY9qIRLoxnRFWu/\nUpMqr4C9UbBFRXL+6iUaZc1kswrvBS0mTJ/BLGquVktRm5PcwKvq8guNxOWA\nAcY62NYwIBr5g/L7V2IGnLUosx9vvEQgwM0HEFFVl8xwuqH05XVw2VDGqnNG\nIZIP+7Ez3kQvyJApSv2KfLp0ZN0+9AjaHjUI2FrOGNx0BKf0rJgfRbR+KpOw\nFmzfV+Pw6dfUgfj3kaakK10KBPqCnLJ2yS1vwBKkgiA5ZP5eKmZKYlQVMceY\ns8BrExLqOZpBKazNwFTHTTBRmY6CcwhypZI32BnnYsCAuBUsm1Yvv3+OwLQQ\nr892t7hs43O71H4QF1TCO0iazUHepk18Aw1ESID68u2H7pVD4TmC1l6JhXy8\nCvGKZGJFAjrAnpIFcDCQOoSAa6TVI0Dc/VI+jESiQsVsdiEtFjNIE70HfdnK\nBdMVJWNaIGrIlT6wcsfFCgoNk57ZOkse6sLWP6HWcqG7ehnjoESopS6f36iT\nTPQo9Imqjp6+K5ORK6qm8HOXwr8RCq0HwEGtyk81DCcpZSQK9u47NoMuFQI7\ndVEKBLzldUfespcRR0UFoJ2l0CQIMIwFzDJizwd9L3/eB+gMK3p7O3g+wQVg\nNqLuefvVc2u8OEvL2XtiPfnCWyQ7M7omlSR8kB5xBtJSBD/p9F3Azy1y5jUS\n3uIx\r\n=lpaF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"0c15999dccd377294a03cf7d36085216d6e8c5c1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.36+0c15999d"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.36_1619093987559_0.9723533773779609","host":"s3://npm-registry-packages"}},"0.19.0":{"name":"@opentelemetry/resources","version":"0.19.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3813610f8956a01a353fd961ac393c00995e6d3f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.0.tgz","fileCount":45,"integrity":"sha512-wrgclhxBH4ZO86u6veSXRtH3hv9q2kaQ1/cfstWun2y6YqjajpqAdyEHrlFWYyjr3t1ze0R68GjYQxPVWYURzg==","signatures":[{"sig":"MEQCIDBrRK+Oh4IxFKQRJZ3ufChbu2Cp0mkGAshkOFI7je7ZAiB/aOCnd+A5lNQu0MdyrddV8w4Dy5Z2dvJ7t2jZZNBXKA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggWwACRA9TVsSAnZWagAA2+MP/A+ed70geBdCM6vzUEVQ\nxiurw1vjm3n2O2ASkbHcLM6ReA1UrvbHdjzI1WmAJWJlLLsmysMFN0y9A+e3\n2GC6O6zWTXR3rzrHizaeDR+vQGNshpzO020oCl42ZTF3OffdSvtyxSf6WWXS\nlDUJxSlBEE+qBG7FVGMSpx+zI7zwPMQZTqsHR3IRwll73ndr3HiBEDpMcryu\n/KsoMNhBbD8QNOWQTqYlQvUrLLrDHgdlruOyEVA1qjj5pycaSImdjjV13ddK\nSItj1ie6zJosKWNKNPZwJzxuwdKqXI7sbPnypLRM03s0FNC3A0BXhQm9kVaf\nRO/pHXU0E+0nQGpnZ++nUUtw8DmaGGWnb8sZgfEgSfpnxpre/41d8eOy/BWk\nTqKOhMR/ZLCouFZB+HuccCK4cGsNHveQfq56qVOKdYiUBD5JQlJ7R1HwnU+/\nWup+hVvHpxLCutR1QtMRZiuD4UcXeC8wZqTdH7zxGHDhcwcfn/k005ByZK+h\nRUQj/EDgR1VPfRguKtcCnMbh7V8eh+kFWIeJ6yW19QU7emdz0s4N27YIWDPB\n9i32uhRJmT5qijz4ef2DgIQkB1kFQpnOkmC8dvyhokryC5NEKCw9n2pQOFvM\nMg7iXd7zbBpvMwU5PuhAJE5pbjS7nxUXaV/7m8VPvf/J0QyuClolR4com9R0\nPufN\r\n=fPes\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"0c15999dccd377294a03cf7d36085216d6e8c5c1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.0_1619094528133_0.19291835745354602","host":"s3://npm-registry-packages"}},"0.19.1-alpha.37":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.37","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.37","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"736500ca3238af1a8fce4944fcfb2369ad9f5f43","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.37.tgz","fileCount":45,"integrity":"sha512-Xdue8k6QJtwS85AsgCO4kOJRu4cYoI4arcfu+tERvEmrn+l1HyLh2ISOEowRcMmoqng92NtYU36q30Zw6lkEwA==","signatures":[{"sig":"MEQCIH4osKz1wZnTaMB9wC9aabAvyT5byeAis/CAEHkQsJn5AiAH+xA+/w3CiaH2isiJK55M3jLaaxKHXIgtNbMDM8oQfw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggb1dCRA9TVsSAnZWagAAuXwP/1r4oEpE7QNxe/w3pqvO\nwb110C6oDMokUNr0xkD9OHmZtqd6HMruuNVatLKY/MwUuEApTdacqe1oEJCr\nxFF5WAkNM/CxsuwGHsqadOpsiixUMQWHzepzg+vDCy7yXuPDAZWK9t3n78gn\nBv1vvRk0KFas23M60lV4ZkBeaCDhZIRcvpjejf5vBfWnZUwlxERgle5ehXjd\nb6QwHF5FolvfB6dGVgX5HQP4HZJl9kM1t//BLWYJuE+SxhrhVAPlDgjrK/e7\nmoydDUqSTEut7azwATR26wZAFkJeAYPcUS18ukl98Qitw0pftiWl9jvKR5Xo\n8UWAY84c7BEzNisBkj26aS1vr7UB5SSj4vS65N2bQ15dsDwpJ2ZaQh+75hkT\nxwl8ojMPsVY7g+HivOwT6/ricssRATCKcT1BqTW/YWRz1E76c5n3ldg2QkFz\nj7zrF5s0U+Y0ZRYY+Il7Khs06qaD61MjX/fgiwgfZgImXGDo+0Qph0u6+cdx\ne2Gm+tT9I0q9bAFy9Nv+dslTG6JMDOvBKqnCx9s7yQA5wK0++I/vaMy+Ilcc\nnTEbrNhRTmEWvqOY6h9ud0ZYclzgUK3/RPzhaJts9rG6FW2n2unQNb+TqkAg\n+nKt/Q8iqnfbtB6gbKyzQq0ppJBi2KBGLG8nim0+Oq8WHyQmJm51LYEU1T5J\n059q\r\n=z34z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a0385c45376a86d396cb364feda2b4afebd836d1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.37+a0385c45"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.37_1619115357025_0.586132890911718","host":"s3://npm-registry-packages"}},"0.19.1-alpha.39":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.39","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.39","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1e45c6756367641bf9924d25c70570db59acbb6a","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.39.tgz","fileCount":87,"integrity":"sha512-Ru1Vl60i2dcWu0onO9cZxHpUbmPImnb5DMC9cKu1R0qnII0FvsC3bDX7YvF+31Pn8+pmwEIRqOw5MXjGRDVChA==","signatures":[{"sig":"MEQCIB8XnMRzVlEm7yOsJVJ17RfSNQlX7ZRefpYQ6ZJOknFxAiAUWThdPHLvn7SMxnrhBMLHfL7DX1/tFnb2Y6i134tVTw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggcQxCRA9TVsSAnZWagAAPGUP/1WCnUzWv3DnMz383hX3\nLnO5JHTa6kCjCdwgEPmEts/DUacS7RspeUn1XBVG/11viDUjtCEW02S1sFKY\n0Bb/aEyPJSArEsxSOQWz+d/hyEutYuUwhculADh+cwWCjelBftSrjHRM+n4/\nPrdKcMP9TDL7i07cC8pRj5ohCeSR55w/Y0WTza/3RUjlh6AAyJK4KHLN7obr\nSBDpXMgBdHNJLRH1u8i3eufTZcDJ+SlMqOY8ufMHRuZW7nfggJYbxw80kBbn\nUPXvv1A+Qg6eZs+s3VAgaEmGQAnz6pRwZyRGFuFJ2qoioEBI8Qh4PWAG5eC3\nfP+KmP7BjcF0ogRBmySSDg0nw7XiUeEz8GKjLVAogk+MVZY0qIEnmsP9fa5S\n2BNEoMCB/7CAh96edmt6NL5j3t2SNaRyo2h719C1tVRBfsIvNR5b/MAl7mNa\n4wpi7zAI7npZzbBaeloOyvkfI3V5nT1zqJSOtnT8NvQigy1lAaQn/krSK8KJ\nRR+R5/ZwjWnhUkrZ1dPEI94u+BJy0tTYnRb48MPjReOmDEmWSH0/+U1zx1Rp\nk5VpYPwxNjXxDUlGLvvHsF2ZJJq1+2Y/ZFQArEZmOj1faKFqoqHwBqIoee8S\nClz3EyUq+FrkJGM6BRVg0kPSGhvxxMBgjh6YwOXzNEz5/733jbMqt/LjjRMb\n5o8b\r\n=Tjmb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"23ba4bfdc77c8bf594bf0c817320a31f59ca0bd4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.39+23ba4bfd"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.39_1619117105003_0.5964009762930187","host":"s3://npm-registry-packages"}},"0.19.1-alpha.7":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.7","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"81e68eb702ef1e8e90a6a5a5b9f39ed26b5cd6a4","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.7.tgz","fileCount":87,"integrity":"sha512-W8AVPGveFy4B43YIjBnh+O+S9m8JNLdpSgYtPz6hocuEUUxOqJhK1SSlmf42uPPJCopFeuVpEeB04x6xXuEwHQ==","signatures":[{"sig":"MEUCIQCTy6CbFUcVViVAxJvAFgYWw/tTmbFpHQqQbmIh/NV38gIgZdPDh5ikWA8yn8qT0AiEjfADS/YRXdgNzIp1e1f7DOc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiYm9CRA9TVsSAnZWagAAeyUP/AvjRKiE1IwBZtk1jHR2\nj+RsxcDFUnjKNpreqFCDL7CSEf6uj6Mje7h7p/wF6limqEOx8gyUqcTXsMw1\nHxXsRMiHbNeL5OlXMByNRFfrto1DG27w/9HkdbxIsJ5Vll9IKjsbdqKnLE7N\n36rXKpa7Hj0awEnLMUAR11+57Po9UT9+4z+yFRUsjC1ntMFLDr5Ja31TL7VK\nC11xoDikPvCLpApKVkbtQHCGlLRs2C0Tdkr3YmKjPdwWxf6dRGjAsiw3adwU\nc17DPVdrbwNvPevN0V3jommU4WIEGBNBBMJpB9hpOR9EzOtm0cVhqGtNc1Vf\nb1yXcaFRtq95Mlu8oVuVs+7vSVR2XGYtsIGuy/AaQ8Oddznoz94tuaWse90c\nnSK8W65lfz8weILDJDpifLxqcAegHlbvse2kxKGyHgF6uymxc2Jc3YRW1wqK\nRT7w/bYICj3Paak2T3idRBpRXT2To6KEVQIzqkpdPSi51og26P1jtroScv8Z\nJ6jNpwXvDe4sMGfWZkKCcI1NxqrBfoBE5K6tej8A2WyWDR3H/lUldzM8Gbpf\nlaimSmLGjBxzV0JiT5RsOHA2+2Iq6F/+4pB31vYfe/sKJM+81s/zfF0jcF0f\n4m9CnxxQj12E+QtHYs3DYqsyWGYBVf1ICfZCFaLG49aHbpKOVap7f0srkfrb\nWkev\r\n=R0q5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"c4341c39dfcdaaa65a5d6ad8eb745b656d865177","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.7+c4341c39"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.7_1619626429102_0.8488523183923391","host":"s3://npm-registry-packages"}},"0.19.1-alpha.9":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.9","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.9","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4a9ac47b3e6b3e06471a93cddc9de35a0c644ed1","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.9.tgz","fileCount":87,"integrity":"sha512-n9mWbcd0JaraMGf6wDseo3WDqHPPsJ+/h1BvUb17N09dwW/8wK0pcOXEwcHXyUoCXMK7xMtxFCqdIfi3eVLApw==","signatures":[{"sig":"MEYCIQCdbqBBr+yGq18pZUEC7oeNLjFSPT3EgZLUss2R4IYGIwIhAOAvmQRnu+95lh+laD+1F4TaaGxtUv5RWxldmnGyjHSH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgimubCRA9TVsSAnZWagAAd8IP/3p7FjLwB73A0SkGqe1Y\nqMc3RqI9cIVOtmMzJo6l9OZh50TxjQzr5tJvGypmOOY4mLyI1aG52vRzwaW4\nMZCxnzw6yJaSKEBYS+1w1MVEJylJx5bW9D0OqNElUPqcT1QcA2VRnSX2QmFD\nnYxkTJkoL9xGLoG5Wz7vNLUUYWwuDenT3pbFJXNGq2eZUyBN+sv0A4+vs7Q9\n/krCNOjrS+AdyHyioznNh9DJuHxS/MAmZ/aruV2U3dSYHLWrwpDen51Pszpe\nPL9FuQS+DmeKnBb7WYaouEc7Y8PkIzUjD9nd+gMOSioOzLyEq42HY1PNzdl9\nzKCdBCZUt3+FGBLiR4h2KpN1Ojq/ngPVxzfS5wHyvnnuHDDe3sT6J1yyboQ0\nYJJDaAM+aZ3qdNnsEhms5POgVa7k5NMFrBpPvSgtPrA9rl7FDEG3T6UeT9aN\nDJR5IzAfE2h1mEbOyUoL5O/A/kF0DZYI/1gYsz/mUzb8z/5RjzUU4jOyXUpE\nyAPlctFre76tRrSVpM90jgIBFhQSgVIvouJyH6cMQtKHMzFRQ1qmM0GjBHiV\nOlLwAGi+rFx0lmDXMed4ivobc76IQcfDlvgA7nyTi2HFV/kwi5qYykZiLcEm\nSsjvnqdwQ6izUw1X2oluSWUEXJafd7OTpp/fofEOJDUIrkjzhDiYqaLDxsX1\nQQ9I\r\n=h2rK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"677727b2da55ad1decf399f3584ef92dd5fea239","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.9+677727b2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.9_1619684251413_0.8672978383383982","host":"s3://npm-registry-packages"}},"0.19.1-alpha.11":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.11","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2685ffa33b2fad5789ddcb532077c490f3ca230e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.11.tgz","fileCount":87,"integrity":"sha512-Cb8fxUEceRPFs0GLAZuDVZU0YOkTvrFzPUmxIgAdB/6KHUqrZ4EMhgMaj4L4Mi/mQJ6NbHJ2LGr0OpNIcgNbyA==","signatures":[{"sig":"MEUCICKRJjD82adQO9TWFixfVTk5avB9jvpbnKQ5FWdEzx8QAiEA+JWe0s+OGpOfvWX0aUCMoBKFiYIU00Ui92Xsz6zgV2k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiyABCRA9TVsSAnZWagAAhmMP/0/FgMUREi2Er3/jy/qy\nuMLvNaTqCRgVFkXgsHD9AzYmBKvTGLoXuHG/LX6s74zbP11d1RGK12qMVzEf\nXOFaLhoLlySMveEYcrB9nwAtmhDGt9s/W3mvGXqw1NexwD5IzVPiSAm0lV01\nkNgNHrJTjkf4qE7QZgaBWs34Py9l7IblYbVeq8ycsuIwOmd5kQB4TBNeQl5a\n4A1+jFpNxUUBsUwmETZ5CtrHZACzMwZ7WtUMok6mmQ6M9G3gDM0qHz8NNDbj\nUqOiIPimC6a36FwAhlSUsg2fJxqJ0SlqViCy6PP6fG0c7AjqGq+6MMtlgaMw\nRptBzlTtEp7T/jeJpf6Z8hvDldsTa4U5pV4lKKRkdw5F4s6Bw+lL/0hypuOi\nO59A86oIKgZ0TuKHZKodjKRgog+c9LuiAM3TEOsCiYwN+vqbe/gszUr2gHhj\njQIH4ODp2jysH1q3U2kJdEN9Vt2YfJIabwh5RjIPjasJ8vfAtBtV5Ti7i/0o\ng47MdpEXD3bglpuaak5itVrD5RyvcCf05NQ1mseBHfl8OKHjwPynVCgXFSsM\nzjcLF3qiFcCIjOFJ/f4vv8iYd2HKGwZvEa9VS1GWr1fDhiDmIxuWwWkaOpXQ\nCE5jrdf3FG+eOFFMnNix7DdLjN2H4BfNrHLN/4S6Joeq1qPyLpoEFIaqcgyJ\nD+0h\r\n=xLij\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"2afcc7c90d93bac4fa9180f4fd312ed01370b2b5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.11+2afcc7c9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.11_1619730432952_0.19887797896395187","host":"s3://npm-registry-packages"}},"0.19.1-alpha.12":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.12","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6a93ead3082c21bbc4474088bdfa5c43a1097161","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.12.tgz","fileCount":87,"integrity":"sha512-VuzhEwrpfjxHrJBEcUQUdQTCsSvoxAgdt/jWct7vycm+xrLRIH5nJPnnCaAkX+f++p5tdOc2yfmlorHqmIEyow==","signatures":[{"sig":"MEQCIHp0n3FTWFWZ/zlJCWu62sBPp7X9pwuQ/ZjqN28LhBs0AiBZefVnueJ6uyuQWnLx6CKPVNDsAeo+Fx6VeDQkNFu9zQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjG1rCRA9TVsSAnZWagAAifEP/i8uMLMCxMnlrHvC2736\nxyN4vDEtPA+iwjshOvm72aSmG10ysGrDY4p6l5/wcNZ8zgef+7j9aDR6GYcR\nf78dohlkAyOpGLHlhcZMb1nj6Oniq0pW8KzsCUegboSuRZFgpyoDICDWZczE\nA1l7l3pfB0yqPbkCKU1WIAS/XWW0LJH0GxGogaCTvAHpMDNCXsHiYZ/2HIJb\nhjXfT+2sYxceV9iIY4xNq9KipKmwkWzxYFbgnUrbw6bscl7TcolOiq7cY3K8\nqv5isCEz+8jE/d6UpQ4KCKxcLH3szSOSbAM6mMFZVHL/igoMKENZg6t7DKlp\nsF8XSNtTk/UEkH1Zz7vq+u+hOul8CVqhCG5FpgVUeLNkctEyTePmDocjKvg9\nP4BSjc+DQExWW8GNVwOsBG4JhaUFovGGkEP9gYrLoVAY3oYtB3fheBEKTIc+\nwOmLs9ooMlX1scIDbeFaWAAbnKcLMyUdcr54O+kKvYtrF9aYDWoKw0DGRyZ3\ni/rav0hctEVdSB7/bESyeS9zQ7Ax7bYm6HeeZRx//NDb6xxD+tjr4soSn39f\nZp1fbRGxww5s3Pv1yCrCuA9bvEO/60ZGx24GxVh/Og2wBnsG3BisXC9R3Wy8\n5yTVl46ISE/Pefyqmwq9w2TW7bOhzPaKJe1j+b1d7JkVJ3dc1zjPhL7j97hc\nwCdk\r\n=4xD4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"25c205aaffb6707d4275be6bade3e078e50e2df3","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.12+25c205aa"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.12_1619815787170_0.4054179907946478","host":"s3://npm-registry-packages"}},"0.19.1-alpha.19":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.19","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.19","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0733b5f8f6360c66cb805f80a8f655db5fb13bfa","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.19.tgz","fileCount":81,"integrity":"sha512-28/o0dDoVo0z1hTpFJHqxQ39ivcXsfw3o+qLJP28NUicmJhHQSQFWoPjCF26Elryv+vWdYfyDAJYWyXh62996Q==","signatures":[{"sig":"MEQCIEmaZ64fNqmzrCwUztejpHq1wYcUPgZ2pKvkYX7ZmxG2AiAkvY7vzjPaCYnlSm9sd7iqhX11kqhJPne7UbeIAGlB2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglkOVCRA9TVsSAnZWagAABNwP/j5pacdYfbBt+dfiYK5z\n8tSzf/K8mhMdXeWFdTYlTgG7T6mQsSu7ARZEVYHcddHq1WTmfDwP3OWrceTe\n7UycBFo6rsypYmDDAEQdMm9W5hc92wSD5cKmgIJNyIyGvQv6OKEIgHtWmJuH\nkGilFN/h+ijFN7aLwZfcF9ZXRXCdV1bS/L7eKmp7x3X5V7+1fugxBFfRFsbQ\n5G0+3gkGs3SiVjIRSsKBcGN1RWqrF36sNSVF1XUBWlqmoFR49ftJZ9wfz8d4\njCUwjDNdNGm7U8ikO+eD492OSAZ7RUKjARIYkThl1lfAHj1KGKHKw5JWsmaj\n4ZIEDRoZwiXv+FoRGhWbT6Ar9EM9p7O+DNpYJaJk9itl3mxG5Dmzw3K1cQwl\noPSABuamFVCxrUk6GI55eLD4XBo7baiss/oIeQuk6eckleQVI+2Idbc20xSE\na/h/FgQhfU0FmciFVbzp2i+fp2TlMHTi9WbWw4pEkA169OP4bLCzq1MOcL5k\ntwJ0XwBE+bvnQ1NUhqxE4Z2Ce7x6OqHMZYLfahqjwWks71fq2olaLBneFZpw\nWihxle8uCrp+5/PwShIz6XuBYuGulCOwaT99wpQt/TZEWAeJPpnt5E4T4anN\nxY/XX2w8Tv2ZQGAdmmyRgl2dBpnOuC4HwouBq00htGDcnHJ4BXVafzq8fLK0\n7DLs\r\n=yOS1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"9ce9eea7cad32cbc57bd80830f21e4f366ecf929","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.19+9ce9eea7","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.19_1620460436727_0.6583469832123823","host":"s3://npm-registry-packages"}},"0.19.1-alpha.21":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.21","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cc276b53771273b8b4499e1fc5c8ae13dc1ddbd9","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.21.tgz","fileCount":81,"integrity":"sha512-6u7W+7ztmsj6OBxm5qA+401ntK71WtUGbtnvdhLD4Y4ctpkHmZYeO6bmwf9+W422c19P0QCBVoJ99+b1eCNwUA==","signatures":[{"sig":"MEQCIDr7FdYJ4CaE+Ye6bA4Z4ECgAylwGWvXfDszzN/9VM6UAiBl5Z8AOG1boXpnz10ObHaljfeQjyMk5nBgsa70SnyL/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmtHbCRA9TVsSAnZWagAARbYQAJnRat+Ml9wbguL3o0AD\nK9JOHt6YtzodukWbcckk615bPzJyeUvf+aFX9OhLCVlVu3GYTxiKzGqB7/wQ\n75/pAeSHnUFheF2qwSEj8YcvtPtg3CyHq/OHnBNZLXNu2hD0e6bn5ZK4DCux\nCRzhpK+LTbkFyow9LRz+98dPjcZftiubyyfzAFe7eQa+sZqGVIPvf6PdDIkO\n2oUcub3gMwDnPsz26KHUavVF86XZM9de9vgnJIjt1g8L/Tv29s7XntEeVicn\ntc70WVZPeyQFenhSZxL5GzZ9UKeO+6jk+BsevLdCHGYPGJpytQkPnnZodRkT\nmqpe7epm0XijK1DOyr3JNgzfqTwrCqKV/zIzJ/rhAE+9IBU5wsaPFpkGv1KD\nimjO2mKgn1FnLxdtzNDcEQg8Uq6gZUC8BWKEQ+pbL+QQ+aqGwttPlLy6WFLk\nNRQlRLLX9f23swVDql5baeypJEoiidM0aKJmkYtwCEshobToqVf+GKLZTaUG\nQbfYvuKWVKKgfIcyZFIxWyik2W//wv+emZR2JeoQo71crU4tdCeaFePBWae/\nisiGXdl1R619KWI9YtcNXFVaq26cGADLYnQPF/Tzb5oL4V8C3m0BeooakUY6\nfR08OL1BgjLziCBKV7OYJetgjqMXcRM4UCihn7VeNbXv8nX+VnlbKL9yvbKO\nVwTr\r\n=Itt4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"5cd02aa12e0bf08a9736f11f09ebaaad582eed27","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.21+5cd02aa1","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.21_1620759003326_0.6598899978093107","host":"s3://npm-registry-packages"}},"0.19.1-alpha.25":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.25","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.25","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8eb944ae4473165cabc06b10f2490acc9e93c6d0","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.25.tgz","fileCount":81,"integrity":"sha512-BBQ1/LIcL+mogWS0lls5g6lOLvXOi1j+vvvgAJ7lEz5cg0iWzolMU8bLilrXBoWNOL19YHswHn4GZ8GvL0EeCQ==","signatures":[{"sig":"MEQCIAughmntk2fonGIWjQ6nV0p2pj2SUFcs5Avz/cb8vxIfAiB/VjLtbO7NpsxR+vv1POEsI7rH3bwoG4mtjm8VDN7nxw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm/oPCRA9TVsSAnZWagAAJ8UP/0z3SH0x3tf34NwQK2k7\n1ROf6DQm2CdoDNYuKIOl6nPSoMLrpIt5xVEfIZZREfPMDSp+uPJ5MnjIIptI\nGFB2leqdzyvh2wbWLFh/8LtQ7LgSeAdAvRofk3yP66fTI9m+gNWl8Ajyay50\nYF5pxZ2m85+3VACDzVDW2q8sd2znYWpb59hy0pJMk5mz5JSm5S/DudGPz3kS\nrwa0gS4aC3n/PU6Vl2kdIWVnsiuOy/fPtfKxo9MAg1Qp4lxY7T1VroYrYIPa\n7hdtWgplKL3NXG+fjtYnGtI8+quQbj4PBJMNI+UmxSeK1fJqy0oTENd77v0w\n284c/UQis1Er3BZG/qceulWFeMQRG/AYujfFES4FKCmYZKaLTEM12ESNNSB1\njZuJssE8eUoItxArZsf8dHysqhz6KST8rBJPT592XMWZMLwNT9o/yPfRfbUG\nbaBgvGdCUMAYogpwRWy/mhk5l0eGw2dDMjCZZjQfXqphz2iT6Y8FETRzpX2F\nkZrOq8mVKEv3xnjJCL1FRFjg7O0cRh7GXsVEu+ZjCXb6ulmG6nCVOuZDdN7U\nnoiI0GYQkikVq6I59Hgk59Oo478nHxwJrcR1yz19a/k4hLgZ/ke/m86218aQ\nHNVY1THgllB9DmXNg6bNs1ccRpnxlAlNVSMvaDVlnqPvun37nPkaTq+d2zxm\nCya0\r\n=RXJN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"02239b52557fe5b4c5ae6eba742340428b856492","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.25+02239b52","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.25_1620834831462_0.9127695134940446","host":"s3://npm-registry-packages"}},"0.19.1-alpha.26":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.26","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.26","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"96616778238e3899b10b46ea15f5fbbfceefc864","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.26.tgz","fileCount":81,"integrity":"sha512-vd9mIoFkYXjIy2SGQNb2yVjt7KFGI1gpNuJquVR+ai4eOuNidgEfLYYZ2CGjm9QwBSFQCXmAWJN7Kxnx3tgPAQ==","signatures":[{"sig":"MEUCIQCawsMgPM1S+mynMsZWbq+mFtVCsuBWOhBR20OuC07LGQIgVnCu4VtQlriTkEjyPX1rKy7T07/LhahghD0/0YStRM4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm/0ZCRA9TVsSAnZWagAA1UsQAIijfS8D+Ywotv7YLix8\nxPQ9klVmfuuSCjiKhYR1/boTOGw8Ycf7kgzGfP2BvgbTIIE+33rIShkHlwja\nNsv3B83wgMZgxUfeQioDPBW2cFDM6RMjAcoZZ/nWpmRdiIY1k/TwPQ8szsVQ\nBe1TExkvO4P1MsHCjqGjr/ZduPHdUoXPpfrJvFzcCNPAgecK5rikQfwrKsQK\nWHYRLIBgGKtIXLWW/NgjwtJF/p9EhshrwOLS6Wpl5rRS2c7n98cIBEE2oTqa\nkDpp00zM5/wU8jwqSkq1XNdRnmV75r363CTVAB9xX+HKpjth0LcRB3E1CrIG\nPgbH89NJaAh/b0rFQ2i5GsP3QD1CyANYlKzQTq6nWw79Oo6GV2Wt3o+6/AxU\nQhC3Ja+DCVTb4voYOQirfIVkJEP54hVtpRWMekseiMHuxFjqq5YQHxFYgUk8\naq1aVDyC4uw/3J8wGHGEXyLmlgO/A/h87w7roJ4tCAbmRcR1FE1dl8YxKo1N\nzJUmu0vKP6lNHRqFxlB/6SFBqe6lMwm4GnfVjmiRDrdbD8oiDPjmxxYfTflb\nJtl+KC7LubOm9lFw0EyuemB1GkTqOzVNte+fmUQ8v0l8mAOfP6kHOT1eDtjO\nfdFQCkZDcGqjg6ZHVRtd1jteHstIo2BLTZp+Jb2IBne5IkOxyumb9dQ4A3mE\nrHS8\r\n=MTcg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"1758fa6e84333c9c43cc468c5e99dd3646f7e3c7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.26+1758fa6e","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.26_1620835608693_0.44066465167865365","host":"s3://npm-registry-packages"}},"0.19.1-alpha.31":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.31","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f48555ffc769342fea0a78ad3eacc0e249cb761b","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.31.tgz","fileCount":81,"integrity":"sha512-v7bgYevIabB6tsGY9k0SK4NVZrMZwEubNsxpxAyfvFT0EiYff9MxtA3Mg/S6xHsPEGAqEOTYrIsyZtR7KOo/Kg==","signatures":[{"sig":"MEQCICNil1+jFnu6Zl5B+f5agY2QC37YUF/vx7Q62LY/okxAAiBtkKT5CG0DliJtYOgI66A3A9bTAmRfpqoqusa2yBvuAw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpVPDCRA9TVsSAnZWagAAiLwP+gLDZL7H0BB1UdP0aV4X\nj/1Q88W7MxE0ZvVUfpSpvD1zirqG7IIWFdOmQDlDZK7BosAb4nsAUjmRYYHG\n2oRtGVmg+dKHH7qXVP7dvRSyc4fHw56YyGToYBuBupnBQmPMD6v/FPEeG6Yl\nxQXiozKRMspX/4mgiprpZgVIV4wvl/Sp+oNUlY3apLT4CiZIf/doq1p2TzX2\nL5A/iZ/WPxSMCNJrfQFkEUIGsWRnR87s0NPkhu9dqMIFGmttenw+dEKHmlWW\ngax6TJPAkKp83v1Ce2okjeyFrKqR+/bvzuNqGMVjRKcL1BDD5so5c3kcwpaj\nMVPRUFoUqaQ1/eqjy/YHJqfr6d//nxU9yKpVEsAOh2/kiHg5tdROf7VRdyfj\nFRr0lPRvvcZTwOdo8tqOz5XpN4kwkt3EBUVGvGUvuGcdXCjMROGl6K7qBfAX\nEKg+QdcqEkpiEEdxmtKWFJjBJ8FUJ4gp3aVbNmP03DZKw5qf370is87nr4zg\nz30GDghwdRjqR/v8AyEeQllNkSb6uHQ/ubcWPIsu/Cw9OfOgFQkMefYPT/SA\ndMH4HDWsQJX2e4t4Q8e6FYMoC3Msfpuf9H0jYQBljujahfBtjnQd/1kgQa0K\nnR+mZvN2ZAIwa6hFzYI0rsYBFXpxlp9JAUrSWKz5PYU/cMJVuTqdpijJWYDn\noXOI\r\n=VarG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"24adbd61062759f9d9d57420fd97e50f4d8c3b16","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.31+24adbd61","@opentelemetry/semantic-conventions":"^0.19.1-alpha.31+24adbd61"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.31_1621447619562_0.33286986831519605","host":"s3://npm-registry-packages"}},"0.19.1-alpha.33":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.33","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.33","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7124ce0014b0f267a1ff6749fe25d9ac20c9d49c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.33.tgz","fileCount":81,"integrity":"sha512-wBFkNeG4rF0TqiW8obyS6KQhBSV9fa8KDNPQNgOooI1xUffwPV6z1WgD0QBnVmAk46fevOoJXpE1yxECulHO5g==","signatures":[{"sig":"MEQCIA6HovDQCelFDKKSV2PiiDEAEGCezDIwG/PfVVVL9uJHAiBakHi/+UiF9GCFQLg9lWQ2cWqcvWBystVa80F8lD/mJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgplIYCRA9TVsSAnZWagAALNIP/1pUFqjys1LTBGm132wf\nqJaNd6OrqMhwnmovFPDX10QjWjrox6vSBQ6j8YtYgqn77Ac6lYosApU9iyJ6\nROHDvxG4JNy+8yQ0GxZvxYs+2ENjZ1KpoJYjSN5tTl+rEhzPVS+4/n+YWptw\nozuKwFkEZFHYWglcEd2l/58serQ1xaFDNWPVy9/EkzL+XiIik2vCW8U5FE7r\nngm5JEBtsV5cqEK7xDDH+pGBB8GnCh1S6jpk/G+G5TF7k2416kjNy2/HZIvN\nXI39wyfdQZ67G03U6L6wE9Lf/iI+kjITtOUq+yHNNOzHEEYD63uy1HUNmepS\nqwFL1QAtMV/BqsEVyvCHbrtpBsO9NVWhLYIJfy/lzGg7bQ0KbilFDCfVZlkQ\nQX1IGPHw+eRR0CO3jbQiBCVePU7/vmOXH/CYb8mG/b+TI2mp+CgGlW+/7TEK\nS7dWT9sAwRjubRHOyLvurSr36JP1yEg+4yAxD1DtFfgO8wZp5WqdSoSv36RP\n0ktxOmAVX8zkd/sl1j6eDyjMeWcTNRfCsVJuT4eX6m3WWUqYDbDjMaNH/s8w\ngaU7l//P7Fz6hPGA59GEcaiinXPBsdaSd0KTN/d1CdxfarceDfH+pG8Adfd9\nOw/lOwYSf8y986T8zrE3qgUDOLnFB2J57KE6/3Gy1J/ldGxPvsUlIzSWnFZL\n/SRN\r\n=NU8i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"c85fbe6682b9a8fd52e4b99bdbb079833b04e845","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.33+c85fbe66","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.33_1621512727716_0.9884474585961194","host":"s3://npm-registry-packages"}},"0.19.1-alpha.38":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.38","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.38","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b21990cc17a467f973fd00869ad7b304929f37af","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.38.tgz","fileCount":81,"integrity":"sha512-YU74lR4lqBquXy6O70iwpAPRrpy5zZ4o2dcW3C5ha964ZXn/VD80usPQyG96wAvTuBzGYqtMskGj1zZxx+Nezg==","signatures":[{"sig":"MEYCIQCYOJaGt2LGF6ZHSstvh8faFeFGgaGMTR3bLT4ffms0OAIhALbwSsYv201aDdz3DV+hXMNnPcFBOzToycxBTUcQwT4+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrmMfCRA9TVsSAnZWagAAoDYQAJRAS15v077sA00tJ1bx\no8bIP0ksn41inEdnm5c4HMQ4TRUj4gzEX5hGmsW2jCX6brVrFN3k+NCkkWn3\nTMs8JaD2HVJAfJCtoyL43yrEnbWyQ+uKt1u0XMHijvoxg5qY+Xz8/8NfVuk6\nIWrEIGhooLgSlzSLVmt8Hf5DW1lH/+OEHocElf4xTmbYi2z4EV3oZDluONjC\nNm85lCe8LuuVwbZhGmad2VFDTBJsNCdcRpsUdiV3yw4FBF/YBo/cz1iZdLn/\ne3sVzV3xgEGStAOfX36TNiX2PxmS31teDaMzPA5ALm4MhWh8l1pGlUasiB4C\nXSRdwdrJjTg/+SURk+OZhN3im1nSxMrLtMGx99QP89/ZsMeu11xcgoZdacFJ\nrk3H99utfw5XUgvhqBuuHBe6L73wyMjTxitgoSxvjs3QaYT9GYy1u/Oa0ZBb\nxHIJk6/9+/z0usL3xeR+NUfVYLuwp/YxHpR05kLembsEiCOVGecblez1m9hX\nNetlYaBPbg6fHYx1xmK6rENQmeR+tVvgk+d2fxCOVIa+uED0HgduzddjMnSg\nSVBoEu7sVD1eVgEWGEpbz6b48133AMtlASYUz8GDixFuE0j91J4MzDS5BBJ/\n+9EQE/je9pSDs5t0QKWZuT0qcUQHVBSKtobhzhOqHaMZ8iwnE9IHuGmzCT7Q\n/oTn\r\n=6ihp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"8e5c8a0965c2dc7517dd9f2084aebe56f678be89","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.38+8e5c8a09","@opentelemetry/semantic-conventions":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.38_1622041374055_0.3451194058354117","host":"s3://npm-registry-packages"}},"0.19.1-alpha.43":{"name":"@opentelemetry/resources","version":"0.19.1-alpha.43","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.19.1-alpha.43","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8b96ee959d7d2fca27d06a6800a32d079e462b21","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.19.1-alpha.43.tgz","fileCount":93,"integrity":"sha512-Gpn41FsbwkZ0+W07tmC9plyvZjh3oIAoKo0cVbwyasBysBxdNW4UDWOFtgRx9Lfy4pFhXJA9pmY56KVDwnvYWw==","signatures":[{"sig":"MEQCIDYBj0NnMchHtN0JS52+QGe14/7S4u/lZhVPDU+a6XKUAiAVG9688/xCrJ/8cfanHytazfC9lzSycVbi6YDlSAhpRQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgto53CRA9TVsSAnZWagAAcR4QAIpxNfeSGUA95b/XBCGL\nAZC3e5AW6z1qRC/PAwIVsCScVKxTn23LAotturntCNqeuXrYH4BaSuy0pGl7\n5za3KE0wRiwmCrTJpXyOlhq0Qu/en1x4mHZhJA4ReacICuM9S4HrCFNzQ4Wo\nZ1dFK1T4DO1+ccUIEdjezm9+dZvMk5SlcKzo4xCPZ+azxG9UvEXKHZh2G4T2\nBcP/EEipdmVudA/byNdjFRzX31qh9xpmBMCYDUhfU4/HOqYdnZ4B7N566Rsw\ndR4bE5TPE+wEsQGZ1hqdiVtcMBWvA4cXe8uBCxgscZB01nFJFk14QIvI8Lmu\nBbmLVYndOmtgpnVEd5xCU5qk9EHxfau0nI3byqtXeHWnDgm2pynnW1UKULht\npzEs8b5DvfjIdFFaZK61XjrfmlyAIfdDAOFV6bBqU8upe+VmQi2vzE0OG6yR\nmNssC6B0BbatJsF3jDfR9s+SjGj2PWNhpLkCS2NrtKYogLzP+X4GiqHZtZd0\n5n2ZMG2zi1GA4GQg2oSGEjM1OTH6TJJP6Oa/jNvTPSuF9cob5GBi6ftA06Ij\nn5ciP/lEipiXkkl63yeWgIkw/W/WQ+siGplPo/BLtR+C2ymWt8Wr8//WqJbo\nj1Kf8EoN1Q4qqMZ/3H+zdS//pcaYujSAUpYZOto1q098jC86t2XgfRXauNew\nz4oG\r\n=rz0/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"d5517812b31d9206131bf1df4f8a3b5183ab07fb","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.19.1-alpha.43+d5517812","@opentelemetry/semantic-conventions":"^0.19.1-alpha.43+d5517812"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.19.1-alpha.43_1622576759556_0.619810894845092","host":"s3://npm-registry-packages"}},"0.20.1-alpha.49":{"name":"@opentelemetry/resources","version":"0.20.1-alpha.49","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.20.1-alpha.49","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"685a6b5132b8b52b7aed814b5d522a5b4141f6f5","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.20.1-alpha.49.tgz","fileCount":93,"integrity":"sha512-U+pgP+C5OB30cTS6gLzTCsURRNFEMBhpVn5/0yPxYQfJIgeO76BNBKi3oHk8VqjEi89sR32cAdv2mE8i3iaYXg==","signatures":[{"sig":"MEQCIEZPGRg2OZ9oEHWERobqc1LBqIOZGjBWBpde5+ZITSF6AiBqlS+8mTPNKak4vb3HOPepzPVt6PISWj4McmE4YBJOxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguQzhCRA9TVsSAnZWagAAmvQP/0+vwMxvZh9+8zXV5W1Y\nMXitJyqCER7ZMX2XqTWkCRCcCFa2mzLYNuS8viixx8SHq7o43b3Znw0Po2m8\nNSXJFCiYTG9zBJZV1aGG1O/MEOR9y/aF/+SK4OKJ9Ji0hLY2GuMWy/o2saG2\nxUo2BG3pJHth2wY/N+JvXngw2zBYH2SxoyUr0YoOgRKyxCEnMAr3tfylwmvY\ngX6DZ1RBlvnNrBNEG8Rh4Mu9ZVgyqT0tv7HO6LDceb5Tr5p2hhU5Ll4B3sYR\nKAhSCbJoaNvPvb0XUZ5NLrQdt8iUw+pi5fy2Qm9lobvvT9CazOKnZk+bOnjo\nzMmALWZy9TScrCWfTdGMLjYFKKn7Kj3BUH9YNv9dgoqF3xHvD0T07qO8H0X9\nn747Zgga6DWkd0z8U93Q1Cl0RkI/iEAxlsjmGab4lY0C2NZtUHjx3Gppr/Ve\n6uaIUBhwo1KlMK7cADlUkMoP68kkBCnckfYrPAqfLRcog5MEHgowyie+euKw\nuXK5S2UghmLyQFGjO6RC9tqmvMB2oD4QBLNIoyTKYNcJKd9brwpRWgUIlNO0\njrr7bylTDftcUzWLKLjlPhzj0AjCH0g4jMWzEPvquEekIx+JGg3LIrScsS+x\nzRbFYiyNy2pX2AteKWgA3IFdfsVHt/JwfwosVqhaeG9mOeOXsRsfSbQQHwYy\nXvWf\r\n=UW5j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f79aef422b53f1314cb0b031651875658fc17008","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.20.1-alpha.49+f79aef42","@opentelemetry/semantic-conventions":"^0.20.1-alpha.49+f79aef42"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.20.1-alpha.49_1622740193577_0.21777307160266046","host":"s3://npm-registry-packages"}},"0.20.0":{"name":"@opentelemetry/resources","version":"0.20.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.20.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"038d985c610600cde146ee1e95b6a124f3ad4754","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.20.0.tgz","fileCount":93,"integrity":"sha512-nnd3vIM+A9ih6kOVBc2CF5NkTYmdNci5aQ+A5lQjf3HqjEptcGubpg1J1Q84LSFVoITvuH2O6+GhPBrdxYBt8g==","signatures":[{"sig":"MEUCIQCb21tqC6fu860KwSe3vAIjFK1v3qHBySa1UgtQML5v4QIgUQE79C2HtFSBO08QrKTs4somb44oR10uO2tTveX9SeA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguR9SCRA9TVsSAnZWagAA0XsP/1w4cytHgHP3azd7g8Lz\npMbUldkhgHlV9iNnXyIGuLPmLKjfg7B2wUXhCub0lIMFJCVDYJAWIl4N13Mh\nsY67CfGYaaYo7XN4SfvdPu9h4OUR5C3yg0Uh8nwv3PvxAVQqgGz/hcjyiZ9v\njQOcMwmATlTXImKm736Y2MGQD5zFPYUorEno1ViYiLrBGWrpFFdwfw3+1lA/\nXqxHfDTyOTAK3CgK+izz9P/cImdt0tOkxR9AIP1F5+UtuIMaXFl9MI+Oy8hz\nAEKMBLcZH6u9ZzOdGO9pTW62clKSoIRJj3CzfGQUZnOhTmyBRh9+VeXcb9ik\nVyLJ8NGZf+IdaaviCeoohwLIN4oH9PGWIxIJyqXyle3fIoYgTFlwTY7dr0Nr\nc8e3v4lpthxWfPvt70vxXWh6+I9/A7Na0xnW4IfiR46RhBeV8li10gbWDiCO\n7W+F339dWAhtLBoSu66Obqax+C7wWLyH0QoOnqabpqp0XS4/BPYyJ4t5Rxi0\naIxfCI/R8OmCcWD0k4lHibYqSdf2psEgybnu95k3QsfZX5o6i9DR5vO6ZlFQ\nhtC3pFl9joWxWE85GdGB+v9DSJT2Z0nI2iK2Xa/E1i982nTGL3clsaZ6zir7\npuW7t/4nCJaiKlGn4rt40axQ1ikY7S6xGBq916RoLnIWqdNXzJcdh4Npw0KP\nikJl\r\n=wRS0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f79aef422b53f1314cb0b031651875658fc17008","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"0.20.0","@opentelemetry/semantic-conventions":"0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.20.0_1622744914395_0.9380637341423352","host":"s3://npm-registry-packages"}},"0.20.1-alpha.3":{"name":"@opentelemetry/resources","version":"0.20.1-alpha.3","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.20.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"283175622a8b2016d45c968ed69be9702f209a0a","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.20.1-alpha.3.tgz","fileCount":93,"integrity":"sha512-9TVUEQK5ibZZTQ9L2wkuW9SBoWe+bh7Om9sfSFJNlKx/vccOLSKLJYki1gGKbuDH/noMcIA9Z1yK9nHixAI6Qw==","signatures":[{"sig":"MEUCIQCVAnRvYi1A/uC7qOs8yvomfsFepaw1+KF3sg+74y+YMgIgWSqiueAEebmGVFxMkmQ3frFARt0TQUi3hCkJGnBZ5yI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguzXMCRA9TVsSAnZWagAANPQP/0N4nDorANC1fZsfZ+57\nioBVWh5lbjSh6x0Mj1OI+APIbgmW3mWJ6xMOSxjTt2CV0vDkH7vYmeRRvQMr\nj4IyzNG3YnQmSM4NxrkK75fpLVk74NOGO7Ks0MPxGs5S8jIXNXuU605QsJl/\nibpgfu01dzUjQul5X21XSCPMe5cVrSPA2QcIkIl5hmjB/E+Q85S00IujYDDo\nC27qIrUCy158ramXbXP+OoxXAjyNsTsAjp3VSCwlX74CAy+Hp/bwAVyN/NYq\nJeT6NUlyhztK08wmxpiMS56ZE9EY+QKeeW+IghN47UJtghp62Qoih/c0xf1q\ntP0+8qWR69xY9njcDE/7LxZZWklsORQBtKcF/VbJY6bKSPsE5u4Kmdb7WwiQ\nt1FSt8tal7KDsYEHdt9T6nDMUm4qiuD1x/iyKvARq3lw0vk/ObgnltoH0JHP\ndD9tHy87oQkaCFMyKqrvNYwIew9pBma/301KQb06girR3yUC9bY1kxkqiOMO\nlH81oWDB4FLu/aNAsNd8k2clctEqH0NdcQpjqUXYNzXhfr6lewyqmn9VXNZa\nBK9eB1bQtjeagPDd/XMDn/0r+G/svKuw4FRT2elxjNBiTKSC6kvrES182k46\ntoKnARsCZfDQ3nzH5Ju+gj4EO7Bo7oLvWE8aLe4ow1dyzVpBRpIStDBEZYux\nO5Tl\r\n=8f0u\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"d4df2f7ebaaaf433bd84b568c482e2788103ab71","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.20.1-alpha.3+d4df2f7e","@opentelemetry/semantic-conventions":"^0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.21.0"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.20.1-alpha.3_1622881739853_0.5116257365417047","host":"s3://npm-registry-packages"}},"0.20.1-alpha.4":{"name":"@opentelemetry/resources","version":"0.20.1-alpha.4","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.20.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"54dfe98d004176bd5d70291eb09eb36f5c69dcb4","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.20.1-alpha.4.tgz","fileCount":93,"integrity":"sha512-YO/CnJLk+iPgdR43PyvhVbcUTq1hh12HCVh9SuU5zXmUHTZMvajZbgBJCehfUowtnRac8N8hMItFqOmpVrif5g==","signatures":[{"sig":"MEUCIQCJWfoDUlHj8MKq3nmFvdBb23veaKE9cHNWVVHB112+wgIgdLycWAlLHAKRZZm6rdFBRjpbXcatXPPHMJpHsLngOKY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv3BaCRA9TVsSAnZWagAAUuoP/1SFGqhXDV8kVUgnuxRn\nH3RLL5B0iaAuCoWLlqWWYrfqgAy3JB6LFCFc34hIZBOLHlrOJYH+aOPJN3Dp\nst8NQ6xdIFmgUl5/0vxGYV8xwhLjCsC1KL0Jy5Mgub33T7eT8RsVvE/eRJPe\nXkNNW9Po3TPgF3d/i0klh5t9UN8n4ZBv2tPB9MNqUKDQnAD2RbDJenTAF4mN\n2WsN6nrJpxwTaXh562bGPcMgUUNY6mmE0WibaIqDMmRFgp985YqrAxlg/L81\nNPUFOgY3kPLwmDWOEXpYYkafx8rxomOxHj78zHHa0lQ02gypFf0EW8kq27uh\n1xdNxstAB2aM5n+pZiNldAfo0Rw6GOydXmckWyFPHFlHdxdrVDxLEYH0nfE5\nAPwAFqhCNFHjEDF72JEoCg7M5QYYsnYxbFBSzlFDiSvFCgBgjOhk7QbdgLU3\nrfF0ap8z9WMi0lcRnrSU8u4jGNg6oCr7AKrGPLzPPMPLQAunqTCFs6vd1N0D\nkahLz6nho9opCRpTBj7CaMLJN7lSVLz8Jf585se/9WVunWCXf3NRvOl/Xg2E\nlTLr7C9xPBLnd+bEbbs4eMs4dPzbaxZw9w/AsWr71HWPB197CyZYlCS+cV5i\nBFIBVn6ennniqEXNl1xijaGoa4UH8BM+/+gycOWIuQf/m1bHGsb+ULyLL1eC\n9lVz\r\n=4k+8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3d98420cf530968e6a85bc4b9c2b1bb78b730b3c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.20.1-alpha.4+3d98420c","@opentelemetry/semantic-conventions":"^0.20.1-alpha.4+3d98420c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.21.0"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.20.1-alpha.4_1623158874209_0.6398461186550102","host":"s3://npm-registry-packages"}},"0.21.1-alpha.7":{"name":"@opentelemetry/resources","version":"0.21.1-alpha.7","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.21.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ff188e8273f81b420ba596c7efbbb56881a79ddf","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.21.1-alpha.7.tgz","fileCount":93,"integrity":"sha512-zPbolRRtx2EB8DQmB8UXMomA0M59V8GFeJ+s5OVYtHwq/8N3C9e4+AIrxv1Fjeafbk5W8XJTnUCXNrL89Dn+Lw==","signatures":[{"sig":"MEUCIEoVPFg1gbLDx0R/Mca3OjDepF2sn7lVa0WLlMiLzji3AiEA2FP/jif0xQTCOeXoyxSqA2ucqZBzZVgSQrOKVsbIdvQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwkswCRA9TVsSAnZWagAARAoQAIVmKjdplwSMrHiiA115\nqN7XRtX+XTAUACwOLx8o3bFQr5t4Bl0rK7CKeGzJhXZgfIh7DnlMhH0d5hKB\nx288YkZ7TO50WTBDhf9qbFC85lkBZB07sPr4xFmvWSEQjkMWbV2Vz7nkVZ/W\n/GGzIngHsC81EqO4lxYj6ukLjNKW8gGLVsrwd6m5Mnf65FwlSNzqQLaOej6o\nH3zJLDVz4toE2g1scRTea0bWm/a2fBdFOALXdyoQuHKAAuCXoTT0poJ0fiXY\n4BAhfQQW2MQewkNApLbIrIgGMaUp38NXpGRXWxnefhNExj+Ak0vCb6cRFGBP\nkNny1I8ulnlUrKzMOwMjUurAnuCSOtg38AVjnqoykHbD4fV3eB4bgx+Rlnaz\nzQIKOQ2lrly+7gz6W0cf+78HrBEK2xtaz0O+SbzktBDPfLdhULs+7VS7Tgom\ntVjeUfARDubaoGvy1z3ra6dVe4GWLsqd5Ce4/GZLaXL6lk+ja6YdVJDBtScd\ng6Gvn67DTNH3dcYyGjvh7jBlDMoEpAZ28Hn/Dn7qsWZQRlTUy/2tQWf9ue/x\nxFtw4E2lvOeTDiy+eAAtn4AJ+E4n6CYHDUknxTLkvNkXhsa/DMGh2C/EHxUw\n41okT7QCUjr9RsLHp2TXDapPS6Q6WcqfXrKRpa/USYM6rmOdKYW7awFjDSNy\nwJF3\r\n=ah9e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"7750282034ee58bdd257446c2970f01307d7522a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.21.1-alpha.7+77502820","@opentelemetry/semantic-conventions":"^0.21.1-alpha.7+77502820"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.21.0"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.21.1-alpha.7_1623345968095_0.9738230477407426","host":"s3://npm-registry-packages"}},"0.21.0":{"name":"@opentelemetry/resources","version":"0.21.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.21.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1b5fdd20d31bb0acc1104a689a3152d0d7335ad6","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.21.0.tgz","fileCount":93,"integrity":"sha512-xQUL2/2npP/isH8sbOSdynIRWmlM6p02L9Ex8x/BhUuSkGrMoxO2ezLPPYnfYam1py6ubaz8m1C54O2IRCmgQQ==","signatures":[{"sig":"MEYCIQDBkocSWFA1XgmNDl6rWtRYknQKQcAOkE824g+rCO3LNAIhAPxfsgcIX/XMFaR49OzF93qlyzoLkHe7ZXb9CldFeXFi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwlocCRA9TVsSAnZWagAA9uYP/0H5IX9SpycZVdObJ0ju\nIOnIAtMWgn+mAzgIBtU+8AfZAVRR9qWsWiG8Ml7ahpMMVygM0ww43gjo40P/\nZM9F+lbw+ntKSn39E03o/uohI/a6uQWSE3RWondg9yoUMrl24LA8acbZFt4t\nBEiSkvwlNZDMXrJa7ikjnY4GDiebFILy891g6a2U5je9/Or0wXxE0vJSfrlZ\nRXyXk2AuEcx8jJ9O/y6lrPMDmecyGk1NDs9j63AMSPcZ1u7EA83HvxV+pMlB\n9rSzVaCIJIXUKUlIfUNheIAo94vt9ceu9oyKfl2i1TqjBm0JYP+980RgSOIq\ndCJZ35c0GkFeJNhOrEyTZuot6x3vu/WHG4jXRgYh4spyTNu1ViwwGjwSm2dj\nsUMGYlcW38fbK6d9+c1EugeQVgbU3dLZ+oHHjhF3s/MFHjabg2RjTXTIqE1m\nwZeqZv9FTcfE6MmLfvYqDkCgPxpEc+FI78v52GTKuaqcWBrKCuvsHhxKclq/\n73t8rCaDai98GCiljwBQrGmmEMqxMoxlra9U/FdZh8Sf4YKZoALO8JAsYr+b\nVuwdKEK+37Po7ECeGXX07m70OPQh6SU/uxdBd/HOPd9eOxZ/Otj1uxO4Ulp2\nVFH52CaTMERtEtVv83hFALTXiMgCXYGHqarrOTC+gP0eV1dyQPXMaWe4lg2X\nDriP\r\n=qCiM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"7750282034ee58bdd257446c2970f01307d7522a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"0.21.0","@opentelemetry/semantic-conventions":"0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.21.0"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.21.0_1623349788600_0.14299741062600813","host":"s3://npm-registry-packages"}},"0.21.1-alpha.1":{"name":"@opentelemetry/resources","version":"0.21.1-alpha.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.21.1-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"18ec2f2051460c42cbc7bf9c2090061053f692fe","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.21.1-alpha.1.tgz","fileCount":93,"integrity":"sha512-tDGystnIQUf2gK2UykEn6aruMskO1VA0Y+Rwhi0cuaJBdWpCL/innBrVhIsQDnCs1lQV7puUrFkOzEWFd0F8BA==","signatures":[{"sig":"MEUCIQCzV+B/sjWwP5gDM0qdKN6tZ+RJ/ihI5imY4wCQkteB7gIgRG4PJUhWxeq2qoOLWAxX1aKE1499MvUhVAR87KfW0Xw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106134,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxG9BCRA9TVsSAnZWagAAUTUP/3ou6SRygRsupCa5bTYZ\nbyotv1tPW3DMHVoC0elebXMPrc7+JJ+YTC2X+mZbumOzL31xuMvRkajS5HSM\n7Uqkiq9iVvkjC6ySkeY3oSuVLauPZlovS0PWTPTP5CsmN4AhoR8w+L8sKMIJ\n+2YySkzzBShgYmoc5L7BVpAQgUQ9HpicqyNzZD3Ugmsz1Zhv71pMIFfWsRCI\nx5eAUKOonRppiIdo8gYZlfWACMkVf4jBJyPJnJMwTidwEoOks5HBxd1bjuMu\nXBOayE/q8/QlHMtEM5nDInG00Ny7jS7jRvz99g7GnvzX8PIm9rG171r8HXgh\nLD2VHCvb+nXtWzGPm6c+OnTm5aIJXXwXGOn7n9xunLIOK5JQFvm7UICLRUoI\ncZPWrW+LEPGuBNib4Bm87aPn1jkaaYallgtAIWbSOHbLFtqdRmYOWU4Ep1EX\nYtNW9iHTvM8MztTpfBwhYDmJOGT+P0OPxV3ggGBNMDSjlu6nNJnSlx3zQZ7M\n1XsOoL91btMq2DrWMy17mYLtlZ3OSdHgwEfErFe/cEfWEe+qDtvTbTlOMPeS\nqU3zALPPZ6KHCje5NDJkP0QnVrj0+WzlpPwv1le3WYMdH+T6FR+sPDjFqqzL\nA4fnBITS1iUCBY8EAmg1VO4JbO/4TIBlPbRsYztu6yPStTNatTJ6lFw+1INp\nQxRl\r\n=F0Q2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"5b6573eeff537ab49d8d8d42217e5cc794f9ad70","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.21.1-alpha.1+5b6573ee","@opentelemetry/semantic-conventions":"^0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.21.1-alpha.1_1623486272893_0.18192027618272144","host":"s3://npm-registry-packages"}},"0.21.1-alpha.2":{"name":"@opentelemetry/resources","version":"0.21.1-alpha.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.21.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"13f20e084083bbb0a85a7e97c1004745548f021d","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.21.1-alpha.2.tgz","fileCount":93,"integrity":"sha512-Kwuk4qlqAv1USCQ5LNgLRLEmUpuHOuMCXB0YEL/iofYKv+8yF3voepsE/G2QfrhO949+lcZOHdajOrF5LBEE2Q==","signatures":[{"sig":"MEUCIBfZ7//cBGf8dtn42K+7DlSfRPBn69UtoT/+9/nMaPQyAiEAxLH1QXFcngKNFSuFW0TxJxrUqaTcZaC8ZIjr5nKvOB0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxHHECRA9TVsSAnZWagAAsokQAKUX5jFtpG3QW+sFtKiz\nQWmbAxkpV66rFpx0zKNvgmgJ7iViXI7hTGmAKKBeX06CK+NCOMT5Ti2Ch5xq\ntiLpPE/MsknJ6/5AzGn9Zv+OGYDOpgCNmsSQUsCPGKHJM8rkn3u7r7ZD4Rqd\nb/jex/rTJmmCBv0Rrt0wYERkOyoDpSBjq1m4MsgszB3JqBU5Iq9yxLA31bs7\nbBqDBc24s+SFyA1f4qn1jgQSeu3uhJH7uGdnUG+X9nT36QiKgqc9sVBgNMR+\nbCqsZPtRLitwAT7hx4agSh0wpkrPssWmpDfiQ0SOReeoMTh4XkO8sx6F/gzc\ntXkjcG1J7vgMgkbCveGZWtCVRgJotTU8lodwTRTR9aljf21txWkHtGDwvM29\nLebWtW/IgXgtNatVHDxHq3XIbiq07mot+MijBOB4awSzMk110KJRmCCMRKn6\n2loHrZevcfFoXAidhl7PNmrpYayw/o/cLgUSq6oexVdu83f6WKhMbqO6r3M8\n+xNaHiUASaYkVzJXjNHLneAv6oPA04BKeBUOjwRyEWfNlFGRj2E+1tpPRmsY\nQ9xZOTSZm0Tz+mz2+D1JhEoNEtcBKyp+y8a4KHOWgm5H30wOFWM9qPkYzXun\nOnIawjPPYFxtzi60YcLtqxZqmbD2Fli0JdyJ6YfmBAalxQaeJrumKMzSUD5P\nB4aH\r\n=w3Hg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a3b77387012a5f53c193efdefcbf5f6272876e4d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.21.1-alpha.2+a3b77387","@opentelemetry/semantic-conventions":"^0.21.1-alpha.2+a3b77387"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.21.1-alpha.2_1623486916842_0.8101785609300947","host":"s3://npm-registry-packages"}},"0.22.1-alpha.5":{"name":"@opentelemetry/resources","version":"0.22.1-alpha.5","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.22.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9528eeb5876adb3b017828c23bd81fc09a30d61e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.22.1-alpha.5.tgz","fileCount":93,"integrity":"sha512-vMpRRhKw6NJIdqTFHM9yiY1bopsjoDkIVRpP/pkn1ULOyQg+4o+0bKDtGccrS7lT+blgd6RQICA9xtYWCJIUlw==","signatures":[{"sig":"MEQCICNAUgnFW+U/k9nj9wOFafP6RAOUr0D7wxsKLGtyy4ElAiBTl1813KKfMomihnDuLFK35/VKSeOozsCHTwPNuIHYcQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy4DLCRA9TVsSAnZWagAAWJ4P/1sc32lMqKbXrSbVE37H\nL3jwEYgP0+ztK6Oll0GIiMTvipMSoOcU10yFPAp8bK+k2mSCO413ZaqvCYlg\nMxB1+ltZoYpG0B56Rn4mv7rFnmRuOpojz7pPvz6nQUW2LocwA2N9Wqak75T1\nnZZ/A3O/YEsvIsRvqo04om1GsxoWybMj8ekG+JkyyW/r4aEjDl3WlhyW5eIs\n9hDr4pApBZe4bAAoUbHpDAlksTphKZZWNLbU3+HIu79Z6fSlDysj+AsPTvH2\nHrawBGW8OX8HZJJ2c6kN+ZjNXFlu10o36cUL/GDowx550tCzQyzesodYZ5NP\nGFqYJ4mYUREbA2UwikGcx5wsXI2pZnZM1Wprr9mhmpeO57qEmKjd3WqzRt0h\nHj/1mNXRJICLIY9w+KYJkSOgLVYfOIJEDYDuQbWCIglQgovvtcKPaYv6j6aC\nEVimp6H//TYZh8DomWLTx0HCEcy5fklpzCiMllgICY3vMbRu2pQBLzQaCl0T\n1bbZjpdT5fjco4xnT+ACH1cw/UfHvQJOg5swgt6wmPtzJ5TQdrB1Kf5pDAPm\n3pukEjgXRf9lbsEsg7LbztQlisWc9fsmJNFYlINnN6Y4DzEEfxGHdVoCSkhl\nMbwtENRGz1v3sYDP1ZWHY12hH7fhIk3nkzS13CTeDOqsDpydnrD521CHmIWX\nX4ra\r\n=zMxr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"7860344eca83449170bafd03fd288e1a3deebacf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.22.1-alpha.5+7860344e","@opentelemetry/semantic-conventions":"^0.22.1-alpha.5+7860344e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.22.1-alpha.5_1623949514563_0.687422632983677","host":"s3://npm-registry-packages"}},"0.22.0":{"name":"@opentelemetry/resources","version":"0.22.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.22.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a6be8fb80dfe978b90464d8a30d6ea285a6551ca","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.22.0.tgz","fileCount":93,"integrity":"sha512-LiX6/JyuD2eHi7Ewrq/PUP79azDqshd0r2oksNTJ+VwgbGfMlq79ykd4FhiEEk23fFbajGt+9ginadXoRk17dg==","signatures":[{"sig":"MEUCIQCVL8j10TlXLRR3Dzs87deWaTvAXOfJLpepZmQKK2nGbQIgAgzc0SyZfy707Wqb8zzMG3Zk4LGuQOP6VETdxZxatms=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106098,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy41OCRA9TVsSAnZWagAA4jsP/0EfeO8MOhoX/zz/OgOY\nMS6tXxvAtDGZ1QDFc/xm5MVWiuyGtwvCm7+nm4aTT6bkls87RUJnxpgiOdVN\nrowLac0XvGpnUm9QN3WffN3xhPTKH+SIhV5VD11eFEUwhB/9cQJ/OI0rGXtX\nifNsI7+NsSdzZoiE06jVLx/GAmw2hchFtky3ZZZgpz5esOzbM5sWMcSU4TWg\nzCDT43TKXJ5hIEvcmRsRTRcVY/KNqT57Uxk5vjbGP26EeK7mktRQdz9cjgyJ\ngSKjjtsRLOpGJZXA1mr8NhfKjiQqesEGm9+1gbwQ8oS+7eJCcxvN62eTfZtc\nXkHSDxqpxmrMyt4DwdxAvPDgEpiTEs4L+Q/xh18aogfGXCbMpTvIlBZf+D7E\n71kRIPxsh22LtLPduURZwhg+p3FP4ojA4sfpYXQHM0ZOF9EYz+/KSbj8O1DZ\noNQsQbs3R8n7doXa3ehIyf2r9aZCzduNSdKTunvRRtmghY8PTNUnTuxgsilb\nO2Fkd4tvUu/KoTFe87qei0tEEyY8g3+ph+mLhwICwc+6O2PhwroxEsAKqPY6\nSi37L9S6mJLSX+Q2TQAkOfBRki77sj6UOwwebw11mGOXxiL5GORXDFyAmbGt\nfcAaI3pgQNwpOYxj3ML4mb+KwIyl9r7uqnjNYezKpA3otPIK5IhQ1AXeRM+l\n2ScI\r\n=kWuH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"7860344eca83449170bafd03fd288e1a3deebacf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"0.22.0","@opentelemetry/semantic-conventions":"0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.22.0_1623952717378_0.8822043278723382","host":"s3://npm-registry-packages"}},"0.22.1-alpha.2":{"name":"@opentelemetry/resources","version":"0.22.1-alpha.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.22.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b4a20de9116ef6cc30d24a73f8cdc846398b61f9","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.22.1-alpha.2.tgz","fileCount":93,"integrity":"sha512-RyFJsE/9Kguln4bVmr3l8JmatLo3CVcFTH18oMTtqwZvLMqEaLHf4qh4dpEc/l+fl/RlivjyEjRC4I/er8wvSw==","signatures":[{"sig":"MEQCIBCTW3UAdhBT0PJipWXLrncAbet39KqXY0qizEcNLrlIAiB71e71qGyvWCI50icIDyfS9+4Mc8B0XLKX4eztMcEaOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg01fpCRA9TVsSAnZWagAA9ecP/0kpYlBMThCqSh8vE8ru\nxKPrjmakjH4yEAogA9CW/lGXhEinrFVAKZrKn/CGficRVl+XzkWeHYv2UuVU\nVIfAAkRP7WAQi3Am7zpEy+qsK/mJL41nyfC2eDbKgxAkw/YUWr12LlaFa1yi\nhs1nHEJk0KVJBuhKYyBUzltplfio3k6Wzw9OjjEmWic+HMDWhGRGJV0XcnYG\nLz2skd/X+de9c8Q6TQUhVPjKRs6gj3r5L0CjpO+jU7lEkaFP/5y2rF0cn0CO\n5zBfq/SmyZtfptKHTf5BHvBMQKr6s30lgzh4sXI1j4hmJZy9UKfsbLKGYX2Z\nkpgAsUOgWRmz6ym3K67V4AaCs6KkGZsowP7tPr9SrS93rWNJ226TuNPf+zkJ\n8wPOWSCJhEcT0ILJn+3yg81ZoMyhQX7n8qAtxBT1p+sP6mzIzWk+k3ghtw/A\nLZqtBsfIQ0SvrGJfbkhAGPKrgGOBpd09YNIbq1K9/qf3cIpcUHXUtOyo4RKP\n6qdKe7NSgGOOZQZ/p/vW+DFJE8aEZBp1Fd1G2ibczlt4zXfNK26gCD5X0Gvx\nEIQ3sD9cAErJDK1S7DDJfr91Ah+tqkMv5bHOTP/QGc/qFS0gJ0ipzKGAks86\nRYk031gbUijTar6JBg4D4MsjFrV6PQR8d27m4rFfvDSosJYyaWuczb1waaYK\npsvs\r\n=CY3s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"bd2a005229ea7a0a64ca0ac7c2206ee40d19bfce","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.22.0","@opentelemetry/semantic-conventions":"^0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.22.1-alpha.2_1624463336561_0.5136039350924908","host":"s3://npm-registry-packages"}},"0.22.1-alpha.3":{"name":"@opentelemetry/resources","version":"0.22.1-alpha.3","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.22.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3273ee4b9721c5d7bb5e97726c892b31fdda7b51","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.22.1-alpha.3.tgz","fileCount":93,"integrity":"sha512-yNcEhEJCLe3qmxuGpDmM9vZoiKfC0XpjCPqZU6bRlGKFAgD7PG1d1Kq5IAXJen35YDRSSpeaanRQ451RL+bkxg==","signatures":[{"sig":"MEUCIAJQSgoQCGlIfUm0ZNH3SZqsx7YQATdZZh73fp7Ytc8GAiEA3U06gHO6bvQozwjBcIOWC/cmu0TEbP8dki5Ja9bECOw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg01uqCRA9TVsSAnZWagAAR1QP/j4CXb3E9S2fRE0sGRMC\nQteNWc8FqgLS/vZq4QsLGN8d3+LKg+OBG7qij4nUse0nDncS9+agKlNIIj14\nf/6hnwnqB8/nI/THYXBXUlLcchm5TlR46fJdapeXbzjcBLuAy5ehSlSWGdPr\nlqtQemb757e67bEk9Hk9smxD66HGyi+1mdxKspguoQChijR1990Yqab19/Bw\nxo1iA6swNG539YGqLmTnQgrfBkhC2D1FXP5haA4Ox59w7+e8QVrFFAvxDCE2\nyoGikf10cxVYKYz+g7fT3IUCVcwZEJxVivOl8VuJ0ubEoqdEgZeDHNQrGwHO\nsXz5Gkp5MPZQqaK0aYvOckXHsq+SvUnQDl9sjGQ7SzAlVDyFb9Z3XMuqG7qZ\nX4zdiCgtE13DqBtgPgvrmlJl3MWAh4NbfFJiATKn4190nmC3j7+NyVjXj9iD\ncGh+Rmqt7uicC7Z80wPhFeucRZDRcP3oGw1VAIWc/LQVJVjVut0BKnxWmWqY\nDbltguC6rDvRCakwLVObYQvQa1KnDVjc7wE0hoATBdgwYM8jYBa34gMBwBn/\na//BBBf25mDovh/xxxNHSDJJZpMkA2YU6kN2jBHUZPfEG4YnAIMqc0IqAr4V\nw6wiNI2fWSllSmyX/TpuAty1qXHVRfPr0wsWAAJpoiZxfPvH0FsQdgRnNB0F\nDxJV\r\n=X36q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"6fb4fd1712babdbb5de216c26e1283a94f7159ea","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@opentelemetry/core":"^0.22.1-alpha.3+6fb4fd17","@opentelemetry/semantic-conventions":"^0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.22.1-alpha.3_1624464297950_0.6416147816836677","host":"s3://npm-registry-packages"}},"0.22.1-alpha.13":{"name":"@opentelemetry/resources","version":"0.22.1-alpha.13","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.22.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fb937dc3cbec19f75c113d6991d9f0f69ee72f7e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.22.1-alpha.13.tgz","fileCount":93,"integrity":"sha512-RY/obL5OEL1kQ/tc3jwRDBJhlAkoWb9DhG24u66D1vO489tFp1PlHQQFrMSW7r4d6CtJ1/hXC1/FJxgYWdjbjw==","signatures":[{"sig":"MEYCIQCU0a5kzzw7Htwje0W3dZIpHXgQizKaUZh4k5mG9o134wIhAO+9nZLh6QsTjwFw09D0ykZ1xlveo7bSBvVOdPc26ApL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3LqkCRA9TVsSAnZWagAApdoP+gNYOgJ2Nwcwk0yC9UOQ\nKpI18d00ypaVYFIN5ZC6ze+1WjhjOEWLTO436kYLfGuk/rJ97bSckdWWoCAG\nG6zXB3LV2OPtkA7c0XG0mkME31y9ux0BDASsm402imMUvaSp3BElWN1wK+st\nN7qtY74DiJFl1OdEyr3lNBlKXrGGGyTjgCQrScIOEmTkK95D1w5bURFpbn5w\n+8A6IL4d29igFBW2GfVPvw4ARtlIhrNcBz7V8WX8YIYxTqEHhyT5rkECfoGv\nMlcEfDS+ebtMUX85VllQ02YsGF085SVrksYt02Ey8Q7xjTFWAdHGW5irE3r9\nqSZJc3rGocvhjBioZIr3e486MwGpaS63Orn5e8SIvmFy+zTWUxktMWGVQtVj\nXoZ/MPcGoPi14jQuZKToPQvJQREurwoBuviSsCU7/f9Mq7cgo83TE4WVnejR\nzdk7yrqVY4K3Ag885F9fEEhBs5pSKrxZfXn2CD2yFg+krrqq++Lzbh9maHH3\nh+9xelig7cgrLOvux3zC32e8vMgTdmorYVMtHxUqY0myzqwwrcMCR2r+q/rx\n7e4A1WC0tGkXFW5yh4dHzep5Ry2+o1bP4n03/CSNz1AZkGh204icX0ZNvAmo\n7chhi983MaU7/hpnT67AJXF4Sxg7JAgC6JsKVlZatLyQMYBQYvvXLk5IB3PU\nvTpU\r\n=AMza\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"01418978e5cc15b5ec4d5283ec48910799fe2f06","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@opentelemetry/core":"^0.22.1-alpha.13+01418978","@opentelemetry/semantic-conventions":"^0.22.1-alpha.13+01418978"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.22.1-alpha.13_1625078435804_0.5905391832955602","host":"s3://npm-registry-packages"}},"0.22.1-alpha.15":{"name":"@opentelemetry/resources","version":"0.22.1-alpha.15","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.22.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fce546242a1975ef286d0a9de519214508d96bf8","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.22.1-alpha.15.tgz","fileCount":93,"integrity":"sha512-jX+qD4pGTLBrc1mnaut7CsgC+20p5AG2QUljopLf1tLYGep23kjQimXIC9Qp3RlGGpFmTcmg3n2xV6rxQEOiNA==","signatures":[{"sig":"MEYCIQDCg+OYklll5LVD32LieH6Yu37rn41CsRcBERdUJR4qvgIhAJZdpX3Mj3B0/cHXY75/OyCW6IGz0B1yK4TM+wpAR2J/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3ME/CRA9TVsSAnZWagAAUXkP/2Ao67Qj1jzqS3+ItsEu\n0sYAX20cYJcV61KyiEqx/LKGUZbysv+Sma9gUc559pqGx7NuLXm5MDQF51og\nsFs+tcBjDF4J9yRMWfqzCu11ZwFAzS1jZ1HQIvHZpKCski7b+cY5iQNuVxWN\nQ9w+FNsNF2ThNW7o6gZOD6lsShaBXkG5A7kjYt0qcBV/x3M+ydst3n6jcTYz\n3/5jWvyh+0zNcH+hZ1eh5dXrwE024xNG9lzC860LT7Vlfg5ZiyF+O+Zr/cBZ\nTBFmc7fOe7AxUBZ2itP4FWsxWa+yOk8uT8RFp94eN/XbHKYqKomyEXONOMMh\nUPeV2zSMBL7AnL1k5p5tUSV4nD9aaLx3VKVC3hBbX/i0dFbJYYcQQWtuV9B1\npj9vw874OQEwC0w/JIbSVR7EAdCuW45V3dajabnPdysFuf0LMe2hOSBWmSVX\nVMTM+fcy4KaKI/9E3Fd4Q/CuAch957gon9LuZUBK9OzqwDQ5HZigfsnsKFjk\nqAsRdqZ98siT1flehPSNwhSEGMqeC7Il63cRsyijtYj0+gEvr8ndR6OjUyjR\nUeIerkZtm2AbUtA2dcFs+G/FPA9UPQV6AWKkujEv5n0TcOimdtrLWWTcwUsz\n7J2RnTs+PqPrfEV7zkaXZXUybYFQ7vjjM0jpVycnCdAb3KH9S6i+QBJWEYqF\nrLRY\r\n=mRjD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"c3ff9d1a6b599f01634ed2479183aca2c6d57337","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@opentelemetry/core":"^0.22.1-alpha.15+c3ff9d1a","@opentelemetry/semantic-conventions":"^0.22.1-alpha.15+c3ff9d1a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.22.1-alpha.15_1625080126830_0.15422976986312542","host":"s3://npm-registry-packages"}},"0.22.1-alpha.16":{"name":"@opentelemetry/resources","version":"0.22.1-alpha.16","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.22.1-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"37abbf6aa06bc14f519814259e5d7782e19d0354","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.22.1-alpha.16.tgz","fileCount":93,"integrity":"sha512-rRi/PBru2RsH1n/NYIpmIwZxCdgJfkjsecCUAq8/D7OgfD+4HWN6AvnKhA2MGqx3wjTE5JzUOad2JLwj6BltOg==","signatures":[{"sig":"MEYCIQCvBrjprzNcGVot2RbxnFDYuEVcLMZepulTsN+eyvSINQIhALsQ4Ap1J0ruRjV1no2S6AcbE9vnb4+rOPiUdiEfGsWS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3MqjCRA9TVsSAnZWagAAboAQAJ10L6/R7s6ZnG23k+dD\nCwLVi47ZGkKghQpHxfNzuLicBjC04CGX9U2VDOC3zw2aFOTGLzAJOwWwnxln\n9xzvh4UtblEz5mqtwL1mmzl+h+Y9Agq9fZHqDS9XX6jc3L9fY29L2wOXI9w0\nNYanuRkEW5+cKYulSa3LS3xo/HdK0xmIAeD9o1RwL0+O8Ck/vNY23UhxHS2Y\n52m77Ou/VXmd8PsWDhrQaJV5C1C6nZjEOmuc80A+0llAmQER9XlRFhXEjJ15\n5bYojD+midFcHz4ouzbTDgEu/hBqc3e56/JZl/2rRmolG++VHZbTiJVgecA6\n2jEgLkZIiV4BMUfrY7UJe1te2JcNOtpU4tMjcadV563iAR/GhYffGiUyyVdK\nq78VXkFJuln1XpqRVnUivYQHWTcOyeYrLguB7vIVz6adJuDLQtMRZHlq1I8V\nU52JKX8GkW9Lr1QvRWthoS0PFo/T61ZGnDLIMfRwgXanxG4G8t2vBh9umZ+p\nrj3TO3pB+/JfmSS1h+CJhEDD3ozKRsulC9mphU6j9ZXPvAdZZ0BYbqkmqGzu\nL7Jt9a1irI0OTuxPAfWnLVaAMpderApKagKriAteOCnw2rlQx/Ln2W+OZFnX\nRHaNzmsKSSn+YmbCfIVimLuOGklDWT69qYvejpj36x+k+eJv7b0bchxvukuW\nks0/\r\n=DBlW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"5af147b159c9dfad8d00a20a3b140d55736f1919","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@opentelemetry/core":"^0.22.1-alpha.16+5af147b1","@opentelemetry/semantic-conventions":"^0.22.1-alpha.16+5af147b1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.22.1-alpha.16_1625082530660_0.09174126653771864","host":"s3://npm-registry-packages"}},"0.23.1-alpha.17":{"name":"@opentelemetry/resources","version":"0.23.1-alpha.17","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.23.1-alpha.17","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"75b7dcb6374251af3e5964d9c77f21b3c2d58787","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.23.1-alpha.17.tgz","fileCount":93,"integrity":"sha512-+y7wctyMKpXQU4cOOpS/wpt0wsP+9KSqmZxDnpRBgo4VGrJrUycgOuyqm3BkerZJzZpxmHUbzNpAJzGmJ5S82A==","signatures":[{"sig":"MEQCIHT6WFQ5TUwyXjaldps3wDgXqqx2h4JelIWkoVWB9NMLAiAaWPTYFBOPIlxcmJi/oAVvD1N4gBl/DNOy5M1kYKZY/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3M8NCRA9TVsSAnZWagAADnQP/1/ra6qlyjIVLsvusjyT\nlRvx7AIpMFfdqyvIALHXjhiZIMSkS2TdS6SxDzDsgpgNzSm8T4QK3cXJrvXD\nMzuDWbN0xDHn1pIWxbbpw4Fh4eAaB0W+YVk3lQ/vm1Vg/eSex3QdWB0c2QzW\nGzeYHI9PNqCUxIZ+CCppvI4ZljN8FBEuuzxghFL5nkWg0Wzpm0uUpBnnS/hP\nIB+0OAjvH/Usv4TUsbq7mgI6lwk3mvSxmCxA86MgeWX5lzMLV7sUgvrp3R4h\n/OC1TKDRHHa1jC3UHPSpzEZiqLrszriLJyEA5BRO4zue/8g4PwSTjSJXNQoR\nWEW//fy1HpfIMEpbew/0/TPKQV8CvBk3Ue2JzpDQeh/+JRygFcCTUlMhg6RK\ntWUiRII6Gp1b44qFwbU9rtwGBDNnI8qUJN3ZGP/STozWIfAnIK1DrWunl3pj\nUPqh2wMJEAd7Dq7BlJqelBIudWuSxpzujSIKXAd0JUT5rjkXNYIXRF2hYmN7\nbrLNstjcHXvR+L1e7NgJzwbYdnRvHxvGmNRRmQQL3UcEBzL0KhkeHV+/o7mg\n5NgEOGbkOKG/hW9AOnDT2k65HpVR20LnWzoJQHz/lRJ+RJvrhxXrAGgOyN3b\nemKvSUao0BzmkHh2ZDt4FC6fwBZN83TlwizUtsV0glBQaGMxJq56C1JNRQyR\nzHfh\r\n=tB6I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f2a958dfeead4f6ae20901ab3fac04e4fc424a3f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@opentelemetry/core":"^0.23.1-alpha.17+f2a958df","@opentelemetry/semantic-conventions":"^0.23.1-alpha.17+f2a958df"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.23.1-alpha.17_1625083660760_0.7349941751609983","host":"s3://npm-registry-packages"}},"0.23.0":{"name":"@opentelemetry/resources","version":"0.23.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.23.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"221c123306708ceac707599e3a201896b953f53b","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.23.0.tgz","fileCount":93,"integrity":"sha512-sAiaoQ0pOwjaaKySuwCUlvej/W9M5d+SxpcuBFUBUojqRlEAYDbx1FHClPnKtOysIb9rXJDQvM3xlH++7NQQzg==","signatures":[{"sig":"MEUCIFuTNVQFLA1vdbSBQ+zoYFhMBI/rRliT+xswSACL9S6YAiEArsDDAtp+xn0AziNVkdYs5qeLVoFYY6ZaO09mv0QwQ6c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3NC7CRA9TVsSAnZWagAAQ5MP/i/JM3l6T8iyad838/R4\nY+hZEn+laBatL5EFeuriahejDVj8yzVmu0wQwt+8pVuZqhGsyanLBAxyBlxq\nxUAdVK76Jr3HHmBzh4sIVsmIE3w+me6cq/jt2mTXlLRvr/rbJUawIqHuvhB+\nDpmZv1h0yonsQhLlzEx5mAWLmTmR4+6OZ820UHdGPEoeX1hnGY1sZymxQ1cI\nUvJO3Vr56/yxEmw7TtpiCdvIOLTCeQhNGmPJjoxQpXX/7yqH49C9xPXY3Fdo\nyaJHmzlU9+v6Ga+oPXya75jw5GhR9ycvI16PX4g+Em+j/QoPd6v37Chni7Up\nxNxnD6f5rgzKOyJVt6m+tFdMV9RvHnht04rJQ/NQ8Zk50mTMotXBiAQh+wAw\nmz+8Q+laT3SzqVN6N7+hHBWJ+arjLBt4UIRfU43COtWVykjXWwb0IqGf3+g8\nd/14sKApqsgANbeJS4gGRgIZrYnKcp3ucU3D6YK9xDk+pC++2qRDDyjrT9aD\n7/qqsCbbs3ELlSvmqZcOLLMGRM92+VLsqvjk6AodK77FRu7u78DYvYo5Xa11\nEaoVG5n7CDJncfUuxyD06f+u9Iz/jF9VCdsuNYkCMX7xbS5Cm+CLUt8zFTLr\nfb56lwD9YHKQDQthVRHQeA/eWdO2E1hz0aKBp8aCfjBjLQIyoIy+8neKrtBO\nMAdI\r\n=voKI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f2a958dfeead4f6ae20901ab3fac04e4fc424a3f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"0.23.0","@opentelemetry/semantic-conventions":"0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.23.0_1625084091014_0.02882627176348107","host":"s3://npm-registry-packages"}},"0.23.1-alpha.18":{"name":"@opentelemetry/resources","version":"0.23.1-alpha.18","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.23.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"05203a515636f3646f7cf3c6f091616faa12d241","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.23.1-alpha.18.tgz","fileCount":93,"integrity":"sha512-msTtQHMAdjtbX2IDhQ53PUBd2KkrNutU1nYXDyxdslsTK5coZEBFhNjld8StzEZRi6WNptzNJhRDjj430CeIxQ==","signatures":[{"sig":"MEQCIGfpH65SOFCowXNNl6w1jYa/k68QiiZiKMQRyXX5ptfzAiB20qj5s5CHabm2otU9BkaOt9HZHKet+3G9ahu2enk6OA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3yTRCRA9TVsSAnZWagAAxZAP/32rNgODjFPZMWerz2sG\nv8nG+y50xLztH4OjiC1sI71W6tKryxR2tYX8LYazNJKrjlsw1WOGG8O+GG0h\nLJbvSXb78hRqmysOpKHLmMPrlNarLchY5UAbthYh7MRbH1PCcr8VuTLoQKVI\n4CumSSS8Z58JOOi0jGqEMWAigzGPNit27Uyyt/6NlM++uThzj8i2l6el/g5T\n60QFxhumrCx0MYMRDzltagjQCGApVAesNdqaXYPwrIiqe5mNt9IJOn5tUkXs\ngdTKags3rfzWXiMP+nEwoDmaVXC0ZGrUGwbHbfoDYWPBSlkoDg3h4gnDZ98o\nDLIcdJHFToyCYdTkReZdJxvh8bdVVKfIxuw0325vVjwhzYX4EO6rp5GJmMIk\nynQIoQRErnKjmNdjI0Hm0rpCs9bQ8ptp5qUumO33/GuXuUAPyZfE3DUicJzA\nTDi+d8chB722DzrkYk2wB7gdLr/rloiD3twT7sQpFVtdL3vfxxR4gEEj/BfV\noPZbXXxxjWF3sEl4QEf0WlOmVz+7rsqQ/Ka9qgj8aUgbOab6sYtJFKL5k2gN\nM85mTat/HzvvXEXgXvQ1wzNhx6CZ6uYz8P1h0Z48EfrSaz4kxTu2ZiGC0HZq\nVzT8TJJ3oIKsG0x1/+c0e+uuNFnpHkXcyFrFNT718RoGtE77hiVLMXKpPWlJ\ngbmC\r\n=HJfS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"4b3425dd09f0a7087c9d741d25c7a9a0be42770c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@opentelemetry/core":"^0.23.1-alpha.18+4b3425dd","@opentelemetry/semantic-conventions":"^0.23.1-alpha.18+4b3425dd"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.23.1-alpha.18_1625236689423_0.2101309582105586","host":"s3://npm-registry-packages"}},"0.23.1-alpha.3":{"name":"@opentelemetry/resources","version":"0.23.1-alpha.3","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.23.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"42cda818dce80363cf69f2d31e7c9e28e36106ec","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.23.1-alpha.3.tgz","fileCount":93,"integrity":"sha512-s9aB4YqPtqhOkHDjKafsdhQlMYQmm4RwqY45kTRBwOw9iCJhD704sgtm4MVGGSCCaSC7siIqvfW96Rh6jD+JTg==","signatures":[{"sig":"MEUCIBUObDKfYDPRpjm2C07jbFPguZCoRwsq325BIyylsPpvAiEAvvpAsnJv43IONdMLJk9yD6Ho8+FGDQc4E/wqGAFLXxI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg44dVCRA9TVsSAnZWagAAOQIP/0GsqOcPQG2Z5GqjJKsv\nD+rKdnIjaYDcae0SJIzzttKtdI/XvBxK9uIAIQ0piLQpeQBWqaqKUpddbH19\nBuccJdoRpHc+19TzP625G+l8ETsu/TpgS/ECNpkXJwoNwQTLwTUWuApIV04s\nKMHw8YTttWgbha3ke1ojGu5hCP6qIXFPWwDz6yMYbQk5cWlVmLDUulHLuzUG\n28ZYtjBkfGJfvZ9fwKXMtfVUXQx4vxIAkfsj4WEBp0zsAV1DwySePfYXqxCB\nJmeo9Wi+v5MzmAlh9Ks64YBb/czzRTKnrZ0fyRjeDBci1t8trdwestKDFzvF\nqPcO45wmdr0DID6yScqj8j3NFNS6Usz4WBY1WUQssi4TGj5SYsUH9MCTaSbj\nzBtZrtl8QQo8GqKfpk2crQYkLun5TSdOwjHU8H7lcOUB/unRiQLY/XxO5VXn\nl5cDIXv9KGZoIA+EeBMAbI5S/Pn1hWLmmcdQxBEEA+z22TKDZP2QltSWiNom\nxdfMfmIZGXpj2Nx9DRzN7G9NSEFsVDsvmRR9COZUcLF6mpgi6j/9xkGCkpw9\n9RhyD+1yHuGsSyVXio36L5MGvDr5b6eJ5dm8Ep4gXXfQ3sIR4mw5aCKWxzF7\nJUGRu5muy8NbEHc85PldGbRGJsWcNzxOa0nSSQFf8Tbife41QCPF7CZFqt/o\npih9\r\n=EDwo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"6ed8d92559df68ef1fd3273598a1860ee5197e53","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@opentelemetry/core":"^0.23.1-alpha.3+6ed8d925","@opentelemetry/semantic-conventions":"^0.23.1-alpha.3+6ed8d925"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.23.1-alpha.3_1625524053178_0.05454089875162671","host":"s3://npm-registry-packages"}},"0.23.1-alpha.15":{"name":"@opentelemetry/resources","version":"0.23.1-alpha.15","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.23.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5d23f6e15ac4a0d6a90e69cc3d50091ac8094d8d","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.23.1-alpha.15.tgz","fileCount":93,"integrity":"sha512-eg0nzlHyKGklTRbux6MLCd/eEAynKoU4TYIWb9MC2viBeKgkOkym9Isisj4ujOLN8qda/KHTa2dKk5g/khtdsA==","signatures":[{"sig":"MEUCIQC0GinJpdY7qeDs1IeUEo9nYNsBrz444z68CJfnOiokxAIgFbF0P+s7dxYW60m3w5ihVUwQa9OkliGBEEPRfDJAs10=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8qBQCRA9TVsSAnZWagAAERwP/2KcqrNEx0ocywCNChmS\nfRBL5+hkjamxGos/jTXWsJDjhpgrf5nOJaX0Lor4R4mCtFtwDFWadQ5fQX2/\nq6bCXdeRkdtuYlsD596/ByxPOLPvZ62IhpLqMko8Gw6E6vK2Y5k7oMFKDcL7\nq1GzK1M6KM/PoHiwcQKAAdCgng1wDAJbweBk9WZFaZXFYLuFwFx4tij+T/HF\nJtNERgJBZzWvIHxgP4tDhz7ixZzJbCutzDwvZODjDQ2R1smgF8oMsq5dRVUH\nArk+58rWgGG0gZzUG8IJ2e4/mVliAVody5eDzXqkUuNDq2RZ1U/m1m4MQYTl\nNR35+iVuCt3RKA65OZ0LX5SI9/gG3655VgTJ93DJkjiodeg7P8u6UfdDt98M\n3dpEHstkBZGwPop+4638OOqsc5wGLIU2vrVkdOe1+8z4Tk8VAtFSrtUWyOCq\nW36wv7obqvvOTexro45zYBiN5M+hMoXojm1yD4gYQBLE/SyzF64F6ydOAHGf\nWdvaqWuw12CvDFhlNNFK6mYtfBh3oH5CTElBWkDmlrXRWQhchfxKeUMYyoyZ\ncm7IUe0TPOyP1Ne5VE2eEOtljIaiLT0N/IWKoUZUPAr7XVsnkZwyTZ1OKp8o\njiuaXXvCyccgCiYB5VMDidA6DKv+mg3kegRVkpZ1Q9KWS2pbgioHO7OU890j\n0Fl1\r\n=vbsg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"b67ca0568c333e5d841c9b614ed40b3e107682e9","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@opentelemetry/core":"^0.23.1-alpha.15+b67ca056","@opentelemetry/semantic-conventions":"^0.23.1-alpha.15+b67ca056"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.23.1-alpha.15_1626513488428_0.9364797365882735","host":"s3://npm-registry-packages"}},"0.23.1-alpha.23":{"name":"@opentelemetry/resources","version":"0.23.1-alpha.23","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.23.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5f830114ab3b1867d85f92f1657f80c9d73185a2","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.23.1-alpha.23.tgz","fileCount":93,"integrity":"sha512-w1OcP9OduB9KVxlUteB+cu2u8MuD7BuhxLthYlJwYBrc6vCdxVGPvYF2BMcFoQFM6sj9O/b8OQ3vKihKTxhTPw==","signatures":[{"sig":"MEQCID5yGp1oYaSchCjlbyXoHTyUQxREq2czzYbsinMHcWniAiBPqC/gBuHMShATIK/bvbZY4xKMp9DDKH1qGZ5jWzW8VA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+wBoCRA9TVsSAnZWagAA+JsP/0Rybvu6figKhueKhiGk\ntY6R2pBQJPOrXatnPqEv+5a1nqZ0DUPuPA1XA7F4SpXPD/DSPH94UB6XT0l3\nOez1uCjdk44cLtm+Jo2Gdhea2zdAXYh5LFSmzBpb3CPrfWBz3GBrxYAjaMdI\n6EqD8lSxYUQyMLQRGmEdTQKwr987fUGwzdPaBJ2bOgaK7rH0HKSApu3/WXJ6\nYb1Sgyb5mPkLBwwoWQGiPYX3N8TEgBcbS8yzzOzhLtHAazUL2zrPCIiiyJ2F\ntNO7C9Cj+NJ+3FxaLJBW6kw+PSeRh2wA/WlrK653MlDb84iIgHf2JJC+hTQC\nfxLXv23ijgqYzRE4V+BUV2mi5HHLD57DeRH/esN+VVuvZZldIgf3U1eWqlSi\nAvEnzmBsIyP1S0oQPNCC/tyo7ln4Y6QdF5gYPYmsBW3VRej2bTAdAdm2Z7I3\n2nctYUq5R19C7lZbybslxpbrCAlQ7t/VXRLp2PFIcXO1cVUaH8eju99bzLFJ\nLVw0o0MFOErfq7ZZMRUTnh6uqwY1xiRTiQ+urvuC8Uzl5PxDcpjB38uIgHO0\nDdHpnNfy4N14rTgssuFaeuKUV3hSRcFbukCZmTJDCYaA0G6Qoh9lbqFMyWz2\nVY0sFHq6BYO14K8vrliwnFp7FFZeVvL5IVL1j7LHuaQvt0BTFdIS/lSYNPdZ\ncYtk\r\n=f/Gt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"884d20ab417bf0283ec84a72b9a0fae8ebcb82a1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@opentelemetry/core":"^0.23.1-alpha.23+884d20ab","@opentelemetry/semantic-conventions":"^0.23.1-alpha.23+884d20ab"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.23.1-alpha.23_1627062375905_0.3307403734421859","host":"s3://npm-registry-packages"}},"0.23.1-alpha.24":{"name":"@opentelemetry/resources","version":"0.23.1-alpha.24","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.23.1-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ae88d05ac911d2fe979b8cbfbc71d025969aab9a","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.23.1-alpha.24.tgz","fileCount":93,"integrity":"sha512-fvucthJuG+Fwl0YIT0962nKeG8nfIh+2tMqBC5VVtYXgIR4sps8cgDEPoIvgZmCcM+9yh4es4P2Jepb/DZtUgA==","signatures":[{"sig":"MEQCIFtnYJ0WfGtoQlDJRXLWER6FcUixDuGKX8bWbPC240gaAiA1/QbsIOsGt58ajbOcH7nzVHR3xl0CM7igJDQPg46lqQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106409,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/Qh+CRA9TVsSAnZWagAA2foQAJEcy5A3CRtLAnvOTlPo\n22XDQSa+ceo7kZ09+CPTx3OMaDPlKaHINnasPwRgWPOt+7emRlnnI1WrqsuF\ntstvyRjW4Yw6HdUsNa8uaOC6LnawM0aGJVzbWiVp4CT9DdY9S3E3miLGAQf8\nBnRvkhmKVglCku7TdvsNWn6nI6ht3tNx5zhv6Mnkv61ybeOcZbVVajMLHTWX\ncCSFGhtwyncraePm8gmxb8RtBtfTBucW3Zff6oiOpSYg7T5RdJTJ3+t12nS+\n/ezMFvbnOELcJqRQqf6ZGRLRmJkEtG1dqpDYU3aXBc9j3hpc4amxoe+B6Zoj\n1x0U0MmYj2mT0WypOjPMgv4LsoIkXS8YkVgA0dhUFN7ptB8YutbbK9t6EjeO\ndzDs938aHxpZ6PHtL0vEMZsvWmZkeZSuPdE6SD1yMGWG1Rg9Vuls46Pi/Bly\np9weQztND214ljF6uwz0ot9tYn0kkT2xPRy7lCk1w4Us/JHRwPsGuSp6fudU\nR7gx+Y9oe/6MNcN8QLNKm6n985Dh+pvL3bJYtUvgQKAT96G+3acyIiSOQhGj\n5VDDpc98U812r8REc3TpWcCj5ZhsXGD/nQjFraSx5yZsBJ0dhzbWwBeSZzBw\nwThBkYtJoGIqwGDJfWsPz6Bat5QDyK6cuSaeX1tt1+5bPQrgoNUmCCsPvSsx\nrpy0\r\n=SdMy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3bc3452814e30274d7eea1f3c9da968b88b1a197","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@opentelemetry/core":"^0.23.1-alpha.24+3bc34528","@opentelemetry/semantic-conventions":"^0.23.1-alpha.24+3bc34528"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.23.1-alpha.24_1627195518160_0.8864144307387276","host":"s3://npm-registry-packages"}},"0.23.1-alpha.28":{"name":"@opentelemetry/resources","version":"0.23.1-alpha.28","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.23.1-alpha.28","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"36286a58d1dba2bc1fefefd60b54bbce56514368","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.23.1-alpha.28.tgz","fileCount":93,"integrity":"sha512-BklB7ZfA6jkEi/AIAiahQgC0oqIn4fzW6FM6VQRtC3DA8EXA664fkbIzCaeZ/50wbjqenYKNKGAICCDW4vd3ZA==","signatures":[{"sig":"MEQCIDA68/EcqEPjauT+wpdKh9oj1CHxb6H/1vKopazqEN0QAiAHLqOu/sjHx6gDPuZ7kToAcSDzhEHxEoidGImSu/Oqyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106409,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAGIQCRA9TVsSAnZWagAA+Y8QAIj66JsNLBisJJRXkIlm\nQBncZmYLkv2wFafuOsKSkgMMBjuRnOUHMbYWxFPw5+g3SA4llN9qLChd2Jms\neik+wlHhh2sH1MBdIEk+FN4wB6kX7PB5zMVJQz9UgjDBGOjbZrl3iVSUXU95\nKgrUicWd72HL7UzbDWCeckG0sQcClSsk9Tr9wChBCWKzFfr5Gi8OQ5n0lgdP\nOr0QnWorzPtC4UB1hfcy3QGVJYfZQ3tjY8HwRJxCoaKL/0ID0t1GaG1+tatw\ndJ6UwFu265n5AVRYY6a15lgf2SedFsCJfp209jS9/CYRbcbpAZhiA0Anz85h\nVHF9lrmZEVndvXeWaeE/5kWu9S6LJx02rKwAI+6FH2SLPsChGNRQVIXdQTiL\nTWlgOjMPx0hXGQNDev59oTZprYyjYCO91o1CUJZ1/NGd3V+IfC6MZSnePAGR\nXHMUudzRD3QGA94Q7Y8KrG1h2t8TWXmnxfREOD4I0JGDEnKqwaRuXO1cI0ae\n12OIolO90XeIfY0lIrTJekWCZq62ze9oMjrMbGPOkPIxjXa/RUrwONU/gJyE\ndwv2Q8/vVN3+2/d1HlN6lYx1JUBGzo3pz/j3BEB6XsZl+GAYBIn95ThyxJra\nI/sy71vEwIq3DNezZOgKf0AV/TwaPG93jNH8aaKAL+M3z7EF6wNw2f6uuknu\nZLlX\r\n=npD0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"d8fbeddacce3e27aab40b24c2ca3c271155e74ea","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@opentelemetry/core":"^0.23.1-alpha.28+d8fbedda","@opentelemetry/semantic-conventions":"^0.23.1-alpha.28+d8fbedda"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.23.1-alpha.28_1627415055899_0.8010743031484759","host":"s3://npm-registry-packages"}},"0.24.1-alpha.31":{"name":"@opentelemetry/resources","version":"0.24.1-alpha.31","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.1-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6941f30614bec76f806aa27081d83acd0653b4d3","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.1-alpha.31.tgz","fileCount":93,"integrity":"sha512-QtgoLy0xYXe/O9D8xcZajcrMI47L8tOC7+hbPAjtt7kSGYm0RJU+mupbLvOtxCDKDzsv+VcacxVg/bAbrOF2uA==","signatures":[{"sig":"MEUCIQCASVMcQRH4Xj3NprU0223raUACuaL/PM+rf4SQiw9HygIgHUaKVMjODwNV8I70snbuTJyxH5ESYQnuyT8TYCQgc+w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106409,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWSCCRA9TVsSAnZWagAAYxUQAJDgF0g09dQmApmuNXMW\ngS+wknHIYHY9B60Ec328Rdys2Eqy0w0ONm0siAb6tVR+u8J684pohakzWcYI\nGarwH1B4289sKBJ4xl0e1mzwEEZSg1c1VVMQGiDGt+MGvh4MeRa24WxQEbFP\niqYOrAnJ8mGmhDKnyieWWQQPMAeznjFg/ziWzmS5a+Oi24niNiZgWwjxc52v\nJaUcPOgleKRTscn6z1B7DEdMHgVzD2AgZpokXYTWPiT8UIP4eR/C758M80lm\nfIw0Mz1QMGLZc2RyJVr3cZKo+BanD6bdbjlIyUiEUuPyaQHCDdM3L3V9VlpH\n3HfwsxAxiKtlqzJVtopayNXnaYU42MQaraMNw3E5B3i/ofhFpWhvz2pPhv4x\nXCTuJvot5hL5vSFccHGumjJkrP5qFKTc0erzAMw1JYWlG63rd2guXsTlXLSG\njyLD50dY/gIX4BIoBy/KTW6pIlQUtBbEzOwCqygUCaV77cLSFPYBWudy/lO8\nV+NJYTxrL8MBfeEp3kbMmcIx30GJ26d37z7OC46QSScZ65KgJMwe9jEnWvH4\nWAcVywMH/3PUSZ2Ufh4aoT0dqhxfq+kR2XGuZoDovGfdoaNBnZtkAc/f2sRi\nVppWiRuxYQUflBH3nMWGjGJalojgznGjXO1+XZISTLOIW0zNzf348H8RhWdR\nsbDj\r\n=ZGd/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"fd2410cc9e8d43210b6ea44b8193fa70ee900499","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@opentelemetry/core":"^0.24.1-alpha.31+fd2410cc","@opentelemetry/semantic-conventions":"^0.24.1-alpha.31+fd2410cc"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.1-alpha.31_1627481218723_0.7309829639434744","host":"s3://npm-registry-packages"}},"0.24.0":{"name":"@opentelemetry/resources","version":"0.24.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"834e5a4d0a64ed4de085add8308be203959c44b4","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.0.tgz","fileCount":93,"integrity":"sha512-uEr2m13IRkjQAjX6fsYqJ21aONCspRvuQunaCl8LbH1NS1Gj82TuRUHF6TM82ulBPK8pU+nrrqXKuky2cMcIzw==","signatures":[{"sig":"MEQCID7J3kgQ15Nm7juNIUCvTc2xCQon4faEowlIHM9JKJNGAiB2WAUB3ANd6ywm/t5Iu4OwGywzCcdjfm2RqbmWxEGHHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWYnCRA9TVsSAnZWagAAoo0P/12hT9fdWY+Oumz4GEeU\nHsL56DP1E02Tug5dsrjH/7MaOf4AYdTSqNMbsEEUl9BqVFJzHVOj48PccpTI\nWhUJXx+pnZQpxllpbxAr+diSwPs+lx+uXQHnVzytTZong76TpnubOc6w5V3s\nLO7/8RY9woJZSTRu9Y0q3S4hNJ4AMjEOh29+gkrOGEKjfKqf8Z/ex7HmEgDs\niwqn4+jD37QINOo/A0dGw6u3eUTG1kXfwzAVuIYGiZQItvLmqaxlL218h7Wb\nl2FHLeey+jMvKtw19X3d1hHGOflpayoGYmT5Hx7lZ5N2cUzMxlUWzLTjAGQ7\ncCgrqTPOy/ZZ1WGuMMvADsAMbcGA5vQAGCDDQdzliC8oj5DZ40Cb+zUJdAQA\nBsRc63o2U9wdsgb5hkefZ3FcNLVmshnoEMYT1/n7hB2CkEOpirmTXclQmSfC\n3E/W7OSqkzIFX8kmAYXzEj+htMwAlBgAwdRelJYfeZR0hCD+86axKgf5KnYL\ngTt5R77/WG4Gy52gTFjM5Qd91gA486+VT9o8/NsdnaSJ298w2PW41saLwIQW\nX6oq1Z78ArNLXJkX1iSYEjeHy+p0hdsbvl/tnHQ/i5kluzf00vWzuzprtC5c\nj+svyZfImV5GWABPIqyWcT8SmTi8abepk81DzdW4S1a6z+JUTeyXSnMbW8p3\nUCwM\r\n=I9qs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"fd2410cc9e8d43210b6ea44b8193fa70ee900499","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"0.24.0","@opentelemetry/semantic-conventions":"0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.0_1627481639245_0.45371128067930466","host":"s3://npm-registry-packages"}},"0.24.1-alpha.1":{"name":"@opentelemetry/resources","version":"0.24.1-alpha.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.1-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2f7ddb6f1d80b87f4be72921faae84a045d9fe97","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.1-alpha.1.tgz","fileCount":93,"integrity":"sha512-MsS6enLUvQmCNsXdpXtdBcFOMe1QuIV5WV9r2JF5hI6mvS2x1l7LaktG3CuZm3kkjiRxfjgGmM1ywGvKV86NwA==","signatures":[{"sig":"MEUCIQDew4q0abJzMePA97e9WtNsXYR50xxOELN2Ykfb9xffCgIgYTJgFendiQaax27Fo5H0G28p0CaxHeNTXaV9OQHLSYM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106406,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFYpCRA9TVsSAnZWagAAks8P/35dFAKYcDzgQtmAhZZK\np7WT21jQpp+dFFETz/mnvZc7FkVhHvrc/EDzxThHGndwClVw6CDqM7jZl1mJ\ntN9NSKvmrR8S8RhrlJYR75/p+pRAsgtFfSeXwga9Y4RRVb4J4rcHY1OPjR/i\nUOYRt3ZqTjBeRuJ8k05s2cFUAea6ZxBDtc+BOxzGJ6Nwdol6Z6bevMzqxpqp\nmu9v0Nbk/BdzQh9E05b+3lvqoFozakaNnje71j++y51d3Nuhmiy7odLJM2tZ\n1PJchO8eXKEQd6JHV65+xuZjDDyD/LmUKwF69Sr0j20jMEgYWGPTqoOuNwp0\nHYKcuBrEyTDT9U+8PfTNpv9FU5YY7ctSpmbVKM9j9v+TGIh6Cb5yiTfudHPN\nVZqhdd46+Og8rBEPIIpmaH6IZ4gjt1Ztl8oF1hMS97s2/19kODAjz5jXiMQn\nA7RglLhYuFb3148At/Mk7ISYEDrsk3pHPyLRHDs2y8ADPHKYKlkodUBlJ60a\nahIYCfx8EAK8hiAEH7VRUoVhgkOkSbHHy3LhRyzZwXAaSrQDEGUnb4fIdTjD\n1VBiAQ0fpXqa+HgYCaEc0D/nEzwcRB5whCtE4ZnrB4uZ1bTIpGKa4HQkttAS\nlMdCEC8hW3ABh+El3Yon601UczvCSYYlJ6bTKp9xkbN1ZfUB4vi6VaKauCjt\nXfSW\r\n=SkRm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3b9cd16a8eeed7a262bdfea4c93098861b4c1ba0","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@opentelemetry/core":"^0.24.1-alpha.1+3b9cd16a","@opentelemetry/semantic-conventions":"^0.24.1-alpha.1+3b9cd16a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.6","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.1-alpha.1_1627674153773_0.4609118898766926","host":"s3://npm-registry-packages"}},"0.24.1-alpha.4":{"name":"@opentelemetry/resources","version":"0.24.1-alpha.4","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2c5f6d7b8226017bc84eb84bc71f5008402cbb8f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.1-alpha.4.tgz","fileCount":93,"integrity":"sha512-o2LzvKc2t+0r9IlGvcylkTAnNkbTbrTrv2zn91GyG43jJysir8ooD0FRjcWnRyNsdrMbDngRXc8TiVyBBRDpdg==","signatures":[{"sig":"MEUCIQCRU0NzOi8mCt5MJaracXGXDz4Ghlz1FBNSpJlyP2cqagIgTr8YiLD6hJC3JCcWz648evWBn+6DsqDFoaEBRQu2IQg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDDvICRA9TVsSAnZWagAAwQUP/ApVX2d0WxVIsmDyz8Nb\ncEEJQ27CLugO5db5Fam5w8VqES5CymRiL3XIxhCMztXWa7RcKc6ZYoCEGgg/\nHFxKJ0JL8ZLgq0p7vcJrzYwPr2te99PMbKml9o3lf18f6g3xwWzjjQGaAWcR\nCEixtPa6CL7G+O4UOq0oSembV1YUxl6FURHNlczMM6hwpFYDKWinqpiUdDRW\nz2hW+yYxbqEa7+W3BO/k3RukQQc70AlXvWZ/65xeWDcUOp7Gc9GcOsYKA0mA\npu0POLKqKXNrv+IQJVIqwlCUkWXE7Ol6P78YazEtHYDSMyGIgo3VfT6o/LR6\n0K+8osVsuXhidjRyUEjMbsRROm6jsDydFIaCI/x4Mgr1kPlAS2DEwnPWbfom\nebCSMGto1eqndxtS5S1LnGkzl8v44PLiXoibHxBnHB7npBefxLTFdTFMkC95\nVzYOv+4RKmStqCVrvomdZyxL5DlapWK3qHYGuXOZ6E2Qq34Qq9lQFObhXRt7\nB0fTu02HJaXWNaFPXudHLGxFlxRH+XpVBeWGmNWnvxRJKHZ5qPEdvZ6QITiN\n/u+JRMyTzJMIf6Zmp8duVfkEnwKvGCCHsWXkSCP7kYN9CJ3r7OKbEO0n1110\nyHXFUsdKStOpw0tg7iJaSM7P+W23kQ9mB/Fm81GIvP3TxcsOEK/OPpJmxU8E\naN9V\r\n=j3Fb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a8d39317b5daad727f2116ca314db0d1420ec488","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@opentelemetry/core":"^0.24.1-alpha.4+a8d39317","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.6","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.1-alpha.4_1628191687911_0.8285305027152767","host":"s3://npm-registry-packages"}},"0.24.1-alpha.5":{"name":"@opentelemetry/resources","version":"0.24.1-alpha.5","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3bf6dda6493dc048a0837440a251cd805b3f9f58","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.1-alpha.5.tgz","fileCount":93,"integrity":"sha512-s1oPoVuXLBK0GdyKS28Bu4GwMHcr+kDNidzP8vUGN/yIOvRvRwSPpCuaHX6+R8EGOGyECgMOCYq60Ws/jEBIsw==","signatures":[{"sig":"MEUCICgfzBotOu0XfXIdbcBkG3pCElDt04iTW3t8hgTFhrF9AiEAnzwGE/UWxUrfm9NqUMcbk9WJeyTBhqyuRcJ1nrzY+yg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106406,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDR2RCRA9TVsSAnZWagAAWswP/RDAqjptPX2iUEtdyxmH\nEYVrMLGHnSZZnpUqpyfn+87JV58qIur0PxlUgD0C9z6iF6hr4zURyT2fDNAW\npXBlOqn108BiMGTKkz5/zlyEpgA+g3yubTDjDNfh9QTVk15O7yTbjH2lCqmv\nfi39AkNXGCiTXLgpdCksAnuahehRPQXup/ocN+bgQRFi9LpQTqDq+WDGX6bH\nVFXE5vL8dGE7Q1UOBizNY7431f3RGBIugow5vHNvoYMmcj8BOg0ltC1Z0nTt\nOH4cmjw+ZG7vk3yjvj/y4lwqnzu1pOYERbNFwVRZyF1qTpCf63YNmkEDAaIo\nwTy6FD3srNfdaW5YphuoPicj90fRProZwrWL2M6HAU6Y0r2daX9dWEEBHDDb\n/lU4V00+elx2/uzw8WEoAGmuD4IXXcwWSfWMV28pSOSKeq4AZm25fnc5e/Ie\neZnHiN7/IjpnLcLjutNwFOWDeAX4eJKFsrOkatDpOk+yQz+gHpUPnNM2t8Fl\nwHl2HaoYHNxjxNp6QOljlDjSqTZTna1rREfT1WgvCiteU5nDtjWwbtXkm3o+\nWFLDtRDNC0vFHAg4BSH8Dc9vEmc1CtnRxarmzs7F6yy9AMJ0mu4M/BGUCbpp\n5VT0YfXJ9Icw1KE38e5KeEp8fzGb/OFRmxMTChmCvL+Tw1z/WG+fpZFomL9R\neItk\r\n=iF70\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"b69ff35e90a33d20a0154dcd326f1467dfd39e2a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@opentelemetry/core":"^0.24.1-alpha.5+b69ff35e","@opentelemetry/semantic-conventions":"^0.24.1-alpha.5+b69ff35e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.1-alpha.5_1628249488976_0.3177694633086745","host":"s3://npm-registry-packages"}},"0.24.1-alpha.7":{"name":"@opentelemetry/resources","version":"0.24.1-alpha.7","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"edabc237910a3fe2584cd397e18607f42c133086","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.1-alpha.7.tgz","fileCount":93,"integrity":"sha512-aJvqck7woShxeSrYvQ4Y9aDmvgV2oIlBvNvtzMoU4qAVkwfq8Bpw0Lx+RfxAgVdrlRu5U1DyGpYrxfX56/yvHA==","signatures":[{"sig":"MEYCIQCch4r0s3qEMz1/0U3jlAv8xqn3MtND6RnxwBNV7fvU9QIhAP7VMbP0xsoDvLCTlQCXUta2cNzdzQLTVJCnO0U5OmrO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106405,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDouFCRA9TVsSAnZWagAAa2UP/3J/08Y5nuAwOOMeO2Gl\nlax2Oo3iHqAFUUx0F3H//zHZKEhT7S1MUPwVhS1l245raZPG0+LuHQb5q3VN\nYmOreAH8M5mTSv/FcNuz8lGymrso44IamqZCuJjMK2/co/NwacZNlQsUHm/V\nYUexq812Tx73RVboCbmDcXkMDs/GAS54njWPkENIgny9Feg5/fdyVlFmYR9Z\nNOL0qW7hB9tEvQWkhMJZPp/BLbmxdSQyN84YoFLXk+ggMhqRLWzpYvMMIX1v\nlD4YsWqar8TfjxyKZT5yH2L5k7jF+29E0C2MP8UI4dhdbbOjwPBX4Cw6RDC1\n0NTAJDZLQZ+JWE54BNTn2w/xhbxZYxmLgi4agJysm9mnZOfRaBbPAs60OoY3\nJwDHqu9AMweE4MuZMFFxvml802B6UTQfNIFJW01tJ7A9M/CDdmOT4v0PIwNf\nx+Kz4B35Aq045Ia0dLAYk1NIt8CbYn80BAUwXUozCAu7s1z7J8lnMfEg9G/d\nxzqCxdMMh0vHU6A3OXaFgoBcR3RpKEOR3rHiB/ppNhjNBOajq+DrtNo4xV9q\nYFrQaQq5bh/Xpi5tIDHJzy34I+shSedaWGZd9U272VsILCS7xiGx/7lRWWGf\ngtKoDJP/mUV9YkpgPhyDYrPE7mOFP97UeoHufjNsToqyUoNjQCkJsXCrkuS5\n2xoT\r\n=6/1B\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"365d502eaa0ba1f9799998f050d36073e943032e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@opentelemetry/core":"^0.24.1-alpha.7+365d502e","@opentelemetry/semantic-conventions":"^0.24.1-alpha.7+365d502e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.1-alpha.7_1628343173342_0.9591325093033958","host":"s3://npm-registry-packages"}},"0.24.1-alpha.14":{"name":"@opentelemetry/resources","version":"0.24.1-alpha.14","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"40633c10340aba3086da1fff4fc1e28765691a3f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.1-alpha.14.tgz","fileCount":93,"integrity":"sha512-uNpKnSNx1osMN6fmXpIafT4w8BNyzs2u/WozE188BENAJVs8JaHC4/idHmomVUH1b+kEg8uiYXYR2rK12eiWpg==","signatures":[{"sig":"MEUCIQDSWU+mpXtxBER3uJTp60e40Tr2Z6wImwGoUl3kQXKwtQIgAa13LTZgTFZs14Xr8sQ+CkKkEzH6h+W1YQubxgUZXIs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE+PJCRA9TVsSAnZWagAA3pUP/2AsZ7FvPmhMY3XHc1ns\nmEEGRJEro2ktw79QVnnHK+SrNNe7bMmUH6VgqmUxuvDQO0KXMsuYVRGGrN0v\nzr3I8jFILCEsyvXPZdiSPsmcX3NG9OW7TP+6GT57UEG8fxITlEWJ233Begu7\nMJ/0AYk0dOwWHTKcE2Z7chhGGyWCTeyEID7utHH9q1xj0N+EypqOiIrZCpvu\nx4Mqm6v7eZiRt+4wjycT+ZYbqXIy+B32CYi3SYttELGuZxdPKIUlD3z0ajDj\n49ROpdfSN7K90SmqiD/O4N4gqRoM+CUnOKgYZil4klns9iJ8qPMdd/lJw7N6\n6mbKSfesoQIRLPbax+tAqOWOJfiFpZy/6RUvB8iykxkUXD343CMj6yYry945\nvUM5NSeu1V3h5YCVJz9DHws0F7HpwBApcBlshj/U8nETy/4HIUkFuS4qnhbL\nhLku6g2cW7s6lE/vYjFFrltwxJF0vlj7U60UqbEernon67h6mPwSBqZAnE8r\noFgNOmSw5n7Y6e+GgVawd8XNXLcF1xmtHZcDzBbKCKKvJxscXxdeyT0LM8Ke\nxnENhfjYeA4EW60+o+kWYJ7eBglwyA4dOBcK6COcI8gKPyKQFGQHEQKib5HW\nkqnp1ywlEm+Vqp0J9qaVqmOwZAXMKibBECLW0uocNlGacARK+KbuBfT9vysN\nEUw2\r\n=lxYI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"4553b29d4a04b5b7e4bf87cad64dc2fc8c740d8e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@opentelemetry/core":"^0.24.1-alpha.14+4553b29d","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.1-alpha.14_1628693449554_0.06274831956090554","host":"s3://npm-registry-packages"}},"0.24.1-alpha.18":{"name":"@opentelemetry/resources","version":"0.24.1-alpha.18","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2e7b2884a3bb78a3f3642da81098d7df1f44c193","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.1-alpha.18.tgz","fileCount":93,"integrity":"sha512-pA3/VoWMP0qKYZS5dwG2/cUCn7iyadrg9gHF4dsXIMWHqiIUjV1l3oxMOZxDL1UxxA/NyminhXLNhPauB1p6Zg==","signatures":[{"sig":"MEUCIH87DpGGgsnxYtQw/t49c0+BblT5erm1VPuGScYi/41oAiEA7ScRg1M1ej3Ky3J2WsCHzK4haNFeFCa/uDGIFAFYWCA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhF3vGCRA9TVsSAnZWagAAGkUQAJSRme81sHfVIUckQbrF\nWJW72kUe8/WAHtnoDrMLJCNb71sPWM8G87prLSR999EVK4sATGGF2o99jBlc\n7XPCGHT5vlr3KfkfPYAGZ7aI5h7fZgs1f5h10iiwdqVI2pqZWb39hLQwIkzi\nqvi0qUQQCaP83N9mNJcu3wGUrNaZJu4HM6qdCRbtfJl57N6uxR4N3qp2jLDI\nDbLpwYc0lB+zK4DPTJqRuMiuIsVftIE5u1bJwWqhu4QbLCa7NgYnkZxpl5t6\nwnV8VE0WvmDOHzOAlxaMTycsqX2n5O9i/CnD4OLDCMWqhtjzKtXp3X/ltzCY\nPfiYwNEyd0VnqQ9VwNWBOtFGzXpWeKNhmBXm/PtSDpqvu6XLiCdYmvFVSUG2\nCIM8j7QpKcbrm9c4Irpbnq9RbWbOunVXw3Zkymm3zFgeZ5l3Hxa2qZwzuRF8\nK+FGTsofQ3oULjd68o05CTK/YmdQz8eGaXJT5dpqzBHJbFAkulSEcnvJqZ8q\nA0jsRUWdo1xGgRLuJmGUi1sWqoEN1ljpQWqjtqhmUGEQcyAqVHFt0i0wzGiR\nfpgfqUkIEnVlBvqL0rIrlM9GQ5EeN6y3ydR/E4rkn0C1nNSBdvk4PISS7F7a\nnRMnsBXfGWDsQ3uFr8gG6pdvyoJOJcG/oPLjLl0AHrCFb97bSOaMfgYZS+DT\npb9Z\r\n=bilM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"bdb12daeb2e4ca3761d1411125f5d883471709ce","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@opentelemetry/core":"^0.24.0","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.1-alpha.18_1628928966627_0.24577899820022187","host":"s3://npm-registry-packages"}},"0.24.1-alpha.20":{"name":"@opentelemetry/resources","version":"0.24.1-alpha.20","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.24.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2a51ce0352310e68bbb7c14e25e42cdb71ae94ee","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.1-alpha.20.tgz","fileCount":93,"integrity":"sha512-VBAk4q7+xBTqe9fqE7fKii2k2VFQRUn9vZmGWI0KFeuIo3dJHN04czeYdtcD/CmJTNQAWQaZkfpE4wT2tBh4jA==","signatures":[{"sig":"MEUCIG/XN8K79q8Fs5xpA+mpIrB806VAPtWlH5bQmrC7bwmHAiEAx3rFi7t+NlgyuVZor+4r3yiGTouPA5nVbs99gfBBhSk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHCT0CRA9TVsSAnZWagAADpwQAJbmWBb3+8tvYzOb4k1d\nZOTYlc9zL2CnJtmPHQJbE7CWRL1FnGDHnTYRqXuK2isChxM4atAD0reCnREA\nXoeVCUZ9kM9/2oCF5hNvgFvxTN85BV/ixdKs8h4NFU1AdF+LAS6rn/VfyJuA\nnOvMOC4OyUblGrRDG7aajFWNT9Qi+W6o9fjgyobyO11KktRPRc/+3dfkh/rY\nozED25VOkL21F7l+bJlC/gPgOI4fnbfkJr15GL2ZPIbED6/NXct5v26q7TMG\nBpNdi2Lj/nXlQ+O8utXcn+5WsIJrIKM78afLX5v/kVZOYe6qOwo+XgbpQUyY\nTQQdhZAPVzpZwYXeZFaH1thKnwpFnOrnfWJTuvwD9ApAM8U23DWDnd9Sij4D\nqpaGTWCHJzAhjxxCriNjKXrYUQngTXcKCsV942RZYw89M411ddTr/XQLgJGh\nQrI89a1406ESSqzrYWc3viY9+d9CHNaTCjWV5+GGUyj2QvGSFoR9W8UQ+gHT\ngpFkrbX8c8dlmch29ye05NMQhYUyvWa07ku3Ff156GrSxMY+NB+LgR30fyGh\nrknXpLUErjxJ7y7Zr2mEP9v+SUkTu2t/msdFTMVxEQslrKKJ/ft8pfiCfigY\nsRxXKNhlwp/fFwbeAiAL93TjEdOHl9CnIgHaa7wyEWbsoK1Fv9b4LjAYYPhm\nRT2z\r\n=O+2C\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f12913899ff5c588e10830e5ba7183d9115c3442","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@opentelemetry/core":"^0.24.1-alpha.20+f1291389","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.24.1-alpha.20_1629234420593_0.5687243571904415","host":"s3://npm-registry-packages"}},"0.25.1-alpha.21":{"name":"@opentelemetry/resources","version":"0.25.1-alpha.21","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.25.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"65b8b3f354866cdaebde871f367a9b60c48ac063","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.1-alpha.21.tgz","fileCount":93,"integrity":"sha512-mFUvbNh9smpmYrCAiFpngO+LQk0/eTzcVyG8QJxWKI0cS5y12muZR7PgjNaCiMUlkqbS2FRc73my+V0b5h0I9A==","signatures":[{"sig":"MEYCIQCzSkTUhzIi5BDsPjqe90SkLEjG503/8ww7KirzGQ0IRAIhAOfkE8UHJTb9sYBF2FhJrygQZyc1kQKml1j1FCFxFn/J","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106408,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHWqlCRA9TVsSAnZWagAAW9AP/0xOzoBuOtVm7d70U9M7\nLWqxZLrzdftKqdu0UB5pX7sExDjmF9bU2nOA83l93b3MnVDFv5hZrWsW99Y1\n/pIAOKWywsogbqwSmkCmQc0QfVp+JVyKWivsOfEcOXpi4LoBaTzzrRETGk/B\nuSizjro89t150/DK/19s1HIDBri+vJlH4l38uVWxknwmHmsF7hYvbM78dLo0\nJBF2ZiV4yW9fAtreoVN9XsRIIdROyTGdzyaKSGILa4cR7gIdBexQ2ngBR0tz\nLU8fVc+ABwqkLikeKzG5yCSOKNRBJVo/pH41GehRM1OqERvfGYewJDguUz7Q\nPlVoirm6N73cvB1cIsJpsNcEKk9oHYqHiBbOGYb5ZRUutXa6Z7HLI+tTkRCs\nqxKs4b2/9Ir5oi25Hd7pkusPCReGNS74hVIcifJ4gifOq/QheOXaWHaD7BZ1\ne94Zm9SjJvIq5MnYDXo5GNtkHRShrChH4i+z8RFeILve4ie1lAP4bRvwdoW/\noRTOXSqrDj+B/WIxe7FDBJOYZ5xzETrz3tzeQ5lDnz1Kxf9gtECNUHowDhNL\n/HzXMSJDJRjCFNxAHjBQmnsQWdG2J0CKyTOnxlcwUr8b2dGWmECB0j1YwZGe\nzUZ/AQFHbv5lz2zVgNlwpcfjrLNIXycEMx1FS8hq5fstsVVTxx+ICNJH97lO\ngbHE\r\n=N6+m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@opentelemetry/core":"^0.25.1-alpha.21+0ef1fc28","@opentelemetry/semantic-conventions":"^0.25.1-alpha.21+0ef1fc28"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.25.1-alpha.21_1629317796840_0.803376659663525","host":"s3://npm-registry-packages"}},"0.25.0":{"name":"@opentelemetry/resources","version":"0.25.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.25.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a780ab536577359ca9ebe93ccc5d02ba8c3fb2ce","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.0.tgz","fileCount":93,"integrity":"sha512-O46u53vDBlxCML8O9dIjsRcCC2VT5ri1upwhp02ITobgJ16aVD/iScCo1lPl/x2E7yq9uwzMINENiiYZRFb6XA==","signatures":[{"sig":"MEUCICA6Lhfuimu5JB9cYeGR4+c/PvLGgh/vENH2qmBgfAeQAiEA7QAcgvpSJx6UnCLu+l23caBHZu2lMJ2F0cfANX8hJFc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHXi7CRA9TVsSAnZWagAA0jAQAJTCIIPuRu0c3ndVJVwg\nfPEpN2VvOgJiXT51EpRyJwvMtHEHGfiGmdVbL0Nd6T4Dl4G4mv6AksRCQyFm\nBNQzo5Hech81osop52gfVKwQlTQJmwsQasa3bwIHHoOEVHp2IC6Es/Z+oHku\nYQO+QUQxVTjVSFQ9vJgvKPxR/grRR92N5Mx8LNmTTVPoKKhCkzVlNYkKj1cE\ntnP3Zvij4gJLSTJgy9rvIhX7QdtBjDNJ6iipRy8c+5QKAh+zAM0oIadsUlqR\nCmev/EmToiCOXZB0RJzgHMkOLHeFqLgzKYit6LcF5IAF8b9kAm59La5hloYf\nbfdZxQ5CgTMQatL0VYSNkXXCQusJvGuGCs7A9XrftXcN/+BOO/7Z0AzhZ/VL\nvqAnWxanbrZM5OoPMQgkBc21Amxq9wuyUA7y418/++yoHgguuH8DuMn1Tc+j\n+8NyF6Gj5b7e7Z5Nlf5R0MWKz0RYf63WqhdL3jvV5j6fDCCj3Z9zjxIL4RSV\nkzWc1ESaBIO2e558eZbraOvBR3xJ2D30oS0shNQpobj+XLl5FmuND0G0hhTZ\n/5qHlxiRDkPSPeTkiNL0bnwV1JKW20HGoO/oETlDTnWtrdWHfg8whX8lqClS\n+fKUiO4T/YWEZzZT8G9f2WlpD+jr7WOj0xvZAh6x1sCENX4E/pcg+16GoXcC\n3jES\r\n=EdqN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"0.25.0","@opentelemetry/semantic-conventions":"0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.25.0_1629321403357_0.2876885722400906","host":"s3://npm-registry-packages"}},"0.25.1-alpha.2":{"name":"@opentelemetry/resources","version":"0.25.1-alpha.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.25.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b88363b13ad7c79056abff9b0079170dc920eba5","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.1-alpha.2.tgz","fileCount":93,"integrity":"sha512-kB+jrMAbaB9+pMsXuDhyaB8FqQsi3jbX1SRatgvL1nrmp5P/VwwYnH//Es+9P/Mch/xntJmHvrIAjlbCtrHR1Q==","signatures":[{"sig":"MEYCIQC4WJn118OYooPnUi7/kfXXQzsALQvoZT+yhA1q8bmlpAIhAIsBjuAeNCnQv+5tpIRO4WtF8evIJJ9fdTH4ZdJL8i/g","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106388,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJBXxCRA9TVsSAnZWagAA0BAP/087t137m5o+wQ3ZY36s\nQoThG76ox+boioU0KbaOx1L3WjsFujDuIGb5LKj/ZXgF8y06MgzNv38qanWA\n7WCJmvPq9LP5Hg+97hABGT64MhMC2fcA63zPUPffnK2oDV8GHEXcYOyiXe7R\nvwhcMbSDHBc5lZvQEBqNh0CRwpVszOAVe2aAzzHZbD0mB3xNE6nVfog0x90+\nKtMYXa1p/39HyCjW92cXFyrsVJxciaFvG49/rOCZhkAV0mo+YyFWkpsjJ62+\nmfdEStL9K7Ob4QilgEHg5xaGEw5NQZdXLcrN1V3RweiURdCKdPby1umY1ybf\nOJV1Jq+TJXjQZtTRCRI8VgA1NvSYswktRudfjLX8fZ3WKWVPiQnoDwm2QUKe\niQojWcugk8nX027ejQQ6SFiHa7eCnvVDlAZTbgwor6b/uAIOB6URRQew+n2b\ntX6dAZDufG32pNdSmI2CdUrlWFTQT1CWU9Ncj0j9m4Qwup1EywE/MD4eZHrP\n3Hiwbb8mAjD5YcZ9KtyVgzUxfC3kBNTq6WqoYt5iCFwsASBDlJ2Wn1iC8+u4\nW++mS160D+s9t3uP8+qBS359Rn2m5weBJcIb/GTKyn1cwVjXJFv3zZvLJPg0\n16xSY8VyjeQUbWFCy2o+b2giNnozBUXVn1aCcLdX1jShfDQelMzcZugpJTb4\nMCGD\r\n=wJl1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"78a78c093c2df24b66c47af4e037da9a6098fedb","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@opentelemetry/core":"^0.25.1-alpha.2+78a78c09","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.25.1-alpha.2_1629754865457_0.5122955146521735","host":"s3://npm-registry-packages"}},"0.25.1-alpha.4":{"name":"@opentelemetry/resources","version":"0.25.1-alpha.4","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.25.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b4603f217ae0c5246f34a0ffc824b2e86abbc243","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.1-alpha.4.tgz","fileCount":93,"integrity":"sha512-23u++mwUTvUL2mBbr7udLQ8pZgVp+b276JWpp+GRe68vAxLrjH0qVI+OHVVsFZh3Lno1PBuQqtQ4QA3P3jeXhQ==","signatures":[{"sig":"MEQCIElzhvK4eiM7m5Laovf+ocN0V+6VZpJx3V8yqUiIOdlwAiAu0VwObuOA8EYbdHKXQOGZaxynU2Ss+NrfRcwJYxCEog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106406,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJUl4CRA9TVsSAnZWagAAAesP/juHmloXxfv2YuoNqVL0\n0H6kqWw/xthMZ1xp2zmCCPZdPYfeA7r/90y1d0GY8qxMFuZp99sFnR8bkwBT\nJwtHzQkLhllK4yvR5Q8TJ2ECsOGkFMXQNKCdHtXMQGIqmFHSevKyuZU3FfVR\nP2n9hj3SJRFzA0qpnhUZI1NM1UTIVkALycw05SBOjTy2qZ9UG8ad6MejLzek\nWQq9N+qVewbsNuPhdISlnK+AJYYd8Zavr75fCOQr3PDo0zAWHaoydYiecD8t\nTl3XJZF0DL7B2ZZsKNTw8SG/H9KszW0PQx0vISYPxtlxMMtOf9VbXW09zbXn\naoVyu9akvpxHfzpMdggE4Yv3DKZcXiic6CfQaMhP9D3Y5gDM5B4Z8OverxD2\nYCX0Sm3cah009VhOjMOBIUyAhwsuHQDm7kG9K9OLV965RonAsYFj9KIr09dt\nWxg8qg4KUfEAym46poJUqVEH0R9FOQenJiqC/7rGvF3G+YoeqbMI44oOjcFP\nBERgNt1H2jfID80gZd75fmINgTMQOCvTEVYBu0eSWpKETCHGEZ7yoDmj87JG\nT+Dx9Hey90wiSu+ZXVVeP/ZGpEzzt03H4RVoXPd/I0HyjH5OmegvpkMI4KaJ\ns+tRxAuCiSFWL24ALLVxyBFmXAghMmCnfo6s3SuHgOrwAVdTZIG1wI9EaI4y\nUuGF\r\n=1/dA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3cbd530f2ee5c06376210402eb87ec9e362853c5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@opentelemetry/core":"^0.25.1-alpha.4+3cbd530f","@opentelemetry/semantic-conventions":"^0.25.1-alpha.4+3cbd530f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.25.1-alpha.4_1629833591773_0.4742652694701468","host":"s3://npm-registry-packages"}},"0.25.1-alpha.12":{"name":"@opentelemetry/resources","version":"0.25.1-alpha.12","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.25.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e4b8605bd66bebe96781f80e3a3464cd49a4eaf3","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.1-alpha.12.tgz","fileCount":93,"integrity":"sha512-K89s3hY28kACwituUUQ+61vJJd0ria0r7ciTPVjmPyODaWXmkg9YSc1wm+BvUiVjlIwGzzzR10buEn1O+8vRvQ==","signatures":[{"sig":"MEYCIQCscKHimzRMh7x0tEWjgNDG+DVT7JbUt9DI3nLUztBktQIhAKlJIcIV6fzoxplAnAYF97MvBf8jAMr0cGreRbmXRKEP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLT3rCRA9TVsSAnZWagAAvgcQAJagA0PaniMJLmPv95Rk\nastUpQoo4su7mIXHgh/plNCcKHVlqDNQMlS5sSMm8r1ebvdjdbAdqQ34M0eT\nOq2M+swh3tw6/G6s0P9J9VDVh9XHJ2bEzDjSMwaivZ2L1yGK68tJDA9gts3U\nttDCzUBKqF0421oVdMEbK4GJ0vkXBZcg6X3yi7GZBxPEkc20yXP26ecC41Xw\nvP8Qj3zWfYtecG8OuoTD011iCw/Wc6OIXy4nPCRWfvsoobYHGlX/36sJW8HY\nPA6uezzKPeEWZYSClVsGhBXb829N3PBJiCGShspWlB70Il5/VgMsaBs811zJ\nHbNBz6EaP24qux1Y2pxs2GXwgfWfWRXQGkH0p1cFqqHT+npjrF3Y8UHEJ8AT\nNUoJXN0WK6fl2539LXYfhdPZgdntCn7dMjbl650lOjZtXA4P9npBxQUPDoZg\n/5oHulezqJAs/Dvx4/MuvWmcU+rGeqVv0reNNJu1kl1otvOGTw5w94pr91tp\n/sLnnjfcWzZwrT255omz9sbaG0TmCVsXnbLVRjoTqDBcS0+vQGDOABSWb4M4\nkkFgA+jCKHYySdxYUrMHf43E967t6yknwZVYGYhxhxbBm4knkLnuVsAyok0+\nWJFuOvSKqL8nzEE4qD+XQ2ri1L6zxz+CNohCAq3Jn8pYwSXzEI6T9oDZ/3JJ\nQkIi\r\n=tLuM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"7d2c4aaeb08e6c680f8b46cefcdfe955d7abe4b2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@opentelemetry/core":"^0.25.1-alpha.12+7d2c4aae","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.25.1-alpha.12_1630354922987_0.42259767733703346","host":"s3://npm-registry-packages"}},"0.25.1-alpha.13":{"name":"@opentelemetry/resources","version":"0.25.1-alpha.13","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.25.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"85e1fa53d193ecc0b2c5e15917b8a5d66774f30e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.1-alpha.13.tgz","fileCount":93,"integrity":"sha512-PRuYOq81CoTutjm7qBWZEfI+SAly2ocTmVBLIhyVOkAbtaoToqG0zy/9v3XDyHus3ngrak9Bgr+wTczPLKZKaA==","signatures":[{"sig":"MEQCIAcPMZW4CMUFf/88Em9shQM/OpB/6AKblmvLAyZCXfhIAiA95WeyYuCkXU74HKKiNx8WduwTcmRhyLUFm9n5g5gfCA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106546,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLUJ0CRA9TVsSAnZWagAAlPIP/1BPZogZpCKJO5gNRmM7\nI1f0ywIFSPshU1GjcVLA1bjFTz1C5mc2NbxOW5p6HemIdoOLg/0QNxjswlOc\nFsIBQNtEt1iYzFWvPwBuX/Q55PXYMyVyKY7mL4pLrSBW8Kq8nRxUyKiZQ9hK\nT0obPt7AAWajG+r20zPCaJwA6Z1sX+VamjgxUfieP4xKTKM5u+nB7UAIAAoq\nv/ClWr1p7Qa41s0t/Z98lwO/n/tuY1G75odkznnTOwSPVEy0QCDAn8Ua4Ols\nyQaGKycjNKXOxMtctQ2xUcl998ZuZYhgVl7Kg+lGfrYsiyBh4im9KUpWwhrZ\njVMnI0L9dyBLH4eI/ApM43TrLbgeUrGV1rZyL2xaC/boVmnaQeqC2GJeTltl\nq7DBcFctTdlQIcHjikHTXH/jwNYnR4YfQvpMNyiCf+UucQ0Ebmtt+AJkInxE\nAVuhiEb8XOeNDWCxqJTYIjxKw/dduOHPINroO17a10hqw5X9/8BIC3dFVcqN\nEzwIiO3+GB58J5KgLgN342JXAHPYkM+bjU9RoJstVMA3uf0lDDnn6t1jULHm\nY6hABin6ISEstlFt3cHq84GfNDnmctbFym9kBAUAwiCVoQ3YFmSiUF8I5iNa\n19onYQrCp0QprnVGD67v6fCyH+a6EALpGuoRTN4JzvigNTi461SyPPHLcbY0\n8O91\r\n=ETtO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f0caa22ffcb26af2a2f05260f138a494e120a955","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@opentelemetry/core":"^0.25.1-alpha.13+f0caa22f","@opentelemetry/semantic-conventions":"^0.25.1-alpha.13+f0caa22f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.25.1-alpha.13_1630356084050_0.036635511406662546","host":"s3://npm-registry-packages"}},"0.25.1-alpha.23":{"name":"@opentelemetry/resources","version":"0.25.1-alpha.23","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.25.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2856afc143967b5a01dd79dfea79a2de4c95d54f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.1-alpha.23.tgz","fileCount":93,"integrity":"sha512-b8hvijZwVZY9DCd36v+x7i5vyMvdXYYKgwmqhF7MRUfmOdYEMEEoQWS5jq+USTLPNg915pPi9U3QDi6zCH4/8A==","signatures":[{"sig":"MEUCIQCRefJd5zjIlstttz2NVRHeE44gkFSpP6Qk+XX3xJ55dAIgCvZuCudZp6Ml3zcH196051KmHMimyQkJ/xpIbe4eNSw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOTXqCRA9TVsSAnZWagAAEJsP/ijZUDUuqu3iyJ3mwxCD\nDAG0d5aHrBf7pG0bAXACFbeOB5ogSIOfb0+jV0bTPfl9rKKAgKQMVjI9LUO0\nv+E5c7rWfabhR0L8jEi1YsnEZNSRwsl3G9mGNh/S4Eol9bSKKrh6uaQCeY8T\ndw3VsUaCZ7IDGIIPeRewj/rToN3F7caoWTgwDvJPe5yP7TVRAhViok0d2kXq\nLdPNYjofi4VFTYIk+ciAqqfFGp0R6+Cf8BqUE/HztA/FGM8zoDeHYz2Jchnr\nVuAaQOBYbx09N/pGaxNr5GOd8uUm58ywGnA6XrnjCCaoetXxRfcw+un5LkHV\ngLIXZgEGp7GQULHDfQN3rZz6SDWpcGqDf1dKGoVasVLcnuD0Er0p+icvKjV3\nBFNNAdVqQjdmlTSPem03AWACtGsLCeAJzPYE49xQVmt995YWG8h99KSrCgx/\nOs86ezgrEpLUrl7Tj9CUYtg4VXeGCozNk2lci7oWb3sbOIOTpklMOVtVV6fY\nKgFxt+bUDDTvotuVxiCIFCGaz/lsYsneawu7XRZHk3uscmnEtVkSG0kU0qKe\nLSW4k/cvuUkq76w/3HGKuJiryTBzAPO/mSqp303gbSCGYihBS0ZpdKi7frD1\ns/RlTVWZxZ44vh7puu3mAlY4H5/w2/+F1VwhX24l2Q4CdcA1aoQKaHyuoGkG\nj/Oe\r\n=13XD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"feea5167c15c41f0aeedc60959e36c18315c7ede","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.17.6","dependencies":{"@opentelemetry/core":"^0.25.1-alpha.23+feea5167","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.25.1-alpha.23_1631139306276_0.37643788411893464","host":"s3://npm-registry-packages"}},"0.26.0":{"name":"@opentelemetry/resources","version":"0.26.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@0.26.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e6e9efb5317365001ff885333f4964712ca8184c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.26.0.tgz","fileCount":93,"integrity":"sha512-s0iyFqmv5dAipXioS3PwIeD6c2TC5jzfcrwDzZXSsMz0LbDiFlhb149OPd0CngYMwcEWqQcAVzqu++3jzDvCsw==","signatures":[{"sig":"MEYCIQDLqNN8Gb9NsnlT4eaYngJtebURObC66ZXKKXFiXRk7swIhAPOy+tU78qPAR2ZKVh9VVDYQMEsv9bDpi2Ce9hLavwKC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106490},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"fa2e897587a2441205fd085772d80a0a225ee78e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"0.26.0","@opentelemetry/semantic-conventions":"0.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_0.26.0_1633005329890_0.19280198775144286","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@opentelemetry/resources","version":"1.0.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.0.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6fb83d39d8305ea75cb3e120583d125670b3d6ac","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.0.tgz","fileCount":93,"integrity":"sha512-ORP8F2LLcJEm5M3H24RmdlMdiDc70ySPushpkrAW34KZGdZXwkrFoFXZhhs5MUxPT+fLrTuBafXxZVr8eHtFuQ==","signatures":[{"sig":"MEQCIDCYIdJbVCfFAL/2iLLtZecPHABlY0KdA6OBUwemJ2WpAiBYj0r3BL4vWKJkH7Obj9A6eX95h5yhfyUIlh2zaV2dpg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106483},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"69b925d142a4405c7c6bec7deadd8b4e96c7d5d6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@opentelemetry/core":"1.0.0","@opentelemetry/semantic-conventions":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.0.0_1633035222566_0.8841209556538232","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@opentelemetry/resources","version":"1.0.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.0.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2d190e2e6e64327b436447a8dd799afc673b6e07","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz","fileCount":93,"integrity":"sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==","signatures":[{"sig":"MEQCIGe/vdi1hw+Txt3i9kpB7MvIbLXPLkqFRsJtR/phCvbwAiBJFPM85fOfjhYTtvke6VXIKPX7klauLw2ViXYH277X0g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150905,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2UqOCRA9TVsSAnZWagAAKMYP/RpDlX0+AxqZ6sxkkn/1\nwMs6m9jLySN2ccAMSLPRmVxYm9rWQUWsEoIOCSregMjdqcl4OOSzS8etehJU\nGS+8NFbG6fv4EDF0XsumICqrUSXJd5g10HlNG2TCYc5Vi/Yeq58rDuGCh1nQ\n9gAM+Ug/KM4CMMlIRI4KLAWjZweGLuAkuUCWpDnRIiKSyInPXUmPN0Wn1lpl\nx+MDL5bJbQK7yuW/Zl5c83VINhZ+dEqsmyHB6GOfQoVjYcs8lSwbfn8Bxi5g\nCI6aZ6qyMINRxJ/DtOhrZhwHHeDN5H0LX0k1KsxmR52fuz5b8LT6czo91wkE\nZLVeDapY8AlknXI2yTj1ErdM0KWAWyPyn2dDQ39o20hqq0faWLCVJ2TA77c9\nKyv2aReUoHcMnB46hOYTu9VVZJM1j4f4KpDS9DEJeUaaG4rHIucHbgZ+4ogj\nhlb8bi/tQ6EjvW4YKXqJ0vaj6iTCp44xCj0q1OjFrlzcrdA9KzCEMrzSwxKr\nj6Zyb6OefQSUXjTaEpdVQgOTZF1+8jUoOp6xByUpokO0SvDUCKyBBaAaIgJQ\nqKTqdmiXi9uoF9wfxbVXS0vRANavtI0T/oyE4tZQcI7ow2+ceRC85IoEpddS\n9353K77D5Kcc53Rqr135Rwp6nVSc02hOKYrnZCVtVgBT8XvDsJoMNlZiNo3e\npD6U\r\n=VUWf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"9cf402ee4231ee1446884b5f59958ceafc1b5188","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.0.1","@opentelemetry/semantic-conventions":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"~1.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.0.1_1636642282621_0.3380290882509722","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@opentelemetry/resources","version":"1.1.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.1.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c14b94052a28df157d313a4ddb65813566903d5d","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.1.0.tgz","fileCount":51,"integrity":"sha512-0BGdZum74lBXIw76ffDLSIpdwcfQAk4lDi0zLF/o+eeZ31JPvWBrRp2i0mr0DJ87wmGTjQEuzZ1hRjkLWaagHA==","signatures":[{"sig":"MEUCIQDqll44MXfetLwtjsWCgL0hYHvq6v/iEFmMG3wcmQ1HKgIgD9PZQ/W0tLK7EMlZ7ca1aydZNFpbvgB/9WwaWYk0i44=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":89255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiND6UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKsA//QKxsEZ1AC2GpzA/3UXxwAe+UEXWVBNW0FVij+OyFdkE+ZjHy\r\nN4xwHg9nyaQPDnv2MOJCSxI+Jg01cB9ICdwgNI9ZmlkfTlPafmJaflG92WBu\r\nbmSEaNl9VJFG5UYNjadbzdANELC4C0Xi7PwoXbXYwjwVD8z24V49StANMeZt\r\niLo71sDSBY8bxWCMarD1y2YlrMJ8X9BFDkWoFD86wGSpUmuqrzFgzeXUaQjN\r\nzzVaTw2WmdC/t4zPtZmp/eeruCP/h+i11JPU7Vhg6Jl3R2cc87IT7HzK6dQF\r\nCPFg/IgvUccrGTg/blis+5BBPjDPs5jvw/kfhXxi8Nq3wRE5Gj8vsTSLbSbj\r\nNNXqIGARzLV3qWCHXOslHf0dxttgr6XUCzJJfFNuT5ctb7ees9blIqlYeZpr\r\n2kYms/xLxywsy/peaLajAVdNlnFFxHprL/p0H1Qpd6iJldJpDaPOCJsPTSGn\r\nWfoUXOwFrfVnuobJSyVVyGTNJrtX0hiUvcFunUY1aDOXzJvLqRPZ+R1VpLw+\r\neKlUIJlBUck0qDti+iMQtx3yv8JVmK9hxo9TJs4VuaT6+KhbRG7OSzs+LwOU\r\nXC5PtJT0vbAVCTBy95PFaxzshVEFp0XNM/VZ1qedROjjkyC5xjsFpdCj/dTl\r\nQKtktWqflZDeNw4Vx9zbeX/5BfB/ehun7xI=\r\n=xqMX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f384303ac469914d0dbafde0758ccdae473f336e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.1.0","@opentelemetry/semantic-conventions":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":"~1.1.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.1.0_1647591060463_0.8778373249804783","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@opentelemetry/resources","version":"1.1.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.1.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3abe9957e9e670164aaac9051768d95f4538fe8a","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.1.1.tgz","fileCount":147,"integrity":"sha512-w0X65ufTaRevIumjylWzYhRquRNoM5T6e0ARNcE0o2YkYPkAxTr3PYkcXG8hUdWRAglqliZKG4IlMv03Q0wOXA==","signatures":[{"sig":"MEUCIDVVqR65c7gP4VPWd0MhHsCR1GZKhP7qUglHZpYb4kJeAiEA5LZinad0SMMJoYxW+9nqADrPn3sjJPMhJKWW73jyQz4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":244951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOij9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYcQ/+JFy0U+IkSCqrw0yD+dj5+W81TeeEGgwfwQIUpvzd3AedM/Jt\r\n8Kh5pCEILR0gHB1b0UcHSVom0FDCB5+5MfGR/bjBWh8QHkoEV7JeIVlIMxLd\r\n3kYsBCDGTRNn/2bLtjU4yB6jjUyUL2kGPhQlKQeNY/d7yvnJMpwbgwqMyq2u\r\nCOX2f/DFlyaFLCvmNVhEbswGD1JJYFDRy/5BepMITIPI8dLD7x2IBFs146eK\r\nJMTsMc44pGeYSlHJW4u/xf4bLt6v5V8mKstl+xgN/P0Q///AQp7Y5eEZ8TgZ\r\ncs/r0HzvM/I4vVvQ5FWPMCMBuP6cdNce0Zs7WbJZ9o7xO7CSrKiWMSMwuEqQ\r\nfDMaaLEJxaPuUdGcjl7aU42boNPabGhA55q0jCVa6I/UWATS4UECRnm7jnXi\r\n6z4+TVVImB6cZi2I2dhiUDcUVuZjKbpJeVe7R21dTJMPX1gqj4gKwGF6G4xh\r\nDGqm0eckTEHuVnyz0RkskrYjxZdVocyGwUqZEDS5Mejy/7+4CAmAHWn7JTSm\r\nOHals2tZ4clUV16EYWfsQul/k7hwDUf/9tURC8VxheC+OkbUj6QW09uB2bFi\r\nNS2aVbYS0T586SWSBR0nhs909bvN6hDFcahosQKzhlHdh8eXLnNerQGKiPcF\r\n7YfTpHcIN7S6q+5m6I4To2uScU7j5XXdRok=\r\n=WL5+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"b0f8a2d36e6d1d3090c3d2380608d2102c826e0b","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.1.1","@opentelemetry/semantic-conventions":"1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":"~1.1.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.1.1_1647978749815_0.23098125187940854","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@opentelemetry/resources","version":"1.2.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.2.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5046d104d33839e58cca3184547c5dc26602f228","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.2.0.tgz","fileCount":147,"integrity":"sha512-S5ZlZa2JF+1qhiF7eb3tTtDfKmTODO//pvam9vEyZvr+/At45rIQ7cyznRdMWCppZbholwXWXnrKml29IIG9vQ==","signatures":[{"sig":"MEUCIQD6o2lVDbah6q4PZXp1j+DwfEKSWvvsQ2fiqZk5sBswjAIgezrqnlSCrXYrmUAVvpDEdVuNKssPZzJelMurbXAfLV0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":245022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYsI+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrS+Q/+M/VGAVRAU+ViOmgtnODb9GPFU/l8PqJAMlbK+AJ3LhNPkAk5\r\nRSt00cIQ4QinAAK8Y05V9rxPXHPyUzhLa57rF6zzS1qAH2VZeyQxK+FBYpO7\r\nh5Nh0XJZOoWR53z08wmvCOnLNIShtnm+n8NsRLlIC/yJHhVpm65hF+Vjs2jT\r\nBzMABkNaKV/9vs1ZKEtcLuX0JLOyeWPqSs7sPRONtD2DiMRU5s8iMGEzSgHQ\r\nbg4rSo29BVPxx0voUZiwxJBjDGr8jCbU3I0Z5Biml6xx/qJy+FrzWia3TSjS\r\nXB2TVH6ScGcnRTPylIa+v55fq5FiQ/Xi5cdaNlIADxmrXIYSPKm+H53UY/D6\r\nw2XoA9eWNkiS5xTY1i8Wa+SMZO6jnN9SJG5zZKw9dt+JR5DZngyGeFpMFUXu\r\nZUQChmPjlkCf/efXrxBUlb5j4s2mrtP+gmt3h6EW4qTzPokWwbYywFW73GRJ\r\nHG+FrOg2HnxL3OQt2bcNd0QIxGoMErb5pXt2v38QqcnVepYHeL32L9mIRnnf\r\nqLmLgQaB/gjxQoq2uqphWLM6zsdvGi08hUbmTWLMUQviaBAgyD5Tvi03WJCJ\r\nfLO/sHiZ+pIY8EQn5ywiIbbjZ1snLyyxGbCftL1lehueOmmf9GiZxbHbM4+k\r\nSQzCOkqr+6uYUULn3o/hm/AZ2B/+RzzsW4g=\r\n=nYGZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"a0a670a03fd35b0799bee8cc466f79e93b5b6dd2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.2.0","@opentelemetry/semantic-conventions":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.2.0_1650639422165_0.7670335839730034","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@opentelemetry/resources","version":"1.3.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.3.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"260043d32acc82c14a7766e4f8b88a76c6cb5d4a","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.3.0.tgz","fileCount":165,"integrity":"sha512-vSj4YIS8yHx8AEwYFV4l1mcCtDogSOhOymAMEg93LTWcnrhfz8hJ4Q7H21fVUKJx/6h+6cnfTYygzyqBjlilJw==","signatures":[{"sig":"MEUCIHKHLyw8SCnF9STlwBvLtRLIiwenJWUoLNIZpeDVt0/ZAiEAgy2Umlnf27J540hYoqBxKs5xdeqQlBcvhpY7CCOYHF0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":283299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikSljACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpB9w/8COl669IhMPLZC48a5zv98To2oRishRX/Qyq03WdarSFG16gc\r\ntaoWi+mdc89Ox+EPe0fZOhF6J0GXBY3OkXlbD6qhXBNybV88xlRh4d3CHwzV\r\naDqtSu5WtqS78UkOp3jdjj1msplVUxuoku4gihn8GVbV32Z5BV2LP/yQrrKE\r\nUtOrsUnpb/kjYHUT12G96kKFtlh/InNLCP2I4Kq4jjG48KTFrBDrE7TtoqNn\r\nPoWm6pFro3d4QfkK1tlHJfzrwRuQRIw96SBIFk1WaemhjULcq6DrOypVG9Vn\r\nlK2ktOq3a7pGSsoGgdrlgxT/i1gj9zMk21kPwxWR+nRGpZ5F1iFm7jXKA60f\r\nelnVIZPKzwR3jUEqUL/sn6R/cvkM2xjeDNaXigwjKWpjHRvgAAY0/n4PRZtU\r\nj+IgRNSAy1UxnicWWEp5uKkdPZ+T1owTGv2YVUgw3P3TOD0GqD7xGvTciY+r\r\nBvdAGudOUa+uM+nJv/cUcaztolMP9X5mAafvA8x5nYMKQT7ZMXfdYhDCtSJM\r\ndkbAW0wXc8/7TS5oB+6BFLYeEj2nmjXJK7Z3jZnD+iMWMBf2pAJMQxXIw61n\r\nMM4FJsPILN1NVvLQT50l//S8Qh+Gpi+iLixa48CLh2K6GIwrwcEAl6bJr8Lv\r\nYCcZF71LHGyq18Of7OSm0g7ZVIPLTC+e49o=\r\n=S/Sm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"eda0b092db484855ded8b4837ba7fc19a377c5a7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.3.0","@opentelemetry/semantic-conventions":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.3.0_1653680483334_0.7895401519325691","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"@opentelemetry/resources","version":"1.3.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.3.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9fd85ac4ffeefc35441404b384d5c1db8b243121","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.3.1.tgz","fileCount":192,"integrity":"sha512-X8bl3X0YjlsHWy0Iv0KUETtZuRUznX4yr1iScKCtfy8AoRfZFc2xxWKMDJ0TrqYwSapgeg4YwpmRzUKmmnrbeA==","signatures":[{"sig":"MEYCIQCFkckYMkri2EmKoHipB3UYoTLaxbVGWpX2Zc+gQLIwxAIhAM7sbVcqlYum4UwWchWP8i2S/m+Rs+Ee3qf82JgdgAKj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":305330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinmLjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4Tw//acPHACqgavtoIjzqHa4FLlPCPxdSm+1RoG1q+iJNXb9CXFUs\r\nKjXOF/936ruXZeJ3AQW4vE7sLGjqqsscH3Rf0W+O4ApbdExlUfSIbXiYyppi\r\na4aL1gTKMr5ktBDYUaV2B7wGfhdyyffCHOIjkasK6EpNtybZET8jISGcERq3\r\n/YeTH2fdMoaiGDxKdEmB/5VV04qFuhr6BEwn8fdvJGMr4qj2Yi0vZQeYD1Ap\r\nfX+2tvPDVXSaAj0TEalu2NsMvcI/yVZG5cYDH/ftLHBbG6bElyolE37g0lsn\r\nvuQ4hnGHCJJSixriudfBNDbBi3CJ8P/RVZFuUjzDTSLm9SBJJV28w1tEudj6\r\nIsbeUy9gTO++NzuRZOfI0AOEhTGNiPEvTJBHitNhJ53Xl+yIEK8c4+3SjfLK\r\nZLDPc1CrUbBtbXxy+AyVAkB5Pd3hZwhsuSrZrP6ri8dD/cJtYz2uOIVOVoMt\r\nKUJkegylBM1C3zLrZXQm2roHScUpSO5WNDoUpgi/2xE2xd1j4yH1g8hXms+r\r\nIQ/uey6KGlF1x57ll5VbtmOP0IRnbG1biIPAIbD58/CoikD+qKBQgKb2e6tM\r\njxHjenps3/kb7bJ+eV41ReGHGnAL/RQe0IOt05+G5TzDkVfuUnKItXS4Cu+N\r\nAqiAZp9aY1C3aceVeaSSFJ41ABCBvI5iNDU=\r\n=c3M5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"51afd54bd63e46d5d530266761144c7be2f6b3a7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.3.1","@opentelemetry/semantic-conventions":"1.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.3.1_1654547171517_0.7241857789800223","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@opentelemetry/resources","version":"1.4.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.4.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5e23b0d7976158861059dec17e0ee36a35a5ab85","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.4.0.tgz","fileCount":192,"integrity":"sha512-Q3pI5+pCM+Ur7YwK9GbG89UBipwJbfmuzSPAXTw964ZHFzSrz+JAgrETC9rqsUOYdUlj/V7LbRMG5bo72xE0Xw==","signatures":[{"sig":"MEUCIQCQoDmqCZKiytt3HChvfrYR7ViCa9oXWUy8wJE6g1omuAIgA6MWJ7NrRwwzkfZUl4wujsPUFxhXJPe3KZEEPJdZYpA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":305326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixe1oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8zA/+Ny5TWKuXcDu8ztFIpWkN9t9T/Mpu/X4ry+BwodHKHC8aSK4l\r\nbBqpLYtnnxDagzNHmDM/PDbw1ZTzQoEOD8Umgmjacv9qssI8Sg7O0mbkI9dw\r\nI1n4bptw+h08S6fbIS1fmk4I2m3n4V7H6EA0HnOTQnJxBnhEoa78cWs8/IUs\r\nGYxtvPI1WpipY2wa876tcPQD7tDvH4knbHQn87gMXvT2b7SAEH6m/bNxF/HB\r\nzqPLOnJRENlOoAbfQNkNzRHzNkK6CT6XDqree/lS45LpPNBx6u2l3eFqmzNa\r\n+CdsKRH1riSa+dwdP/u4DBntLYN1t76SGwy+dpkzJF8J4Hb3Vdpk+H+A/AHU\r\n7RgWQ9kFsabszEyRSnaIwRXE81obar5uLWO+K+Cwe+ciyIL1w/qi7t9pxbMI\r\nxsRt6ehATtDAWO8lXjXkIMAwztvSuyIgNWHFVYUg6vFviYZEYXzQ9+T7lCRT\r\nPj5zTam2INITmKu29tocx4FbYmL9ehiceveZdUTO41jctUE5XuXtcPAwGuUu\r\nRsrJrH2wWBtAC35ejy0yJDNPBW8V/kkZNe86jdZWYjsgVCAhU0MArlG3+IjC\r\njEbCKQGPKroxyGqNt4h9d+c3Ggwoc8CgHUZNGMDIVxboqFese6ax7vh1r3Gt\r\nftCoKL72KBJXgTh8b+gvKhPgRRLV+cnY7dM=\r\n=O6TM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"e39ab883b18636238ef0fd741df4ce5ed53e8d04","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.4.0","@opentelemetry/semantic-conventions":"1.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.4.0_1657138536249_0.3126273598151854","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@opentelemetry/resources","version":"1.5.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.5.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ce7fbdaec3494e41bc279ddbed3c478ee2570b03","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.5.0.tgz","fileCount":192,"integrity":"sha512-YeEfC6IY54U3xL3P2+UAiom+r50ZF2jM0J47RV5uTFGF19Xjd5zazSwDPgmxtAd6DwLX0/5S5iqrsH4nEXMYoA==","signatures":[{"sig":"MEUCIGA4jHdy/L6BFga/lbiR0XCZZsPPvGCpj0blHI73PFk1AiEArq+NfV+OwiodV+E3Hx6ovCcudVCVFmw3tVpMkj9rmX8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":305437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4FP9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTag/8Dz3YPUNen8AC2/IWBYCzx21CojQGpSfJLfriKMeTgTmpY+34\r\n8ao/nhhfQox1++Uqc875Ec0h16t30JqagdNrDhQG+Nzl6jhSEQm6R5qNsDQD\r\nnlcuBToHGlDdCIQVav7FgI9zMHCyjjRDyWhKvajvdPZ6Twtq97UBpXgKj+yj\r\ng0/L2KDAgdPTLnMfrIW/BSgkydqjuSZaw6HIFOc8QxhvN6BdX3wQFrnBCt/O\r\n62CKQqtZoUwUx3OAJl8N+36u2zPmMr4iH0dCt1QwYD3/Hlyfelkz1Lpz9OVK\r\nPGGCR9MN0lwx/sUy1mn0SD86ksqmPrkC8ynNi7stiL9hCewImvhvkHHsOY+v\r\nYRa8z9PEVMAGJMd1I0bZWoQ8kjG18ItgSoENmvQV+9NGruaUQmKjd22E39vp\r\nrQ09AdHX4YvoXxbJoyIdCb+TOPqxSautQLhbPVb3OIR6bO0hacKZHfvz+ccG\r\nrdoxwuEhW0eG0G3sCEcmHgKEZDFNCJHCuWRIsEaz4/bspQvzAMtLznWbI4Ni\r\nrFIcEdHMXbycNMa7GrxAps9z/QiXkj6Sf7pfSdK2wgQiYBL3G5qyQQ9/ueso\r\nkH1r1iPkwvnoUN1yBpoFyR9ik8Dc4y/3IWDHUxyB5b+X2Vs8pSTiXwMP3PAH\r\nNS83u0qFvI3TVysJZqbkVMMaHrcmhQ+ua/w=\r\n=85Ua\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"776656b6e0cd0fc49a52b734702bc77110e483f1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.5.0","@opentelemetry/semantic-conventions":"1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.5.0_1658868732949_0.8406147357362332","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@opentelemetry/resources","version":"1.6.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.6.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9756894131b9b0dfbcc0cecb5d4bd040d9c1b09d","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.6.0.tgz","fileCount":192,"integrity":"sha512-07GlHuq72r2rnJugYVdGumviQvfrl8kEPidkZSVoseLVfIjV7nzxxt5/vqs9pK7JItWOrvjRdr/jTBVayFBr/w==","signatures":[{"sig":"MEUCIEO7Q+DGu0WgCTKNKoMcb5pnYgMzzSmkb7q6Q4FlPGTYAiEAkCjD3Hvmjr9t111j/lMUFjqtihomzSIZtDnGwguz7Yo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":305438,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBmOCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrN7Q/9E+8uSM8tdSMeYYZEbzm+eZYS54PRhiAQLrJROkIhcN1lX4xd\r\nS7XMS/qkouV6yeqZUhEmbJzyMNzARJHrtIXI6fW9MJytlfL7flQIXBnsDOkz\r\nexJOxX5YeqxYzgtjhxUwpnodpEwLrjQD9zhPRxIOotlBK57fwyPzIiCk3sx1\r\nEX3v6LuHtQhxrFrBnQ+A7qKmh9C1fDRUSWP4ltN/qwkH9HDtr1qyW4Ka8nTj\r\nlx6BwvwjNzabyx0b19t94/tmAqNs39efiKEl1389CWEQB7Om9C9Z0vs+cf2M\r\nq9GSyQNhs0t9HpmLFXgrurRpfpc+gSDxbKfkZsDXG9oqiRxHOfaXn2wF+sgb\r\nGirl7md631yLDgGX4D50c7Dlvbm9u/HyEKNqb90p0j3m1sW1mPedkedAP8S0\r\ntKPiUo0xW7u+zJ+/x4S4i8HD9xPo25kPvidmLMKBNgWxqj4zTW4acpDURvSx\r\n4Hxg4hlar4pMxmrR3MQfhDY4zXDN0Yk3mhNdPzwJaZPy10fQoqu/S8qjrGqe\r\njEOcweOQcDyeBd5Pj3KBLPmrnqWBoWz7f4vqmSlsQF4ZoOAo2Km3/i1R/S6o\r\nsAWw1lOZgWWbFt3CTHOSjFsKqL6FC9AkLgKMLbXS9Q11VF42GYeMHbPc316s\r\nFTd6v8Y1kxYyvNDaQ+GR6TqXLdXno5glnIc=\r\n=tSwP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"a5abee69119cc41d9d34f6beb5c1826eef1ac0dd","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.6.0","@opentelemetry/semantic-conventions":"1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"9.1.1","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.3.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.6.0_1661363073934_0.24480969578795642","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@opentelemetry/resources","version":"1.7.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.7.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"90ccd3a6a86b4dfba4e833e73944bd64958d78c5","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.7.0.tgz","fileCount":192,"integrity":"sha512-u1M0yZotkjyKx8dj+46Sg5thwtOTBmtRieNXqdCRiWUp6SfFiIP0bI+1XK3LhuXqXkBXA1awJZaTqKduNMStRg==","signatures":[{"sig":"MEUCIC8sKQgBxLtHE1lYcnfSC8w6OfPL86SaUY1KwrHzPVXSAiEA/K4dACNLUk6cJa5Ik5NMAgHUFqIV7U7wd3lX05QFtlw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":305438,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJGjAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxCA//Xrbn7WkbfTyMilGEfMr8jwdqo6cbm89OnhTYmrXdIP8ndm+i\r\nq57Lv1Uwd0M1B5DXYYaRLWpScFa1qUZrNGFLVsRrhbUlyLswfnSowAtFEOM+\r\nilT/NPjtJPF4QAOzvqbtPYwyl1EJEfwf12g0FB2ZANzwtmRp3cQiguRkmxHl\r\ns+C0SsyKLQp3C3gl7+W+bvSu7w/Fff5YrYwMdmd8mz88jtZOryD2DSImrEtd\r\nzlaJtQRzjfgHVlOlU0dPi0BKR/UsW3IPr/OUYYgNwhAkfrP9GP/In7GRz05k\r\nbYFyHmHJIsO0iwMFAZc812lCa4wcPUjk/s5gy6roVX/vnh5sHacNqPw9JQoC\r\nqKCJEt3e3C7vw73lGSQlx7q8ecCnJFfRq4LKILF0iXywob4w2/D4fcSXWF2e\r\nMMrzpeDJirSgzIgQI8noyzs6dHr8cfwj+AiU7JyB7iwbriABTpG/UQ6QXt3V\r\n8FCm5XioH6YSPTj5iaI82iqATns6oR1IzNOYRzgkpWWS8HRdsr2E6DeurL4b\r\n6QfMsjzXxNKzleFVxu5eoNZJ2BRhYTeQkkyQkozIy78PFD81sVRjq+mdxU5j\r\nQrgM+50M7XLW6LuC5M8QgIZy+1xEWy4Ef3OJ8/lNa03QZTnzpB7ZuyDdSu0y\r\nvVvGkd4NAVgWRf1V17CD9aHr5wJiRZD3U2A=\r\n=15Uf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"ad88c3d9aa0100fe259b93f4b660e84417b757ac","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.7.0","@opentelemetry/semantic-conventions":"1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"9.1.1","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.3.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.7.0_1663330496718_0.23557685510973947","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@opentelemetry/resources","version":"1.8.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.8.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"260be9742cf7bceccc0db928d8ca8d64391acfe3","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz","fileCount":192,"integrity":"sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==","signatures":[{"sig":"MEYCIQDqdF4votRs/pjSiM5jPYLFGNqcakFhui7suTMGurZqGQIhAJ7d3TCyCxjvitcYmL9inJSYyIaY2yLE5cwJiQiQi5b1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":306459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbANcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpjkg//QNVRJ7/lbP7b+HEg1cD2HaIT1RVfMkuJh3XpKM88XdYgvDyE\r\nXItp4Qb+mzULT4YDGDbaES1L8sALMROa9sC0a++8wRa2jqqJ6/17bKrQkneW\r\nwfx2Q17SH8mwgoeCtw4u4Oz3015ynZBDfpFibXlAelExfitI7+/vfKYbP2RB\r\n01BJgGVKc5RUWWVTFoApHZCNarktF4h6/0BrCMZt15EE+J3kDn4Vr+GB7Lkn\r\ni7Xblr+YM2GF5NGYsQLuTJKQkJZtI2gVyW6QyocMESOosUhDy2veKa3bWa3V\r\nFPFtrhIt4k4S+fD82zwicu7o8mTQkWz7Lay2vwv3po0RlCXRnHGqZdlqGi9V\r\nnmLAPUnKTNhtpxBAgUIhysPJJoxZW7TJQwsx4eHAU1wfyLNsEi1ODq8VuRBs\r\nBPGRIBJuFahN0UqvTLYRKylVlxrKfJ8TFi38p50pdBQw1mRIYQ/GFniQsqmK\r\nuMpSVPsvne/D5tjlSsUrH2PDbHnRSIB7HXqUpZxrSdHNXPrtecTNTKS1SR+p\r\n1eyXtRysC/mL+46dw19DExKxX4wu9SU2HZEja8QQK7+03dMTd9XqZz2nfgzB\r\nW/xqgE7KYZd9ircVoSpzpbcq7SdY6Azuj41DKbamgy/VEsvCXHhKEnYclWtn\r\nljI/en0npRSw5xJE258CaLEN9W4QXm/IeDw=\r\n=Wo/l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"7972edf6659fb6e0d5928a5cf7a35f26683e168f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.8.0","@opentelemetry/semantic-conventions":"1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.4.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.8.0_1668023131960_0.11743601563218653","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@opentelemetry/resources","version":"1.9.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.9.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0dc02fce606bdf322b779a01172eb65f1190835c","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.9.0.tgz","fileCount":192,"integrity":"sha512-zCyien0p3XWarU6zv72c/JZ6QlG5QW/hc61Nh5TSR1K9ndnljzAGrH55x4nfyQdubfoh9QxLNh9FXH0fWK6vcg==","signatures":[{"sig":"MEYCIQD15LcRDRo8xLLTp0Q59KcarvZFKKRDfeTVzXUmCfikcgIhAIA/UDhM3v016XanLmvabhMWipF5/vxAmjMdAk39vGgf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":306552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvy4pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrxRAAlWNfFqCsCv1i/8t8grYvguuePvlMmz7oRn8AewujX3eYDvSa\r\nhetsJo79U1JwI/w4MR68EUjHtXubPT0lpSbwOFlYiMa94OL3Q3jxgmR0ZpyS\r\nSnUPhBMY1nttgGWFW4bdHsHht2o7Hre7GkD8q/RrvdoLhaRgVbyDslPB8QQ7\r\nafHnISZsSvCFenOBP0ljdlFdtQEGQ3pKeMYquMBAaQnfuiduVocFAJbbNtWu\r\nK9i8ytPxHXaZMt8JqRcJHj5Q+wzDodnT1xUhJJl6b04WcKnG1nYXd3KeZyby\r\nXwJDvSk9Q9f4bM7tGN6aE8PELEw4a/o3DUkJd8qUlTcVqn5y9SVQ+SharYHT\r\neA8+BO76XQTEDLd/wTXG3Wtd/papCrqMbQnLVa8XOHFaUXP0NT+9TLm2Xtfp\r\nflUz2jWu2PhmZI0F7hxpwrtD5qF/lxsUsFHn0YI8+wsCqZ994Wtkulz1uGdC\r\nssCtaVP43URlcQHvM7aE5xb1DeI8Xj4hxrrf3jDcy3A4HsBj6TSzKEXEcIyb\r\nURwcUjT2slYdv21Pv4AgzNrxBFWSCTgrKTdGPD0Gtp20oDKF1+tK4wNIXlz0\r\n51CxKIEAYKrnOiJcMNZs2FnluVONmCg1Nq+Kh4km0q0CtlH52ts8GQx/YgiM\r\nk/mvQqEGBuEz21UJVHHh/oNz3k6FNKbQA5s=\r\n=hrlg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"08f597f3a3d71a4852b0afbba120af15ca038121","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.9.0","@opentelemetry/semantic-conventions":"1.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.9.0_1673473577313_0.28944530078949526","host":"s3://npm-registry-packages"}},"1.9.1":{"name":"@opentelemetry/resources","version":"1.9.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.9.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5ad3d80ba968a3a0e56498ce4bc82a6a01f2682f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.9.1.tgz","fileCount":192,"integrity":"sha512-VqBGbnAfubI+l+yrtYxeLyOoL358JK57btPMJDd3TCOV3mV5TNBmzvOfmesM4NeTyXuGJByd3XvOHvFezLn3rQ==","signatures":[{"sig":"MEQCIClrvEatB6dRMOGXoid1Ax3iqFITZLvKtEQcbwth4XZGAiB2NjUNez+c48ylWdqn/cFeDg7xPX/WO7eOdHobaunWtQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":306543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1+KAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgLA/+N10lz54wVeiWKzSFCsV+jsGyEDhhd44+wK4HzxWQWTKUxBoJ\r\n0zKind29UBZzMwK/t7aCmbnoeBdOYyh3P8BMIzZcgXb4yjd8/0jtALeibt9v\r\nUX5Y7E0QIbfk+6I0eFXmDWUxt17liq6Lkdk6esBAz3481a4r/3zEhIqI3RSk\r\nyvZinK7gGVix7R8d/x0uRSaNi/ntM8uOxp1CoXDGgH7VtCefI2wfgSixnhki\r\nfnuRi/pYdZ8pBUZ29c88HNEMxR9BUk+pHBS4PB0tMmljdWO+NXkweWCtr9XH\r\ng31uMDs9OefPhi0vSExqMjNZv8OlAdV/U8dF8B6GWpGgwrfEtqdDDwMYQyDm\r\nk+tAuD6bbJf5YovD6MuENAnWTE0izinLG9C+gRK4pFzvFClHv+xTcowoSLqb\r\nc9KbNtNUp10hPqVXwWjqOqd8SiqXL7ww9pztvBj66VbaDf3+akU4Gr53OUof\r\n82f1MMlb8vY8GkQbSuP7SnxlaTuHjeIyPyq3etQ5ptYzB+otT+V4ZaSoqYbl\r\nT9SUwdC1eEAY01Jwh5OGAuZVe/qyB314V/5r1tN6GZZu3snfb+WZSSNcCIY8\r\n7PtdMEEnbC3LVIt03no4B/r0mYSn7kVdNAVu7b52lVhotEVoJ52SYJX2ZtmT\r\nALllVolVoU67wJbrp/sSFbtEnu6UV6QlxGk=\r\n=pRFJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"279458e7ddf16f7ddca5fe60c78672e05fafce66","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.9.1","@opentelemetry/semantic-conventions":"1.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.9.1_1675092608665_0.4312343763861617","host":"s3://npm-registry-packages"}},"1.10.0":{"name":"@opentelemetry/resources","version":"1.10.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.10.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"79e8388899a79e13a830b3bd776cc8489a107b9b","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.10.0.tgz","fileCount":345,"integrity":"sha512-bh4auHOdS0/cwSgviCPbkItLwLZRWCZKp/ns2soVwlWQMJH36FIHbcYJf7G9+Rthlc6u163VhUefho+eDrPVeA==","signatures":[{"sig":"MEQCIEa/8MDpeiDlRTSLd29ULyC4sMIar3h4LXZfeooTwYosAiAXMY19pivOXMQ7yOo5dLQlXcw9GmrlcO3G5BEe2IzeMw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":495265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkD0cGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/Vw//SyTdcl/ItktIoUmxXqUka5uTWzAl9XABnFQyNxCFsoY2dAhA\r\npVHuYIbFh39akM70QhVEAmGzDbZOiX4AMKlUA/u7EL4Jw/7YOrspPK6g2wTZ\r\nFk2y48pPciQtRZ1jqOzbpPeaPWwMWUDKM5slFCrxwcU7Lx5hLOwImOZUH6Bq\r\nsMe4HaF0v5acWkoFDitsSPw05D99NvRGiGk8/97lR0yasZlHf9bWYzbN3p82\r\nQhgUE713ey22p7LFuYb0S4BFjLIEWYkkabnM7/QYTfv3IASVnbIoezNhPTwl\r\nnckjG+dp8hEjzz0O8LrHCatm7XEEAJ4XGrPmHWKbHyurK728yMvneDHT/vXK\r\ngorSvAc7PkrkbCt+HpIeWeCGDfbUA2//IPKvXZKCNRPY4f52+WmlF+RZcxcR\r\nNAFz2jVBZQ5n2IOoK6WLE7NmUEF/2O81L+uglKQyUqAIdOFGk/csvKkuymt6\r\nYrNDLMew92+wVvH6WMhIYFLYtScwfwjdoSSpX8DlSjTr4w+NeD3vOIhlYCfN\r\n3nrZfZjxHFMVm7yPzxLVstuGk+iBOdsgV2ag1+I+6UHXnENPnYb1UIW93WN/\r\nt0uuUKu9T7iX8wOpfvBbYIsMCcp2UfdukP3v4WUIHiIGQfz2X75O7rMLqdNm\r\noc+Zkdj/Yc8ho5wEocaaCUcVMnKuHVTgSUs=\r\n=DrdG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"56e6b1bb890f844b8963a146780d0b9cfa8abd0d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.10.0","@opentelemetry/semantic-conventions":"1.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.10.0_1678722822392_0.9835069313493581","host":"s3://npm-registry-packages"}},"1.10.1":{"name":"@opentelemetry/resources","version":"1.10.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.10.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a2537ea241e09a63d5d1afd566f89e2ef5889370","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.10.1.tgz","fileCount":345,"integrity":"sha512-e+wwdyO44jZtsT1aqGiWMFOfN1XuP9Tv4+H0OYP3yQajBtGdsZjdSUn9UNjw46JsW0Mb+RaTxJwsb2uvfHar0g==","signatures":[{"sig":"MEYCIQCHt2ivWuF06SCd7BfgjGWkRJYyUHDmwv5jNs3CgfAZDQIhAKJB9n02IvxghyIpvjLJpdbj9kwH0OPJSON6h8JkCFxD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":495470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGIV5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp8sA//bxnWF+Ik8r6Q+qtFtug6oSpSqX7Mmn5YEaJElU/VUQMYAfPO\r\nDv42YtWolWTPWK1cukwbjuc6XPSRZySCM8LYoS5/JbIpQXaUdo+b2H+ngd54\r\nB1o7RCnOpDv48BdJcaJhbceC7lgLnUsLLt/u+FwJWyczHtD6tiPYUfXrh/xb\r\nha2Ghs3TjNiAR9iPwUs1JUMVf1qmkfyZXmbnYdvQNgkGlZuxA+i9aRrKLvtJ\r\nqOXDxgRNJy/hKUMz2B8gVSL9R0rdwaFBb8eFvcKm7hVarBHKJY2eWZfrX8qO\r\nWT3lqOEzxVqYSDHX2s90COp5wXn63QaxdZN+bYl5AtErXcrdK9PxdKxxAGVw\r\no11fZBtxhWAH/7QH2CUyMvsta5lkU1O5UUc0IbSuV40xE6XvGsfQjwG4TJOK\r\n87FHUOqeVW1KQo6WqSiXchwnv1glPOniUdlHaP3In8O+lM8otj8KB2jQEyA2\r\nLnfpafwS/tgUA1KLSTjcU1SS4nOgxtzTIlbReF9G8TLVFOugDzhs4PO2ze/1\r\n1swYzhzTRIOvexAJ1QoPfJfdXauy109yt+Yc3KipM/r0EQl9/tz992UxZyQO\r\nAz4sZEGo64ley9qHrwCwdYAb+xK2clxdacBJt38xXOU02Q94mPqaYGUadJdU\r\nEnlF6kPvUc+ki8Vdc3WlJwabn3qeLIcdu0E=\r\n=u82i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"486df99906958de9b8b666839785b00160a6a229","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.10.1","@opentelemetry/semantic-conventions":"1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.10.1_1679328633102_0.01337529128242787","host":"s3://npm-registry-packages"}},"1.11.0":{"name":"@opentelemetry/resources","version":"1.11.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.11.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"68e3ca399e63246a6b87bc495f819c5bd9f2c112","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.11.0.tgz","fileCount":363,"integrity":"sha512-y0z2YJTqk0ag+hGT4EXbxH/qPhDe8PfwltYb4tXIEsozgEFfut/bqW7H7pDvylmCjBRMG4NjtLp57V1Ev++brA==","signatures":[{"sig":"MEUCIDk7msj3ir4AUEMQ68ZMmP5s0mf7gq7QRkJBAaMwuk3BAiEAngUawS7p6refQ365CtHM+fxM/7wvM+ubjkIorL8mjyU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJasuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqi5Q/+JGYSoinp1CwptHGEUDMCdeGWyuJegijByJhBr3qgyuVj6LQP\r\nVQ+iePVlzXLO6+xgFy7CMWNReIPVbcZ922D+53qp7Qs7HssuHQp9yHGsroT8\r\nF4OgJkuJgMfgqSVZbxEwYdxTdPZ0vA9HoLeTsXAvaS3Ldu7vwuRUaj7dezoD\r\ndaWeN5QslPJuVWXWrT3cUTWdvk1TP2pGugeG4y6a/s/WnxonjJ6pgHPUKnc/\r\nH92uiRNPuLaz2/bwoKIOp5Qxskl72biyUW+O6kqulWgFyOBoozmaZiKOdCG2\r\n4BzNDKDS96fAQFRnWZbVN/kkEe3XzoWNLC4c2U2JjDDxTA2bB0xYg5wDktwg\r\nwUUG91azOa7CIfZ6Ed/Y2VvIjoJH1O2MTmzLnOc8OvQwW9ylZrWLTZtsrvoS\r\nJBnlk5zZr2S/cGY60QtKABqglcf/1tgQaupe0K1O7nAN1eP/2qcx67m5xUQZ\r\nk7rU5ymskVu2LZC2gknO17ABvTQlCjnq99TQT99bmEeiiDxa6kYd2WwsS+rt\r\nKi7IaoaA1DVVkWKKo4Q2M56uJ6JB1Dx/p1N48gTtBNVIIfHk0ZOmBhQYKEc1\r\nal2iMVPy2yi6FaHL96hxxluBf4fLsYH5x2pZNhAlA3CQV8Q8v5fPRHb+kl/n\r\nazZDQ3I76BVaWJw+1RtOPn1cyboV/0+7qJU=\r\n=qs9t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"1328ee04ae78f9f6cf143af7050c00aaa6d2eb3b","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.11.0","@opentelemetry/semantic-conventions":"1.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.11.0_1680190254108_0.7638439285162986","host":"s3://npm-registry-packages"}},"1.12.0":{"name":"@opentelemetry/resources","version":"1.12.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.12.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"895394c727dc3e7e51d1d2cc50907ec07a626dca","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.12.0.tgz","fileCount":363,"integrity":"sha512-gunMKXG0hJrR0LXrqh7BVbziA/+iJBL3ZbXCXO64uY+SrExkwoyJkpiq9l5ismkGF/A20mDEV7tGwh+KyPw00Q==","signatures":[{"sig":"MEYCIQCY8Pnwc47mHbB4rGLNR97tKZGzkoDkoZbOS4nO4DJJ4QIhANz+N9TzQ0pJy614IpZW3zqDAglEVOwhNLeqygvbBiT7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOEYrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0zw/8CYKbW6VQm64cSr83af6xQ1QHHwCVY8lVSc1/9utWN37MJ0i6\r\neVTfhuV7uB7J8rihrKRbqHTjIHUmKkegalJSAOtIO2jRrE923oyITHPTDzxV\r\nG/UUv5UJGB4Mfy3ITxhLAeoNbLZvD666Jl/7H8/YDp1umigDX8gNY30I+hy0\r\nsHtXnHQfjuPFOesdCy1cFx8aC7Jnsee+MwAT/t21NAnVAiO7E+YDDVeB4eIT\r\nDkb776nehAKnlDpPl+HAZ9pq3qYEcsdqbANl0TI+DN9fSkiW2H6O4wk4Rlpb\r\njoCQfKKtBVqXGqbClIZfetV1/dhdxk8PdWATsGHYsZemEJtFTox25guYMhpJ\r\nnUXlYKvEFvftkVRVqaSrKOE5N9nTck3UmoDSACFcH/+uXx8AIHE1v/AKfxWH\r\n120pL5ln+SFUurXPVFBi2kJb2AG6Jo+gY3uYOOe1HUoGDcMLPbeDlrXP1tXF\r\nOrFDSv47TME6fxRTz1ZX0wqVYfXtRsTeMGuIqyefzm3DBjrzk8CDcGuUicSv\r\nRgJiQVB3l5XBHMZmdcqbDRXsqszP/LEsUp50f3+ieJrdHcn+Pzsg7Obh5tAO\r\nq1tk0MET/480nXPhuL1c+bs0PwIN9nu6cECaFKZ+4vGAc7l3mGjNmGGfywZi\r\nPsArI71GIysDZ2H0UwBJsDz0jjwsk7LCOjY=\r\n=LXQ1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"a04090010ee18e17487b449984807cc2b7b6e3e6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.12.0","@opentelemetry/semantic-conventions":"1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.12.0_1681409578992_0.024387793584885964","host":"s3://npm-registry-packages"}},"1.13.0":{"name":"@opentelemetry/resources","version":"1.13.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.13.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"436b33ea950004e66fce6575f2776a05faca7f8e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz","fileCount":363,"integrity":"sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==","signatures":[{"sig":"MEYCIQDRiP1No4KTO6m3EjvKafOjNqdcgUj0M1RlaGud2NSZ6AIhAI6drpK351D4hFd4uFWmtjDGxKV/kWp/vav24N5iiT/t","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502600},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"8fc76896595aac912bf9e15d4f19c167317844c8","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v18.12.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.13.0","@opentelemetry/semantic-conventions":"1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.13.0_1683811804943_0.38179592440586596","host":"s3://npm-registry-packages"}},"1.14.0":{"name":"@opentelemetry/resources","version":"1.14.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.14.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d6b0a4e71c2706d33c8c6ec7a7b8fea6ad27ddea","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.14.0.tgz","fileCount":363,"integrity":"sha512-qRfWIgBxxl3z47E036Aey0Lj2ZjlFb27Q7Xnj1y1z/P293RXJZGLtcfn/w8JF7v1Q2hs3SDGxz7Wb9Dko1YUQA==","signatures":[{"sig":"MEUCICtJm8wWBvsd8aQtbumFqsv6o0N/CbHohlYX5xkQNGhgAiEA9SiDo+BmXbgQd0rKSdOxBye98UrrU7OTnj8CeSsEgJY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502600},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"edebbcc757535bc88f01340409dbbecc0bb6ccf8","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v18.12.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.14.0","@opentelemetry/semantic-conventions":"1.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.9.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","webpack-merge":"5.8.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.14.0_1686031253370_0.2118908303091651","host":"s3://npm-registry-packages"}},"1.15.0":{"name":"@opentelemetry/resources","version":"1.15.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.15.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"748a6ae9017636b8b30f5dee1fff3e166e51f63d","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.15.0.tgz","fileCount":363,"integrity":"sha512-Sb8A6ZXHXDlgHv32UNRE3y8McWE3vkb5dsSttYArYa5ZpwjiF5ge0vnnKUUnG7bY0AgF9VBIOORZE8gsrnD2WA==","signatures":[{"sig":"MEQCIHFBGxwIJQPuladr11Kit1QFzDw9CpOWYb1oGvGQU+oaAiBwjYhrdMtLTxJ3MYq1knmoeY277/pdGRxsTQLQ7kuu8Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":479882},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"06e919d6c909e8cc8e28b6624d9843f401d9b059","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.1/node@v18.12.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"tslib":"^2.3.1","@opentelemetry/core":"1.15.0","@opentelemetry/semantic-conventions":"1.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.1","karma":"6.4.2","lerna":"7.1.1","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.10.0","@types/mocha":"10.0.1","@types/sinon":"10.0.15","karma-webpack":"4.0.2","webpack-merge":"5.9.0","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.15.0_1688642826926_0.3080158204688581","host":"s3://npm-registry-packages"}},"1.15.1":{"name":"@opentelemetry/resources","version":"1.15.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.15.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6a0da2eb5d394d302701d428a1cbbb2cd924ac50","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.15.1.tgz","fileCount":363,"integrity":"sha512-15JcpyKZHhFYQ1uiC08vR02sRY/2seSnqSJ0tIUhcdYDzOhd0FrqPYpLj3WkLhVdQP6vgJ+pelAmSaOrCxCpKA==","signatures":[{"sig":"MEQCIHtDQnds/hiPxvA22iH+XJf0d86J6m+UHD0kMgw3dZ2IAiBHrL3uBJFvIKKTdc5pVQuOor9SB5yE8XyB/LhtYkqUDw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502629},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"9f71800fdc2a5ee5055684037a12498af71955f2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.3/node@v18.4.0+x64 (darwin)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.4.0","dependencies":{"@opentelemetry/core":"1.15.1","@opentelemetry/semantic-conventions":"1.15.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.2","karma":"6.4.2","lerna":"7.1.3","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.10.0","@types/mocha":"10.0.1","@types/sinon":"10.0.15","karma-webpack":"4.0.2","webpack-merge":"5.9.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.15.1_1690209166242_0.8420624976966544","host":"s3://npm-registry-packages"}},"1.15.2":{"name":"@opentelemetry/resources","version":"1.15.2","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.15.2","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0c9e26cb65652a1402834a3c030cce6028d6dd9d","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.15.2.tgz","fileCount":363,"integrity":"sha512-xmMRLenT9CXmm5HMbzpZ1hWhaUowQf8UB4jMjFlAxx1QzQcsD3KFNAVX/CAWzFPtllTyTplrA4JrQ7sCH3qmYw==","signatures":[{"sig":"MEUCIFQGAqLvWpks+x2ogJ4pmUMDqGxROq5moF5yW7XCkez/AiEA+Yo4i99UlcdZfY8qm+dFGaHvnFW6RJbQml/iWwVWrbo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"48fb15862e801b742059a3e39dbcc8ef4c10b2e2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.4/node@v18.12.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.15.2","@opentelemetry/semantic-conventions":"1.15.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.2","karma":"6.4.2","lerna":"7.1.4","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.10.0","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","webpack-merge":"5.9.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.15.2_1691500875489_0.29015504543564474","host":"s3://npm-registry-packages"}},"1.16.0":{"name":"@opentelemetry/resources","version":"1.16.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.16.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3ced9b1be049ea514ffa545d34924a3bea7101fe","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.16.0.tgz","fileCount":363,"integrity":"sha512-Z2LdmfbLDYtn1vMJrPDdbRozwj9+WX8G4dxnUeqIVIYjwolV3kLjV+fWgvxoo0N00kNZBCvor+iD81iXx3sDpA==","signatures":[{"sig":"MEUCIEcjkvWDB1CTTGjszSNwBJ7XcF6ZX6hb0dv8N9UUtRU3AiEAuM9PYCAu5MR9KtMc1u4nlOXnFnSQb5fIZxXBkNnjRgU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"5fcd8cf136e2235903dde3df9ba03ced594f0e95","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.16.0","@opentelemetry/semantic-conventions":"1.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.3","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.10.0","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","webpack-merge":"5.9.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.6.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.16.0_1694434468339_0.6140737954855777","host":"s3://npm-registry-packages"}},"1.17.0":{"name":"@opentelemetry/resources","version":"1.17.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.17.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ee29144cfd7d194c69698c8153dbadec7fe6819f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.17.0.tgz","fileCount":363,"integrity":"sha512-+u0ciVnj8lhuL/qGRBPeVYvk7fL+H/vOddfvmOeJaA1KC+5/3UED1c9KoZQlRsNT5Kw1FaK8LkY2NVLYfOVZQw==","signatures":[{"sig":"MEUCIFv6HhsEJi7oi3gnQAJkUbdGUPVbgrGE4HHt0LWCPqTWAiEAoPz+o3xNYab1wHaHaml4qrMNttbwYesNMKWF9pGgAHA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"faf939c77591f709afbc23fadbe629c9d3607ef6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.17.0","@opentelemetry/semantic-conventions":"1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.3","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.10.0","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","webpack-merge":"5.9.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.7.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.17.0_1694524351122_0.28054763472546496","host":"s3://npm-registry-packages"}},"1.17.1":{"name":"@opentelemetry/resources","version":"1.17.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.17.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"932f70f58c0e03fb1d38f0cba12672fd70804d99","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.17.1.tgz","fileCount":363,"integrity":"sha512-M2e5emqg5I7qRKqlzKx0ROkcPyF8PbcSaWEdsm72od9txP7Z/Pl8PDYOyu80xWvbHAWk5mDxOF6v3vNdifzclA==","signatures":[{"sig":"MEYCIQDPjMrxF0bDcJtGkRsrADLQaLiyJsrXYbjWJKulelOv+gIhAOboxs+xtt2RXHytrLrXGtRorNefafwx39Hjc9Kg5VHM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"f8e187b473274cc2011e7385992f07d319d667dc","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.17.1","@opentelemetry/semantic-conventions":"1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.3","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.10.0","@types/mocha":"10.0.2","@types/sinon":"10.0.18","karma-webpack":"4.0.2","webpack-merge":"5.9.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.7.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.17.1_1696947494334_0.2951668138307013","host":"s3://npm-registry-packages"}},"1.18.0":{"name":"@opentelemetry/resources","version":"1.18.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.18.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"49c02edfd3d16524ead448288e5ed3bb8fa11391","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.18.0.tgz","fileCount":363,"integrity":"sha512-QXdqtTQRl3fVAMu5PSxIev73iaukww/7fW4656pF607ZMAXueRHfdxOBIpGrTvfnv9mcKC3ZwGsIb366JZ2LSQ==","signatures":[{"sig":"MEUCIDMk+h8d6TTl0MAANlo/qviZwmJ6ty61U3P/l1oMnKViAiEA0VFQkDAyM+sIywQjYNVylrlIpbrkTK1f8CB8KQnOoN4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"73b446688f10fd8dc4cf403a085f0a39070df7b4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/core":"1.18.0","@opentelemetry/semantic-conventions":"1.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.10.0","@types/mocha":"10.0.3","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.9.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.18.0_1699353884861_0.08771323619720572","host":"s3://npm-registry-packages"}},"1.18.1":{"name":"@opentelemetry/resources","version":"1.18.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.18.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e27bdc4715bccc8cd4a72d4aca3995ad0a496fe7","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.18.1.tgz","fileCount":363,"integrity":"sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA==","signatures":[{"sig":"MEUCIEaC72Oo/Yx3qeXgKOoMHDlnJXgehLYnmdHRLZBa2Oz2AiEAySfFtqqyLBfSaHAGUXrU2EGsBJ+GsI/JnTfA4EFbxFg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"f665499096189390e691cf1a772e677fa67812d7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/core":"1.18.1","@opentelemetry/semantic-conventions":"1.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"4.10.0","@types/mocha":"10.0.3","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.9.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.18.1_1699466946471_0.43839867530071697","host":"s3://npm-registry-packages"}},"1.19.0":{"name":"@opentelemetry/resources","version":"1.19.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.19.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2df9e0e8623cd390569243e2c9c15d7cce063c2f","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.19.0.tgz","fileCount":363,"integrity":"sha512-RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==","signatures":[{"sig":"MEYCIQCTQXME3DyV9l55Q1CU3pFEmfxEoWBt2+oGfAyQmaKvxQIhAKHrmPTBtkVasdPy8FY9XAEtQ6QP0Pb/gz/8yj+/tRJV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"d3c311aec24137084dc820805a2597e120335672","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/core":"1.19.0","@opentelemetry/semantic-conventions":"1.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.19.0_1702557326196_0.17587246502583476","host":"s3://npm-registry-packages"}},"1.20.0":{"name":"@opentelemetry/resources","version":"1.20.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.20.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7165c39837e6e41b695f0088e40d15a5793f1469","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.20.0.tgz","fileCount":363,"integrity":"sha512-nOpV0vGegSq+9ze2cEDvO3BMA5pGBhmhKZiAlj+xQZjiEjPmJtdHIuBLRvptu2ahcbFJw85gIB9BYHZOvZK1JQ==","signatures":[{"sig":"MEUCIHGCaN15ALy/n+1NXR0oW9TrG2JA/czaNVkrkgnerqhxAiEAmDjJ/MsR0cHBub4Z63btMpVeL1yGNqxltQ25+SExjNo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"57008533aba7ccd51ea80f38ff4f29404d47eb9c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.20.0","@opentelemetry/semantic-conventions":"1.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.20.0_1705313745318_0.6520979674158891","host":"s3://npm-registry-packages"}},"1.21.0":{"name":"@opentelemetry/resources","version":"1.21.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.21.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e773e918cc8ca26493a987dfbfc6b8a315a2ab45","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.21.0.tgz","fileCount":363,"integrity":"sha512-1Z86FUxPKL6zWVy2LdhueEGl9AHDJcx+bvHStxomruz6Whd02mE3lNUMjVJ+FGRoktx/xYQcxccYb03DiUP6Yw==","signatures":[{"sig":"MEUCIQCOFC/qtj0rNoezdDiyokGQXXMS6sQnI33cbnhNCBKh8QIgSQwjC0nekaD51745x1/Cgl4Ss3vp/PAQRQDm3HTB2HY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"828f2ed730e4d26d71f92e220f96b60a552a673a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.21.0","@opentelemetry/semantic-conventions":"1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.21.0_1706249467790_0.8191993238777382","host":"s3://npm-registry-packages"}},"1.22.0":{"name":"@opentelemetry/resources","version":"1.22.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.22.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5b597cdf9fb6e1cd22d7891bd8e72e487929a813","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.22.0.tgz","fileCount":363,"integrity":"sha512-+vNeIFPH2hfcNL0AJk/ykJXoUCtR1YaDUZM+p3wZNU4Hq98gzq+7b43xbkXjadD9VhWIUQqEwXyY64q6msPj6A==","signatures":[{"sig":"MEYCIQDvA/dcVWziC7z4HEq+8UGmsR/xbVXPo5d/6/TeYOy6/AIhAJUilVKQ7zZAjQovrbZD6af75FQ8CGIwzf7mCbJPP8Gu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502638},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"7be35c7845e206b27b682e8ce1cee850b09cec04","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.22.0","@opentelemetry/semantic-conventions":"1.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.22.0_1709198291146_0.40793603850636173","host":"s3://npm-registry-packages"}},"1.23.0":{"name":"@opentelemetry/resources","version":"1.23.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.23.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4c71430f3e20c4d88b67ef5629759fae108485e5","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.23.0.tgz","fileCount":363,"integrity":"sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg==","signatures":[{"sig":"MEQCIAhVzMBM4OSTV615l2azjOtRQ8eEVHcuA4fwPbVW45zoAiA3vh3BoM/uO3YyoE2wSrftILbIuMpaOiSEzdM7sTeUJQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":502629},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"5231aa255047fbc6ee3d6a299f4423ab2f8a5fbc","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.23.0","@opentelemetry/semantic-conventions":"1.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.23.0_1712131803247_0.446980959134907","host":"s3://npm-registry-packages"}},"1.24.0":{"name":"@opentelemetry/resources","version":"1.24.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.24.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f27911af0917986da5716775021eae0a872ba98e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.24.0.tgz","fileCount":381,"integrity":"sha512-mxC7E7ocUS1tLzepnA7O9/G8G6ZTdjCH2pXme1DDDuCuk6n2/53GADX+GWBuyX0dfIxeMInIbJAdjlfN9GNr6A==","signatures":[{"sig":"MEQCIG0IWFaCzj+N2i4wQRuHX4qEodhlhj3nBZqorlTQ1WZ6AiBNMCCbvo3tizhVOe1fDyEHZ2G6DZ/IPXR3ek9P8MV30Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":524232},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"3ab4f765d8d696327b7d139ae6a45e7bd7edd924","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.24.0","@opentelemetry/semantic-conventions":"1.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.24.0_1713968900937_0.8713089494362707","host":"s3://npm-registry-packages"}},"1.24.1":{"name":"@opentelemetry/resources","version":"1.24.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.24.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5e2cb84814824f3b1e1017e6caeeee8402e0ad6e","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.24.1.tgz","fileCount":408,"integrity":"sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==","signatures":[{"sig":"MEUCIQDCXeqnfi1FWwYz9wN0kljchdXzOxwxjRYi7iWTlMRiKAIgTDAogx3mOiyTqnZpXjjzg+f4oBv0BcWr625fXCvP9IA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":556637},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./src/detectors/platform/index.ts":"./src/detectors/platform/browser/index.ts","./build/esm/detectors/platform/index.js":"./build/esm/detectors/platform/browser/index.js","./build/src/detectors/platform/index.js":"./build/src/detectors/platform/browser/index.js","./build/esnext/detectors/platform/index.js":"./build/esnext/detectors/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"41c2626fe0ed03e2e83bd79ee43c9bdf0ffd80d8","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.24.1","@opentelemetry/semantic-conventions":"1.24.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.24.1_1715093556403_0.3549194391605064","host":"s3://npm-registry-packages"}},"1.25.0":{"name":"@opentelemetry/resources","version":"1.25.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.25.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"84a1e70097e342aa2047aac97be114ad14966793","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.0.tgz","fileCount":408,"integrity":"sha512-iHjydPMYJ+Li1auveJCq2rp5U2h6Mhq8BidiyE0jfVlDTFyR1ny8AfJHfmFzJ/RAM8vT8L7T21kcmGybxZC7lQ==","signatures":[{"sig":"MEYCIQCMrzQpB9HDM0SjmQj4WMnTpQMN6DyLTgfvfdHbF4kzBAIhANzkcbiZ2kJFvHhRKE7AwjZJ/ETqhBF/UmR0FLBVnMPf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":557004},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./src/detectors/platform/index.ts":"./src/detectors/platform/browser/index.ts","./build/esm/detectors/platform/index.js":"./build/esm/detectors/platform/browser/index.js","./build/src/detectors/platform/index.js":"./build/src/detectors/platform/browser/index.js","./build/esnext/detectors/platform/index.js":"./build/esnext/detectors/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"c4d3351b6b3f5593c8d7cbfec97b45cea9fe1511","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.25.0","@opentelemetry/semantic-conventions":"1.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.3","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"17.0.3","karma-webpack":"5.0.1","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.25.0_1717607748062_0.15799729275727503","host":"s3://npm-registry-packages"}},"1.25.1":{"name":"@opentelemetry/resources","version":"1.25.1","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.25.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bb9a674af25a1a6c30840b755bc69da2796fefbb","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz","fileCount":408,"integrity":"sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==","signatures":[{"sig":"MEUCIQDiHgzdGd5XIFaAhRm9HLcKA0mc1E+RrtXHLc9rRhymPwIgXP8hisMRvzj0FJzHUvUv5NqxFweaWkPg/CJkRNreXYg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":557004},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./src/detectors/platform/index.ts":"./src/detectors/platform/browser/index.ts","./build/esm/detectors/platform/index.js":"./build/esm/detectors/platform/browser/index.js","./build/src/detectors/platform/index.js":"./build/src/detectors/platform/browser/index.js","./build/esnext/detectors/platform/index.js":"./build/esnext/detectors/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"0608f405573901e54db01e44c533009cf28be262","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.25.1","@opentelemetry/semantic-conventions":"1.25.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.3","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.6","@types/sinon":"17.0.3","karma-webpack":"5.0.1","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.25.1_1718875155275_0.767281532712762","host":"s3://npm-registry-packages"}},"1.26.0":{"name":"@opentelemetry/resources","version":"1.26.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.26.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"da4c7366018bd8add1f3aa9c91c6ac59fd503cef","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.26.0.tgz","fileCount":408,"integrity":"sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw==","signatures":[{"sig":"MEQCIG3a/aI8admvWFtjRpVezGGYJFjvl2y43uIN6k81/qCnAiBXEbyQS5RzMfosqOqfWgL/FpOLs2cM/DeV89hmvbaZ5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":556935},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./src/detectors/platform/index.ts":"./src/detectors/platform/browser/index.ts","./build/esm/detectors/platform/index.js":"./build/esm/detectors/platform/browser/index.js","./build/src/detectors/platform/index.js":"./build/src/detectors/platform/browser/index.js","./build/esnext/detectors/platform/index.js":"./build/esnext/detectors/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"720bc8c70d47029cb6b41a34ffdc3d25cbaa2f80","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc mocha 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"@opentelemetry/core":"1.26.0","@opentelemetry/semantic-conventions":"1.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.4","lerna":"6.6.2","mocha":"10.7.3","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.7","@types/sinon":"17.0.3","karma-webpack":"5.0.1","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.26.0_1724836632306_0.9105562787305141","host":"s3://npm-registry-packages"}},"1.27.0":{"name":"@opentelemetry/resources","version":"1.27.0","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/resources@1.27.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1f91c270eb95be32f3511e9e6624c1c0f993c4ac","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.27.0.tgz","fileCount":408,"integrity":"sha512-jOwt2VJ/lUD5BLc+PMNymDrUCpm5PKi1E9oSVYAvz01U/VdndGmrtV3DU1pG4AwlYhJRHbHfOUIlpBeXCPw6QQ==","signatures":[{"sig":"MEQCIGvfXgRKn//Zs5huf2JOcEwtP0ucuepjzuB+dAA26YOEAiA+cX4iexmtdT+xFccv1mZg+yj8qe/5CClmIDHuAVm/7A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fresources@1.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"unpackedSize":557674},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./src/detectors/platform/index.ts":"./src/detectors/platform/browser/index.ts","./build/esm/detectors/platform/index.js":"./build/esm/detectors/platform/browser/index.js","./build/src/detectors/platform/index.js":"./build/src/detectors/platform/browser/index.js","./build/esnext/detectors/platform/index.js":"./build/esnext/detectors/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"eb3ca4fb07ee31c62093f5fcec56575573c902ce","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc mocha 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","description":"OpenTelemetry SDK resources","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"@opentelemetry/core":"1.27.0","@opentelemetry/semantic-conventions":"1.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","karma":"6.4.4","lerna":"6.6.2","mocha":"10.7.3","sinon":"15.1.2","webpack":"5.94.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"5.1.4","@types/mocha":"10.0.8","@types/sinon":"17.0.3","karma-webpack":"5.0.1","webpack-merge":"5.10.0","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/resources_1.27.0_1729695092282_0.8455227863223398","host":"s3://npm-registry-packages"}},"1.28.0":{"name":"@opentelemetry/resources","version":"1.28.0","description":"OpenTelemetry SDK resources","main":"build/src/index.js","module":"build/esm/index.js","esnext":"build/esnext/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./src/detectors/platform/index.ts":"./src/detectors/platform/browser/index.ts","./build/esm/detectors/platform/index.js":"./build/esm/detectors/platform/browser/index.js","./build/esnext/detectors/platform/index.js":"./build/esnext/detectors/platform/browser/index.js","./build/src/detectors/platform/index.js":"./build/src/detectors/platform/browser/index.js"},"types":"build/src/index.d.ts","repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"scripts":{"prepublishOnly":"npm run compile","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","lint":"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix","test":"nyc mocha 'test/**/*.test.ts'","test:browser":"karma start --single-run","test:webworker":"karma start karma.worker.js --single-run","tdd":"npm run test -- --watch-extensions ts --watch","version":"node ../../scripts/version-update.js","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","prewatch":"npm run precompile","peer-api-check":"node ../../scripts/peer-api-check.js","align-api-deps":"node ../../scripts/align-api-deps.js"},"keywords":["opentelemetry","nodejs","resources","stats","profiling"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","engines":{"node":">=14"},"publishConfig":{"access":"public"},"devDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","@types/mocha":"10.0.9","@types/node":"18.6.5","@types/sinon":"17.0.3","@types/webpack-env":"1.16.3","cross-var":"1.1.0","karma":"6.4.4","karma-chrome-launcher":"3.1.0","karma-coverage":"2.2.1","karma-mocha":"2.0.1","karma-mocha-webworker":"1.3.0","karma-spec-reporter":"0.0.36","karma-webpack":"5.0.1","lerna":"6.6.2","mocha":"10.8.2","nock":"13.3.8","nyc":"15.1.0","sinon":"15.1.2","typescript":"4.4.4","webpack":"5.96.1","webpack-cli":"5.1.4","webpack-merge":"5.10.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"dependencies":{"@opentelemetry/core":"1.28.0","@opentelemetry/semantic-conventions":"1.27.0"},"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","sideEffects":false,"gitHead":"4b1ad3fda0cde58907e30fab25c3c767546708e5","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"_id":"@opentelemetry/resources@1.28.0","_nodeVersion":"18.20.4","_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","dist":{"integrity":"sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==","shasum":"c8c27ae7559c817f9d117f1bf96d76f893fb29f5","tarball":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.28.0.tgz","fileCount":408,"unpackedSize":557674,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fresources@1.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBEXZI6gKQ0rsdQ86lCYxijGK9y4oE1uwy1p6HZwwYRJAiEA89qWaD2sYUxsZRN3cygGhvOjjvowCDYVn6Q1rTge+1A="}]},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"directories":{},"maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/resources_1.28.0_1731926502831_0.673891587976174"},"_hasShrinkwrap":false}},"time":{"created":"2020-03-16T22:06:37.031Z","modified":"2024-11-18T10:41:43.409Z","0.5.0":"2020-03-16T22:06:37.331Z","0.5.1":"2020-03-20T00:42:51.352Z","0.5.2":"2020-03-27T18:04:01.156Z","0.6.0":"2020-04-02T17:34:07.250Z","0.6.1":"2020-04-08T18:37:31.858Z","0.7.0":"2020-04-24T18:16:06.029Z","0.8.0":"2020-05-12T16:38:19.408Z","0.8.1":"2020-05-18T19:37:40.756Z","0.8.2":"2020-05-21T19:30:03.314Z","0.8.3":"2020-05-28T20:19:39.433Z","0.9.0":"2020-06-18T21:25:27.628Z","0.10.0":"2020-07-27T20:59:19.449Z","0.10.1":"2020-07-28T15:12:39.730Z","0.10.2":"2020-08-03T23:25:40.326Z","0.10.3-canary.0":"2020-08-07T16:47:27.204Z","0.10.3-alpha.28":"2020-08-19T15:03:48.556Z","0.10.3-alpha.34":"2020-08-24T16:44:29.532Z","0.10.3-alpha.35":"2020-08-24T22:45:21.983Z","0.10.3-alpha.40":"2020-08-27T14:23:20.701Z","0.10.3-alpha.41":"2020-08-27T16:08:41.273Z","0.11.1-alpha.48":"2020-09-01T19:24:18.839Z","0.11.0":"2020-09-01T19:32:21.931Z","0.11.1-alpha.15":"2020-09-21T03:30:03.883Z","0.11.1-alpha.35":"2020-09-30T12:22:13.726Z","0.11.1-alpha.36":"2020-09-30T12:38:52.243Z","0.11.1-alpha.44":"2020-10-07T19:55:03.668Z","0.11.1-alpha.53":"2020-10-19T11:48:19.216Z","0.12.1-alpha.54":"2020-10-19T12:50:05.779Z","0.12.0":"2020-10-19T12:53:53.541Z","0.12.1-alpha.7":"2020-10-26T21:12:10.769Z","0.13.0":"2020-12-04T21:26:22.904Z","0.14.0":"2020-12-17T20:52:59.425Z","0.15.0":"2021-01-21T22:20:02.220Z","0.16.0":"2021-02-01T22:33:27.425Z","0.16.1-alpha.10":"2021-02-08T15:50:15.369Z","0.16.1-alpha.11":"2021-02-08T16:18:04.154Z","0.16.1-alpha.14":"2021-02-10T16:06:10.643Z","0.16.1-alpha.15":"2021-02-10T22:18:13.416Z","0.16.1-alpha.18":"2021-02-14T18:12:37.852Z","0.16.1-alpha.20":"2021-02-17T20:52:01.055Z","0.17.0":"2021-02-17T21:16:08.145Z","0.17.1-alpha.21":"2021-02-17T21:16:54.517Z","0.17.1-alpha.2":"2021-02-20T17:37:30.859Z","0.17.1-alpha.5":"2021-02-24T17:19:43.301Z","0.17.1-alpha.8":"2021-03-01T13:38:20.377Z","0.17.1-alpha.10":"2021-03-02T13:22:06.715Z","0.18.1-alpha.12":"2021-03-02T13:53:56.884Z","0.18.0":"2021-03-02T14:01:06.576Z","0.18.1-alpha.3":"2021-03-02T19:09:31.421Z","0.18.1-alpha.20":"2021-03-24T13:10:54.188Z","0.18.1-alpha.21":"2021-03-24T14:12:58.341Z","0.18.1-alpha.23":"2021-03-24T19:17:09.905Z","0.18.1-alpha.24":"2021-03-24T19:38:39.773Z","0.18.1-alpha.26":"2021-03-24T20:09:09.787Z","0.18.2-alpha.81":"2021-03-29T19:52:09.812Z","0.18.1":"2021-03-29T20:03:57.289Z","0.18.2-alpha.1":"2021-03-30T13:06:13.921Z","0.18.3-alpha.2":"2021-03-30T15:27:04.593Z","0.18.2":"2021-03-30T16:15:55.737Z","0.18.3-alpha.1":"2021-03-30T17:29:31.161Z","0.18.3-alpha.3":"2021-03-31T07:38:08.918Z","0.18.3-alpha.4":"2021-04-05T16:37:57.103Z","0.18.3-alpha.5":"2021-04-05T17:54:51.510Z","0.18.3-alpha.7":"2021-04-07T16:12:23.507Z","0.18.3-alpha.10":"2021-04-08T14:25:31.187Z","0.18.3-alpha.11":"2021-04-08T20:21:58.132Z","0.18.3-alpha.14":"2021-04-09T09:11:29.413Z","0.18.3-alpha.16":"2021-04-09T20:07:48.402Z","0.18.3-alpha.18":"2021-04-10T19:00:51.596Z","0.18.3-alpha.20":"2021-04-12T15:08:40.907Z","0.18.3-alpha.23":"2021-04-12T18:12:49.569Z","0.18.3-alpha.25":"2021-04-12T19:42:29.568Z","0.18.3-alpha.28":"2021-04-14T07:51:42.635Z","0.18.3-alpha.31":"2021-04-20T15:48:44.132Z","0.19.1-alpha.36":"2021-04-22T12:19:47.680Z","0.19.0":"2021-04-22T12:28:48.290Z","0.19.1-alpha.37":"2021-04-22T18:15:57.149Z","0.19.1-alpha.39":"2021-04-22T18:45:05.129Z","0.19.1-alpha.7":"2021-04-28T16:13:49.246Z","0.19.1-alpha.9":"2021-04-29T08:17:31.574Z","0.19.1-alpha.11":"2021-04-29T21:07:13.109Z","0.19.1-alpha.12":"2021-04-30T20:49:47.306Z","0.19.1-alpha.19":"2021-05-08T07:53:56.902Z","0.19.1-alpha.21":"2021-05-11T18:50:03.482Z","0.19.1-alpha.25":"2021-05-12T15:53:51.680Z","0.19.1-alpha.26":"2021-05-12T16:06:48.878Z","0.19.1-alpha.31":"2021-05-19T18:06:59.661Z","0.19.1-alpha.33":"2021-05-20T12:12:07.876Z","0.19.1-alpha.38":"2021-05-26T15:02:54.705Z","0.19.1-alpha.43":"2021-06-01T19:45:59.679Z","0.20.1-alpha.49":"2021-06-03T17:09:53.787Z","0.20.0":"2021-06-03T18:28:34.535Z","0.20.1-alpha.3":"2021-06-05T08:29:00.047Z","0.20.1-alpha.4":"2021-06-08T13:27:54.333Z","0.21.1-alpha.7":"2021-06-10T17:26:08.232Z","0.21.0":"2021-06-10T18:29:48.776Z","0.21.1-alpha.1":"2021-06-12T08:24:33.011Z","0.21.1-alpha.2":"2021-06-12T08:35:16.995Z","0.22.1-alpha.5":"2021-06-17T17:05:14.728Z","0.22.0":"2021-06-17T17:58:37.559Z","0.22.1-alpha.2":"2021-06-23T15:48:56.788Z","0.22.1-alpha.3":"2021-06-23T16:04:58.074Z","0.22.1-alpha.13":"2021-06-30T18:40:35.948Z","0.22.1-alpha.15":"2021-06-30T19:08:47.023Z","0.22.1-alpha.16":"2021-06-30T19:48:50.828Z","0.23.1-alpha.17":"2021-06-30T20:07:40.942Z","0.23.0":"2021-06-30T20:14:51.161Z","0.23.1-alpha.18":"2021-07-02T14:38:09.569Z","0.23.1-alpha.3":"2021-07-05T22:27:33.340Z","0.23.1-alpha.15":"2021-07-17T09:18:08.601Z","0.23.1-alpha.23":"2021-07-23T17:46:16.048Z","0.23.1-alpha.24":"2021-07-25T06:45:18.338Z","0.23.1-alpha.28":"2021-07-27T19:44:16.029Z","0.24.1-alpha.31":"2021-07-28T14:06:58.857Z","0.24.0":"2021-07-28T14:13:59.450Z","0.24.1-alpha.1":"2021-07-30T19:42:33.934Z","0.24.1-alpha.4":"2021-08-05T19:28:08.052Z","0.24.1-alpha.5":"2021-08-06T11:31:29.208Z","0.24.1-alpha.7":"2021-08-07T13:32:53.531Z","0.24.1-alpha.14":"2021-08-11T14:50:49.734Z","0.24.1-alpha.18":"2021-08-14T08:16:06.765Z","0.24.1-alpha.20":"2021-08-17T21:07:00.773Z","0.25.1-alpha.21":"2021-08-18T20:16:37.014Z","0.25.0":"2021-08-18T21:16:43.462Z","0.25.1-alpha.2":"2021-08-23T21:41:05.594Z","0.25.1-alpha.4":"2021-08-24T19:33:12.008Z","0.25.1-alpha.12":"2021-08-30T20:22:03.221Z","0.25.1-alpha.13":"2021-08-30T20:41:24.206Z","0.25.1-alpha.23":"2021-09-08T22:15:06.446Z","0.26.0":"2021-09-30T12:35:30.032Z","1.0.0":"2021-09-30T20:53:42.711Z","1.0.1":"2021-11-11T14:51:22.819Z","1.1.0":"2022-03-18T08:11:00.578Z","1.1.1":"2022-03-22T19:52:29.968Z","1.2.0":"2022-04-22T14:57:02.393Z","1.3.0":"2022-05-27T19:41:23.483Z","1.3.1":"2022-06-06T20:26:11.736Z","1.4.0":"2022-07-06T20:15:36.402Z","1.5.0":"2022-07-26T20:52:13.199Z","1.6.0":"2022-08-24T17:44:34.166Z","1.7.0":"2022-09-16T12:14:56.901Z","1.8.0":"2022-11-09T19:45:32.238Z","1.9.0":"2023-01-11T21:46:17.485Z","1.9.1":"2023-01-30T15:30:08.797Z","1.10.0":"2023-03-13T15:53:42.585Z","1.10.1":"2023-03-20T16:10:33.274Z","1.11.0":"2023-03-30T15:30:54.419Z","1.12.0":"2023-04-13T18:12:59.271Z","1.13.0":"2023-05-11T13:30:05.165Z","1.14.0":"2023-06-06T06:00:53.554Z","1.15.0":"2023-07-06T11:27:07.177Z","1.15.1":"2023-07-24T14:32:46.422Z","1.15.2":"2023-08-08T13:21:15.715Z","1.16.0":"2023-09-11T12:14:28.581Z","1.17.0":"2023-09-12T13:12:31.288Z","1.17.1":"2023-10-10T14:18:14.633Z","1.18.0":"2023-11-07T10:44:45.004Z","1.18.1":"2023-11-08T18:09:06.660Z","1.19.0":"2023-12-14T12:35:26.352Z","1.20.0":"2024-01-15T10:15:45.584Z","1.21.0":"2024-01-26T06:11:07.943Z","1.22.0":"2024-02-29T09:18:11.341Z","1.23.0":"2024-04-03T08:10:03.405Z","1.24.0":"2024-04-24T14:28:21.143Z","1.24.1":"2024-05-07T14:52:36.598Z","1.25.0":"2024-06-05T17:15:48.354Z","1.25.1":"2024-06-20T09:19:15.435Z","1.26.0":"2024-08-28T09:17:12.564Z","1.27.0":"2024-10-23T14:51:32.445Z","1.28.0":"2024-11-18T10:41:43.016Z"},"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources","keywords":["opentelemetry","nodejs","resources","stats","profiling"],"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"description":"OpenTelemetry SDK resources","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"readme":"# OpenTelemetry Resources Util\n\n[![NPM Published Version][npm-img]][npm-url]\n[![Apache License][license-image]][license-image]\n\nThe OpenTelemetry Resource is an immutable representation of the entity producing telemetry. For example, a process producing telemetry that is running in a container on Kubernetes has a Pod name, it is in a namespace and possibly is part of a Deployment which also has a name. All three of these attributes can be included in the `Resource`.\n\n[This document][resource-semantic_conventions] defines standard attributes for resources which are accessible via [`@opentelemetry/semantic-conventions`](https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions).\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/resources\n```\n\n## Usage\n\n```typescript\nimport { SEMRESATTRS_SERVICE_NAME } from '@opentelemetry/semantic-conventions';\nimport { Resource } from '@opentelemetry/resources';\n\nconst resource = new Resource({\n [SEMRESATTRS_SERVICE_NAME]: 'api-service',\n});\n\nconst anotherResource = new Resource({\n 'service.version': '2.0.0',\n 'service.group': 'instrumentation-group'\n});\nconst mergedResource = resource.merge(anotherResource);\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/resources\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fresources.svg\n\n[resource-semantic_conventions]: https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions\n","readmeFilename":"README.md"} \ No newline at end of file diff --git a/tests/registry/npm/@opentelemetry/sdk-trace-base/registry.json b/tests/registry/npm/@opentelemetry/sdk-trace-base/registry.json new file mode 100644 index 00000000000000..df5892a53b1d53 --- /dev/null +++ b/tests/registry/npm/@opentelemetry/sdk-trace-base/registry.json @@ -0,0 +1 @@ +{"_id":"@opentelemetry/sdk-trace-base","_rev":"65-20c7afee9d8d681944f1419799e365d9","name":"@opentelemetry/sdk-trace-base","dist-tags":{"canary":"0.25.1-alpha.23","next":"1.8.0","latest":"1.28.0"},"versions":{"0.24.1-alpha.4":{"name":"@opentelemetry/sdk-trace-base","version":"0.24.1-alpha.4","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.24.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8ad47864d4fd534b5a24f3d9b36aa91b348586f1","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.24.1-alpha.4.tgz","fileCount":147,"integrity":"sha512-dRMAseFliUOYuKoHha+3/qdNsU0JyY8085xzrRyJP7TvXo6KQKzotRCtMTMvXgv3UOufeZTMHyO13J3cuB+eSg==","signatures":[{"sig":"MEQCIA7Tcl+88PcVrNMkgkaAbIhBNLaDuB6ol0YEz/lQu/SPAiB9VqTx7RX1pJT9c2zbFfw0RPOaHeljtad8c+NBp9C5HA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDDvUCRA9TVsSAnZWagAAwZMP/iLkavfZlJi3bwI7VOqY\n9dMwmFZXKZvBsrH2uGGD025BEAtA1p2NTARa1h2UTr+Zx5yI04ziJUkuZ7MH\n4t7QpMtHJCOAzavVzSFuy3WNFjG7qq8sK20loQL1NpmwVCC/Fz2+EohD5Wkj\nmxmizEdH+DkUNpKbsuLMlEYkPz3ZGW+h4b4nkeCt3MylOvuO0/1wW+NOvjk+\np8baQh3roC+JFZ445yQAQek90YylXzvtvhMuf4NYSedtfABAB3w08iy9I/sZ\nR+KlcC3px8zMsxUq2BdqV3EOiTwaqAZbCfaaPma1yjTSxHum1C2HuWjkUqMc\nxG/PctI398iEeAe0YtwKqK+BrjdV3RnlHNSS0rOZiRDqAqBKqPu8uvB43g5e\nhpEJW6QG34KGfO85mNgJwp8gMtrhQ30o5cetTJ6GBQBjySOgF5SUN4DCQmmb\nsZyR3UHNarAQIQWR5A2DTeqK60BTz2jjCKMIA+EGerhDbEm4kgc62Hml1O+a\nFzqycPereLxTLqRQybK0CSSe8IaZkdUQxir8FMH1UFkzM5jlQINpsa80u1fy\nDpVZ8QDFf2Yv74IqMmHjtOSrbh81IWx7GEAslvyNyvz8TxtpcVWpntd2Tveh\nzJwqF6xwYbFzc7kKYA7R9MpaPoQLeHvxFpPJjasjcswVDRxTEnonXXqBxHHu\nK/LE\r\n=dotJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"a8d39317b5daad727f2116ca314db0d1420ec488","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.4","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.24.1-alpha.4+a8d39317","@opentelemetry/resources":"^0.24.1-alpha.4+a8d39317","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.6","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.24.1-alpha.4_1628191700214_0.39586224494227173","host":"s3://npm-registry-packages"}},"0.24.1-alpha.5":{"name":"@opentelemetry/sdk-trace-base","version":"0.24.1-alpha.5","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.24.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5801c08684013d9cd72ce6ca781f0fea2f5eb776","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.24.1-alpha.5.tgz","fileCount":147,"integrity":"sha512-V5N8VEc6IUQP9CH5NPOPjdwhnX94Bboe+AKje/aQLyageVYoHFxkqLklI3EfbeuDCAoDQ1cSRC2PuqEQJGlBBg==","signatures":[{"sig":"MEQCIGoA1de87lUaFgMYQO6M31GSBowdvSJUcfMWYmZjl9WbAiBz4e7nYoJs/y8Eg/7vOVFT5uf6fpzxdgjqPpswdYAcLA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDR2bCRA9TVsSAnZWagAAMmIP/iCQEezryq1P/10oM7l/\nQvh6jsYykBh9vZvXDvExS8TPKO49HZojjwFNBraqmJJSjQKgxIIB939N7EQw\n5Swfp9dUEMx71YaiigGF9r3pwQ15R+sN+HJPnTKEXIXvoTlutmTY1TDb1SGV\nhL+pviT97v9sUeT4NOphZ+eWkEzGepM/VM4No5O2w0KPFCsMu7cXFLC0UZPQ\n9DEHY+zAtpwJ9J0oSpQO4ci4cj7cp+6pKHGNxSzZPbkHwT9F8pCjM0CXx2O9\nnHs/HQhD99BIGyrmaQ45Q9lz2LOwIdFvtcPMZOfnfSYMM2yOvU7svHFugFCM\n3dbnPBp8U9gk7CMzDfR098vwQ+naW+1fovStECk/cLCzGPVTrJOMs6oknvnk\nuAHeyv/TI6THT+VyIphzlZu1R/NodGTkjV9oTOl4KodIfCIJ7nVm5mNlR2Ym\nlYvbKQWcLdrtbftq8Yzberd48DOYa3tgj7HKAZOZL/Op8jnElpK+M1gApkBa\nUOJ/TYyrAVhOXhPv4IItUKj9unTUn0ixT+zW41agKvOoEc0oNuj5SydsB5HZ\nUC88UQPNL+zWxtf3YEUYQh/cfgcFTzS0Oe3L9n1CeBYUi+j9JO9kvFMA49IC\no8a7MXMeANuxSynGSXQF8TH5VV7yLkiHEmbEadcal+GUpD0b/jhY6UjS1MAp\nwKmg\r\n=ogTt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"b69ff35e90a33d20a0154dcd326f1467dfd39e2a","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.4","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.24.1-alpha.5+b69ff35e","@opentelemetry/resources":"^0.24.1-alpha.5+b69ff35e","@opentelemetry/semantic-conventions":"^0.24.1-alpha.5+b69ff35e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.24.1-alpha.5_1628249499147_0.1555991669652872","host":"s3://npm-registry-packages"}},"0.24.1-alpha.7":{"name":"@opentelemetry/sdk-trace-base","version":"0.24.1-alpha.7","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.24.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e1a60e391fdfaeb647b83318319f15e6b80fac73","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.24.1-alpha.7.tgz","fileCount":147,"integrity":"sha512-tenqp2xjKQqTxoO4+1S/VEDmdIJYIoWlOnCskibN86Am6UaSxryDtEaXzv4yVAoQJHF6c7QA308dgV45rAU4Ng==","signatures":[{"sig":"MEYCIQC0BMKRFFm4Xntj28BRWnEKOrdJMTRwty3ypoxV3T45+gIhAOyfi84y+2/dZdPwkzS8/GRgattYPgeoW6DoBy83c3eE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDouQCRA9TVsSAnZWagAAKWEP/1nv1RMnwNq8l2paxhGt\nMg2271/nrnAfCYD/H6+HSo/5I9AbLrHZKzN+QL+BDRC16OHnpCSEpjRqzuy3\nW8Gw38fSwWV5f72l5hs9pzSfqEpXGwobGlHLONHsrEnLgd6GIGNZhwNp/UjQ\nSEJ8Z93Fg/Yp5WwbsTuAHpiSaJ8IEHIlmTA15d93OJAZ8O1qOcAW2BszacIV\ngrWOzFtnuD29o36rQtO4Q8FMyTseCMfoxGqDcTXM9UweXq26A42QbPD2mx9W\nCaPNd5gA5RcA9KWI0pEM9SBtngmbVUA3wPh/T67eZ+xV5wUIxxc3zkz0Z8/2\n0XQDEG9Hd6vYFe2x9Sybj1bWCievDMMmrwjNCIMoBKCZJsBVLd0RsFSwb7/P\nYCxq7MmZhKAFkt7c5W2aUL9wOQEVlAmT7sxez5m6kgxNtxbC3kZn7+vEfEp6\nXPekhMdVHnIdeADWLEn1l1KWXghpE1eK0jUIzs4FNJzCBGvIRHBRVmVaglvH\nn1krQ+6kga6APLro4T+IwbrneSNMTKmmiKSVxW9dZAY0ECz9OWaDPvib8d7B\nSY8q0BHDcZCysnfwhMdmqDoGr0s0GPV2tvdhUv1k0fiFjd627uLh60TgwcH9\nic0sNdBBd2blhygx2TEtBXFurcnjScvNprRQCQQtgS6D7YOUVcAdQaIwAmgD\n3o9l\r\n=JzYM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"365d502eaa0ba1f9799998f050d36073e943032e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.4","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.24.1-alpha.7+365d502e","@opentelemetry/resources":"^0.24.1-alpha.7+365d502e","@opentelemetry/semantic-conventions":"^0.24.1-alpha.7+365d502e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.24.1-alpha.7_1628343184139_0.5476851490956296","host":"s3://npm-registry-packages"}},"0.24.1-alpha.9":{"name":"@opentelemetry/sdk-trace-base","version":"0.24.1-alpha.9","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.24.1-alpha.9","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"40822431d49ba09e480715241ce32a600ebbd2b5","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.24.1-alpha.9.tgz","fileCount":147,"integrity":"sha512-yU1c7NvvJMbNxlzL59OZ2mf1PYPcqNkxXcAL5D4UD04PfmS6d/NIVfzYmAs/leGhZukMiTofHn/KKw2RTs2cdA==","signatures":[{"sig":"MEUCICM6jKq78kih88ikV05KI25KywAyHyO6jp3PBZGmFbIqAiEA9UFwNt6nOazWH8/ZCGq8gGixg6P9FFMRuG3B8XiE62Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDpQ/CRA9TVsSAnZWagAAdfcP/RBEDRX9XNfxwhOEx3Xc\nZyDOEW/F9iWRJ6IMmUPB6xjThi6h3I8pdAeXqgRTCDEJdBLuT6Ja0dXJd26X\niBanP3KBWQAZubTDzSGlR31BLg2oeFPZvcuKHmfEHXCB7hyLCnI76WO/71P1\nL3lj60b3jw8/F0y9HKg0bKVhJSnCoNSTKIt5KcH9hLbOrPusRvWc8t9CRCfX\nAaHDlGz81M+AgIIr2ibMH8z5OrRK1U9Bd5lUD1V4pgxujH+tjeq27KXI//JX\npHtJlv/SbELg/0pU0JrqZKQpS5TfwV/L2Z8qWXQmDYMnxdYcUa+tjDOwo/zs\nFLIs4OecNpFpZAyEVeVzGMgbgcGgTOAGixZOzDGBqL7ZbOqKHn/njvA3WX70\nG/nZKBThXAl29+Kl2OHk5i0FfO4BDUZWN6KqpFX7zVnUJIlpVj/5DCDo7gc9\nOGCp8pNpN/kSqocaD8XeQ8U4CAoWUqQ5g2/fnLl4Mui191Rngtp7q8RiswIf\n2qAaWf1AJvRVr3nDycfrhw2FPU2sMgMSTHnWEVpS30mfkPwPaR68rkYQvzYx\na+eH7qvwXwnIBtUfb1Dal3njr8g34NfOp7rBUONHs6JFV07Jq/4IVLvkoGWI\nmZ0GqVIn8iqrAkfHef2fTPUQr+i89L6ItXiFdfrPXL29qpNwPd9CfdIfx8Qm\nbi/V\r\n=h0kW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"46a42a18570da8a0b2ae027c80018ebfb6c8096f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.4","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.24.0","@opentelemetry/resources":"^0.24.0","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.24.1-alpha.9_1628345406996_0.3167053382863443","host":"s3://npm-registry-packages"}},"0.24.1-alpha.14":{"name":"@opentelemetry/sdk-trace-base","version":"0.24.1-alpha.14","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.24.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b670fd695883a066d7783c43af630c5e6b13d558","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.24.1-alpha.14.tgz","fileCount":147,"integrity":"sha512-98OBTMreg/uqFobh5u3A95fILVzaRDsixo4YR/QwIbjslLjyXt2+iJgUOtMN9W4O62tp4eeedrGqnINpOwfZPQ==","signatures":[{"sig":"MEUCIQC0zLhhndrpHsprXHc/NlLTppr59Plb6Uj3PNUl7lgN5gIgMwFK/IGoPqqcXjXWMAdWJqAA5OtrmqWa/MKWdnqdFwE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE+POCRA9TVsSAnZWagAAgpUP+gKVAuimNG145WYxTnlQ\n2aMnt4P8TqAKtSToIaJtUZLCkQypCs+CM8EtQcJfbwh4xgQFLdqGxA6D4gPp\ntQ22hVMQlp4TyM56aepWk50Egh1niZaJJG8fzbIwHhEOiP54mD+2yP6wGE9S\nBZZO7ytJBOg6jlGum7KnGvgqVTF+h4h6kK+4rxmH+/HpyOwZLk+JGsABQLQl\nrnpglO6QzMocf0uuEkcK/BVHMd6cD8MLOaJ/ZSFD1UdvaVE+pyk3xuoK+3/u\nTtoUmgYZxObBRNBbHuhNfKzQCULFzMElnFpAZWk3dYo6AG/P5+N2ARpCjfZJ\n0jHyeeElYdK3j6lL0mjfTmYNYs+4DlFjU+Yz6jQevjLSJaGopWnXTaekVZwq\nSx010v3QPh2nOTfGci7eFwuILNrHQRy8MWq30rw99li55z2Uoa68kWIbDPsn\nfsmhTh8k4VWFVF3TSWDEZuLBbU/n+vVhVRkLk56bXsxWZ7xQOSYWAOQGbjJS\nmztmVq/5jC+4WGeZM9Z3geCbo/QlJrUampC6L5izl+3PIXanbuOw/PYISJ5b\nteE1wjWbdqTfA+8zABiI506kR6ssXZHi3w6TPJA4x3Jq80vIFfmv5h6rF9Oo\nEW4xBx0fyxpOruWeY6YZNOc0uGXOZpR6FXXiAzaSr6l256cJ/6rVGpPNRevn\n0vgT\r\n=lqQF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"4553b29d4a04b5b7e4bf87cad64dc2fc8c740d8e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.4","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.24.1-alpha.14+4553b29d","@opentelemetry/resources":"^0.24.1-alpha.14+4553b29d","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.24.1-alpha.14_1628693454833_0.767569219106649","host":"s3://npm-registry-packages"}},"0.24.1-alpha.18":{"name":"@opentelemetry/sdk-trace-base","version":"0.24.1-alpha.18","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.24.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d06ff14f49cea7c13b31bc3553c1315d9c434a9b","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.24.1-alpha.18.tgz","fileCount":147,"integrity":"sha512-QE0ZqebO4BJpm611b0165kvR40LkHvTfps406bv/wDO7SNz/nMXIv2sUKhJBqGSRK+2/jUG0vMvpOkBK7HxRZQ==","signatures":[{"sig":"MEUCIFToWHfCxokuNtSvaj4t8JR3GTRFdGOLf1iy8g33VW1vAiEAlSReugAeVdszYsfnrs+VI2Dd5XxVT4++YH7PJZnUMyU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhF3vJCRA9TVsSAnZWagAAiRwP/1YNDd+IH2bLR2ut+boE\n6PAa/4KiFKMpw4j4Go89kGpTfOBz5nTZWQu4+A9omScvVvBY7XBpQLqRTyRl\n1fmS3lSPELQtMv+102sIcGkz8zvnow5tVg2HNUBMG2xLXDSjR7LX9ruoMKgY\nAqMTCjSRxvTey6s+N0PBrpGZio+7oaQQocDqxKitiLkMX8EiHtcieY1zAskC\nElrtb2hg2najiDB3U1LKehREnNpbgjT3MWAiIJDWpyaL4SCG0zl127ERZfNO\ngv3y8m3S2ndB3MrKghC5bQ0xxfMYjBWGfVh5zPZAjiRwMAjXyXVeLgiHioH/\nwKWwQcWqEAcFOh3z/S0Xkx/MDNXZL+yQCXtE7WOzxvb+GT9errzYPFMzyBUq\nG+wShRLftqrEGzbo36fCHULYXGEaxfm2TF6HF/wTyR8JsNsNSzX2szdvUnG2\noWNE1owerG13zMQPqQqNk0H4qZbvLXE8F4MWPCVdsaWuyxX1Lhll9eknbBq4\nx5RQxfBQNGrI1Iw2sR8wGkMO7liZRqLBkAa/FlO0M0/n5ODxqT9QMBPk/I+2\nlT/fg1k6BuO7I3rgVAAYPDqv7nHLD1hCKbZ9dnkonZPssHxtY5ZLedoYk/G6\nfCSklauAiAjmvvZvVDzvxLtaYOfNnF0O+dyi5va77RMaaLu5AjHmG3Zv+9TR\nBNgS\r\n=gw2o\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"bdb12daeb2e4ca3761d1411125f5d883471709ce","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.4","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.24.0","@opentelemetry/resources":"^0.24.1-alpha.18+bdb12dae","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.24.1-alpha.18_1628928969813_0.9380634139248278","host":"s3://npm-registry-packages"}},"0.24.1-alpha.20":{"name":"@opentelemetry/sdk-trace-base","version":"0.24.1-alpha.20","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.24.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"de349f8b90e4987906b14f064680403eefd73f40","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.24.1-alpha.20.tgz","fileCount":147,"integrity":"sha512-T4JgUpq3fRoHqL8RI6vghZ0Rf8Yusm7y5j+ZeS4gKq31KedB2AzZBNK6jRWprJc22IJ5/YP+0HTBA17euvlkCg==","signatures":[{"sig":"MEYCIQCVUqO1X93DZhqXTmIXc+aU8CiF0cDSHzoHjXz/1VsyRwIhAKBtjWBbfY4bKko6tzQDg1dDWc6N9gZQ7wecvsRn4PAO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHCT7CRA9TVsSAnZWagAAL38P/RXZXrIkyb9DVgqFbcRH\nzNfnDhVtGTMNJbgXkZdVATXsWy4X6IAiKKZEc7rYIRjaYslOKdYyB5lgqTty\n8BL1J1LNRIXu2H/X/qviyGcV1P0+M1otFZ1v/edn8qCbO8iWjLHJ23Guweb8\nxQfkKeZEETeL13KzxZhm6Gy328e3o0Bd5fZBnyZ9jG0vWesS1HBkjHqBxLKd\ng0qADSfgPtSSlJxKweLGqrqQBKjHpZtBmOKJdXLgLHKEsSfPxgl8Si5tHRPa\nvLX8zYVDFCk8rryu5fqLpWe5d2o0RQRzWnVcw3FA56CZBxUpvNR3WlgFOgil\nWntcmJoGH1uUwWq3d6VqIPfVrapMiQknmGI3+HgzjzWFIphGaScawwnOjIVl\nWlXYR7CECUSrGqa1jwtspbfNO0SfIg922CBxWsC6iysJLsyfa6ziPyzwjJRB\nqnmc/bYyIpbEYiQ+4dOT1TJIK8ewtRJcTAVcDwl9/VSsn+GZ76/NdZldD+/p\n/tg8WZfPfp4cBjLhwBoBZ+a+rJ1naB64wc66J7aIfM2eRpUY0TexCGYx4USz\nzON5xTVvqlzpqvJKU+K+HctdzBsv0wxYs4/kQ4suR0NqfFVvpB2BZIe9KzH0\n/f4U9smqyocc0yHybZxG6HbF2HsbRR0vn+Yn1iQdieh8g16Wljk1vtq+QhDL\n6rYy\r\n=9wQp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f12913899ff5c588e10830e5ba7183d9115c3442","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.4","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.24.1-alpha.20+f1291389","@opentelemetry/resources":"^0.24.1-alpha.20+f1291389","@opentelemetry/semantic-conventions":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.24.1-alpha.20_1629234427062_0.7964990125133731","host":"s3://npm-registry-packages"}},"0.25.1-alpha.21":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.1-alpha.21","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"90130b88074239b003905ee68653a8a62aad8ca2","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.1-alpha.21.tgz","fileCount":147,"integrity":"sha512-W44WsBbrmkNKzHlbrjnoHlE8JLl419V5Vdhave+IJ6AmAdmsZQi7i99DgfcVVCyPiXDEXRGT1D6VI6d6MaRWHA==","signatures":[{"sig":"MEYCIQDNiLqpu8u+Cs1lTRYS6RSu8slzRafP58p5LM6Nx3wOzQIhAMhg8xKg2GTIQic/3j4xSjcKfJuZRhndoRhISTpOY7wh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHWqqCRA9TVsSAnZWagAAOAoP/R+kSqbk2lLBLgSfS4tM\nW3P+ESNSTUKhzNGPD7zvhtFXa6p4lzLLUk6q8AIviCtXfHg8FryZL/94r0Sg\n2o9+PEY2MoR8dOdMw95ywLXJa4UfaY1QUOFaMYCV5fGigEfhLZXlniauYVEW\n2LQb5dTdiTsXGW3FLdnqLYPAtsnE7NQ/aoaDrHGIAThtSMnv97VMpz5lKk/Z\nEeVWdzLQ/VZjxtxxbgrnk8VqcjYq0bz49PC2HdzqeSq1EOT7hShW9cZ/BIkf\nKkD5vZZA90fvgduG0as7yc+KwMVeqGTkTcecdykS/cflls0ptJ9UDOvTpYgZ\nrSggs9J5/TW6UE62HNYyiSzNbKFC94OX+SactQ0zRp72yJs74wpD4UpQut8c\nHoeqLsmrWh7Xtz5uvgwt4100uhW2FV15jkwinhMMK4IYcIV+iN0M9CiouKbt\nA9wD0dOMlvC3rifnF8fn5D0PYe69QkEli6gJxrsiRfzOAXoO52KutFcDsQPW\n12U6XfLNhdgoL9kahXgEa+g/8U8s4IUXVYztF3DqIKRMBkGhf1R8cOwL0lo1\nIGYp3BmpyF7NQ3IKmV4mn/4d/qjXu1AetYErAIjcktgs8tCgR2Uz0+6A0pCR\nh6Qc1ZOlinidoiuzlLem7VUIQsuP26zaD6xJgf8BWg1Oekjroy3+KuL2S/XT\nwnjN\r\n=ah+v\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.4","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.25.1-alpha.21+0ef1fc28","@opentelemetry/resources":"^0.25.1-alpha.21+0ef1fc28","@opentelemetry/semantic-conventions":"^0.25.1-alpha.21+0ef1fc28"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.1-alpha.21_1629317802400_0.8977428987171272","host":"s3://npm-registry-packages"}},"0.25.0":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4393903a7db8a5ae81a99c4a34121df67e4fdfbe","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.0.tgz","fileCount":147,"integrity":"sha512-TInkLSF/ThM3GNVM+9tgnCVjyNLnRxvAkG585Fhu0HNwaEtCTUwI0r7AvMRIREOreeRWttBG6kvT0LOKdo8yjw==","signatures":[{"sig":"MEYCIQCti4VKK/PEN3BO7Ga65nTpCQWZUAuemjlsTmlgLCCXYQIhANG5iAycgkYjQtzcEkRDDSLBlDon1b+0nKg68xzEpiov","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHXi+CRA9TVsSAnZWagAAZnQP/2uVRo0am5dw3Xuz6WG4\nQhlmd9qcn6htXQYGAPH7eJ6ctlEl0xtSXDbkCf0IL2RU62nAhac794wKLdfp\ned9yI5B9HghS5LdapNWxeOVJbUhlfHUo3GKMagps1CTkpuElW/bPbWPgK5JM\nuRbHCx9O0MdY1iSzQm6yMd38xjI8EzA6RSo8xg0Z4AkH8OwANCsNvblW28OG\n9UZe+iAWYKOo0bJbe0WB1zKb41YMAhKczKMvo+yoHFPfsuyZYErktOsfje10\nMHuO/LmcSClwrX49MyDmXT3OKb6p6/bKubCqNvYWWQx/jDTua4Hjmj8OgSXh\nziD8rNObdGCLAqltz/buPhb/B7N27f6jzjB5jNkm/LVmL9Ujfkvwth9vfqk5\nE9g/x/pjHvyTaAX42UtJov8hDy9iEaQUqKIaUoDa5URlgzpYXaV4Hz5Cahc7\n7JyUi7M5cDK535/rbEfXUErpstOmpvvv0ATPhZuqNBzAOkAViyuLRgjFEVqO\nSOLCL/DCmhwcO3KOIzJRH0Z0h5CojstFXbCKsA0E0uLNLAl1UnzgAPFEbt/2\nmlhjPRIThzYOFwJysMXAOaJNtjk4ZBSlXan0t1sxj2eQplG+1gxpin29yDfB\n8gEKMkW0V6IZ0PVMwN/b0PSHvcnuOPEg1A1WKvW09xe/h44ww6z+Tf2VfeAu\nV/HP\r\n=aFb+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.8.0","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"0.25.0","@opentelemetry/resources":"0.25.0","@opentelemetry/semantic-conventions":"0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.0_1629321406548_0.048648051511765544","host":"s3://npm-registry-packages"}},"0.25.1-alpha.2":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.1-alpha.2","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4de3a67970ff6eadf12b06710f5ac77e6c407d89","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.1-alpha.2.tgz","fileCount":147,"integrity":"sha512-OhXgn/tsEtvxOVZ5SQXIAV3d6pFd5rMMTPRsUK8QTHsSBVSOsKALygTvcRwPQJlUdSdJkxGA6NfUg8pOx1OjHw==","signatures":[{"sig":"MEYCIQCR/JgLC31LcnbSaR3Sn6LRjqitnzJq1b7eT4nBZ/apcAIhANLoKitgEA5BztqHIcLVhrvML97Bk2baz8xORcry+cG/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":238819,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJBX2CRA9TVsSAnZWagAAUUYP/1l0sLT+uC/JTj1TfINp\ndWHrPZhqeMMiEVARoPTILwDF2mZ6lWUn4OWe2m7waueZhQw1i9mlD6QKtNeA\nkps1z+L/WUHqlPzT2HKHG5JTi2OwkNfoO5lNoU9tpuvhd7t7/PWSg3O3S2rY\nBSPt+0pOne0mBD6uRi4yO9X4iasOS31QZJvNmkEdCBRy5K0yx2u1m7LzLzcA\nfrb49X5PJMsAywkJKEyExq0nbkcllod5fw36noniLe5uXiScWwrGohxWlnL2\nEzgRqYqcoWMZg6MRVoh3K/VwymhIyxfB/kailGv4dr6wU0dUpiBwVtBdADW8\nkoMx2LS/vDTva2sMp/W/4P5mt3Wqcy503X07N9V10vQolUvRR0hcoXV+OU41\neRbZVWdFWXo4Q5I4D3E5UTgIAloSlVNkanra66/p3nNWtTLakNcf9EfQRl/P\n34n5E8eTN3Wl0O8NiSimEVHexew26ac9aSEj74BuKBWEntPDQqGAWS5cg5/t\nzUCFSzDIjMNDlNRBH8bprcJKNWsG0V3ko9LsngyW8eA+CCwRhEOAcOqvdEwb\nfeBK3PC7TMNo4WuNufVgCm8ejH+yP9u7c3dTtU4Z60y/BGvvLdMZA9UMhABD\nFEUQ0lGoOVX2ALBNQh5KSMk/085WuGWj3dT5E83OKnVy1uD3mgslbdcNpj/Q\neOKC\r\n=tFMf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"78a78c093c2df24b66c47af4e037da9a6098fedb","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.5","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.25.1-alpha.2+78a78c09","@opentelemetry/resources":"^0.25.1-alpha.2+78a78c09","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.9","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.1-alpha.2_1629754870123_0.17987001772703892","host":"s3://npm-registry-packages"}},"0.25.1-alpha.4":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.1-alpha.4","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"29ba973f0f357c64da5ece13e2565f2745500ef3","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.1-alpha.4.tgz","fileCount":147,"integrity":"sha512-xwUOlftFr1dN4Utp9Scu0+eDbQ9oEsQPJ5cUu6I5WW8wxURqV/d4f6UTL1bmTxm5x5FlS9ggQSVBiqHeWoAZEg==","signatures":[{"sig":"MEUCIDIO3X0Ip0Dqcxe7kAgyn4rie4xDhB062Pc/p6GnpywmAiEA0kK9ptzzM93v2jgnVtEt857r0cBWxnTxxDaE585k7vI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":238837,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJUl9CRA9TVsSAnZWagAAsmQQAJp5bnBhFSjaYGNcLpjk\nB5rAh/7iqHO4cK/jNHYrlao+r6fp7rhFItt2PLoLrmuhl0TXEVAKbGp+GTIp\nf0Sz1A58zy+7dBlRK3X8VIYNpg+L0m+ujLNzk+DLbpSEHMLDXfhZ62DvYvpc\n0J6IPGhnTdrd/+HlHuhSzduClCAgmLsB/wZZo+GjR0nG52GKv2ZP/l5+ZAfN\n7FOiXgEp3xmYTyNrqfx6gRXpCXyjs4Ot4vAMf+DLsum0fkWtBvT8LyMJSuQs\nZHXEQGzbiBYCJELA7agamKBv5rxPIBYuELbDJXjDNwDL/pQDnB8xUTNoOjIL\nfG3B1m9bE2+6D8CZVI3ItfWmVZw9XhARocXZ6DYaQW9xuJ23ScSgN+CKUK2o\nyls8V5PwBadpJg59jQiAfOvWHCNPWSAGGttIXMbMfKTJ5v4iFv+sHHggS3h4\nvvmkvpUMPkBFHmlBMQLvQcqTuS+hffAylqelzHO445zEU3kDB7LfXy7v7Rx1\nH0zjn1cd0U1kkpGXrpIGW1czR5vChsVcDnUCmS8HzQmSU0+l42N8prjLPo73\nOHoHbGctUsX9j9IOhqIgc5GupPs6x4dJgzbYpQvtXygIra8kxl8bLlZLsJzy\n1CM+5GfaC8CeDreDh0/Y4fTutqMTV/s6ryMFupq43x+ONvyLU4Yf/e9O8bee\nn8f7\r\n=EjCd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"3cbd530f2ee5c06376210402eb87ec9e362853c5","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.5","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.25.1-alpha.4+3cbd530f","@opentelemetry/resources":"^0.25.1-alpha.4+3cbd530f","@opentelemetry/semantic-conventions":"^0.25.1-alpha.4+3cbd530f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.1-alpha.4_1629833597428_0.24765430996019488","host":"s3://npm-registry-packages"}},"0.25.1-alpha.7":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.1-alpha.7","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2df18432d5a71f0e770a8f5bcc5c84eaf4c0c580","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.1-alpha.7.tgz","fileCount":147,"integrity":"sha512-3UrzA71WObun2L+NbrO6iJGQqSGnXqLKT04owUtWO1fVUVaYulTy45zu7caA4Y8GrO7BKiCglzICu8SfQ8bwxQ==","signatures":[{"sig":"MEUCIQCD4OSgZ7jj2n+j9BFZLCDxoe3drQp5qh+1CxEqKGC11QIgYQHLNxm/CR/1WEeJNhFs4v4oor/75XOXZdOmw0ln0oc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":238786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhKSzQCRA9TVsSAnZWagAAp5YP/jVVh5NPgHRzsGtznFca\no/xeMefN3jRoaXbhtbmQbLs14jL3/AuJ3yn0rSx2u62jFSchuEzGh9i13MBH\no4PrKBlzOwnvYtoDjlQ7ys1ACuusXh+ExTwiPO5X5bFnahDVXzfgTpjzK9GG\nb3bWA6O5DzmaX6UA/929snOdPssOBSFYCEBBWonwBmBBJ+IMEjSPy55RChHz\nw8GVt5A0IF5W2ZaLVdScdVuRCoPAZ6LRd8bpI/H5CnmFPxtfX1YW4zjZh89g\n3qWuXKGQM1wtsJT3oesgty/guyiCCrqmeS/fxbY0+L7F5FirWC6Aj0XsGy/j\n+iZYPl/Y41Oi4EixjREKMm/S4lckyMY0gv3EhBMrkg3jGBRZAYIMR3JKW9pN\n9VTGNpG3Fd32ZyViRXtDcfxMUr2P4+yaxHRm6ERFwtTeFuBTgEXWyHMsSWIc\nONmZ1iFb2gvRPh6E9UVpnf3mSjujXIBRzgyjAXNuStbeIXO9MZI+R57Q2PsN\n+vYY1qtHv2/ygw/2Wu985Ky1L0kqOKQwZ1HnX8hvvn0Dd5cPSUlHtA8Oi2HM\n+H+Jiz85aeXsHuFb2beINmoV3g4IO1HKsfrYXxRZOskLHD1BJ4SIZQ+ohhQV\ns+NIaNtRmCLgm81Kila2zo7sstnpVc/Dmv+EqS7KUjYFZFvqSk2RDvKexuIV\nHV7m\r\n=bXAb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"dfb597def863b15b37b24d965018e8c92d2ee70c","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.5","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.25.0","@opentelemetry/resources":"^0.25.0","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.1-alpha.7_1630088400146_0.9518154290635452","host":"s3://npm-registry-packages"}},"0.25.1-alpha.12":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.1-alpha.12","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"690d9c2a6996aa8750fd0337ef74b5e30153e965","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.1-alpha.12.tgz","fileCount":147,"integrity":"sha512-L/bR58bGua4XoVFuBzOmh91UGrM5rhPF8n6LiWPe41EWJv4qyXAJGaCSAJvGjgM+QhKq10ovLIP3MBQnagZEcQ==","signatures":[{"sig":"MEUCIDcQU49VPQ2p1OxrCZnRJRihRmBNOGV76F9zIkvMPDmzAiEAnWJ1gaHQf3MPAi0itikgidfssSjLWuLlL6naPsd085s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":238817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLT3xCRA9TVsSAnZWagAAfm8P/iVFL3CAczgQ4gh3XANX\nxkvZ72MAb69BWMUzzZcUXgHg7h7mJtwFP6AiZtXjwqUt38mVicSTqAjkMxj3\n0v5KbSYCmj/TygAvdFjeGtUnohA+aTx+44GA4LGYMh7yCXwg05hM8kuL/Af1\nZO3PbVkW+zzM+BIoO2rrv2DR+gm8TMhQmT2842k1D8+IbgB98cKpBf7a5qVv\nmPM6fWCVa4WooTwOlJdBeMzfj44yNhhFdvEzOt8asaHtF+EiSzmm9fPi9woT\n1ALWnpy9V4fp21wcNNvbDzfoHqb7A/OTlu+MMntLFmEOzs18HPOL+AFJrpKu\nL+eP0trSPZJF+cMdlwmkxui3J/glPGAg6KEIjJnw2lz5H0w++6nbt91WXeWy\nPeof54TJ6zjjivE+Lukl1s/DcrHWh1oUaPbmvZesasB2AiEw2CeN9waFHSAt\nlSM0Z5W0d6PYzr0OxtTCzVgCQiEG3i5p9sWuBdDktdC/e1fYX8at9KB2amfw\nTHuadJ9LDZpsDPann/BpXw0KdYLPNMecKTwfLAoF91RXCoSJ9lRlGB+6LiX6\nrotDmt5uEpKWS9QkhfOaOZTnNErdWPKfbk8B+ZhdYQ/ACCbDBbHeB04iL7vZ\nNvAH0OQwIR0XmbPuxgaNSqgnuSyPDm2RVp9y86ZgliuEZu/Rv1bBUi/abbS8\nNuqF\r\n=egTX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"7d2c4aaeb08e6c680f8b46cefcdfe955d7abe4b2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.5","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.25.1-alpha.12+7d2c4aae","@opentelemetry/resources":"^0.25.1-alpha.12+7d2c4aae","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.1-alpha.12_1630354928769_0.21178081484243938","host":"s3://npm-registry-packages"}},"0.25.1-alpha.13":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.1-alpha.13","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"df007e5f5653f164069be102c6bcdb5ced6669c1","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.1-alpha.13.tgz","fileCount":147,"integrity":"sha512-7PotUD3giX/eHFbNvp5UJaQ+YqZ0u3SyLneG7YKk9uyp3YYlU7UFfcBfh3x0z22FPdMArJBefZEHymbKTy3DRA==","signatures":[{"sig":"MEUCIQCpK5kc70OjUqwOaLJEQ20suyEP78oq1igPUb6imueg/wIgeJOCs8SP/YX3PR6BgVbVriWZkIC84r5jJDE1x7uWqN4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":238972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLUJ6CRA9TVsSAnZWagAAnOMP/RLKjP8Dx0ueknV/3Hx9\naaZtc6QtAxqzRoSLIp09C9EHhbXHEu/VdCFKYnfWmqdhraU90m+RDULLepmN\ntXFJr/sK3hSE6rhgjPxsaZ+mPhE/FxBvfF4K/TPRFOVrdprNasw0KM5CjVFW\n+oM0rbgasDZk9h/ir030Fw5XxzxMFdWFGhOFV7TITIngA2l3aMQwdRWmm5Zx\nP2jiYTBw+JDkBO2wrB3c4nfQmuheKlvHx7trAmmBDktgKluMLsMMYagYlwt9\nqf+AArAUBn+R8NEcBoT14rtl+h8kfKeatJ2BOzgidACkDcSEAiKG/UhU08nn\n6XyFbVLBqb4pfLWN8jeu2WR1CFPvOtfppmV0fOPDPfSnDhnyXP+FpKKo32Bf\nCk7yhyCqGHmSfYD9EDCMed+9UEjTHY5dDjPOPO7z5nJIFgo+Fs9ax5HtNh9U\nnQQOzpKQlwWmrVOheENybm9slkFaQLvGzziZNGZMG62/X/D+fvRUCK/V8vo5\nz94icTsRxCZ4pSbIIb9+Bj9lh4Bx23DuUO+UaMma0FhVImsOhjWY1aCEiV3B\n+hAtC13RON4qT7pqqtrG/5rIKEET53U0gdoggJaV6aiULeoQD5LNWv7SOiEE\nEnnBXPqScP2/n3TtwzoupT2PumMmTFBPKyqel6htr1JhhoJPW5gA/Itq1eTR\npQRk\r\n=wdjK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f0caa22ffcb26af2a2f05260f138a494e120a955","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.5","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.25.1-alpha.13+f0caa22f","@opentelemetry/resources":"^0.25.1-alpha.13+f0caa22f","@opentelemetry/semantic-conventions":"^0.25.1-alpha.13+f0caa22f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.1-alpha.13_1630356089912_0.49133518504216656","host":"s3://npm-registry-packages"}},"0.25.1-alpha.16":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.1-alpha.16","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.1-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3e59bd15213c7ed7a95407ac657190df9013f2bb","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.1-alpha.16.tgz","fileCount":147,"integrity":"sha512-xYPEm9jw1p9+Y7SPAHDcWIC6t4sewzOxfu5DqMxZE+Ze0MnQMatwCOvdO2EPMy3wkeFY7NJJjxlavVpzXCAVMw==","signatures":[{"sig":"MEUCIQDFwR8aIHNvMiRyvUYQQVlvKKFGnsfwCD+oVEztecBHbwIgFogvaGvTP+WztOJIkbiQukLk4FTcPJXQmxX1hSpbDNw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":239036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMyi2CRA9TVsSAnZWagAAVkoP/iuad8ncSZJBEpyUK+Sy\nKYe4lSKqs2mQNAW//AUNRGAWbY95PLIliKCZvserpg1TQlcNJGou2aVsNiaA\nARU5FnQXb3VNgrVBlYGcbyJWmlZ8kGwwxFigb/q9vV6TmLdKUtaOBD+9eGOD\nnz3+5LXPV62uLGGs9L1eX6WgqAlEJRab0IsVGoSN6hqLu+8GnO1cE0zzuc6j\nlDces+kFs6UuYbADMSjnRmac70xkMDuDYWYBycW8Vu/LttXVklSemCtERjgL\nwjU5SIEqyGLmGyp5+YMvO4R31FYThwG2Vxumj10HocJoWi2nEHys+Hhu6fSL\nr6imKBDFxzAXNPtKm8dWpAtPYbSYr7w5D3lPmln45PRdoPXqqD5lR25ywGYp\nXZMi1UaQP/eWZ6kXFsWHwy+VyZT2aX/51BOHFYxlqhtlEFX4aGb4qwEzzP3/\nFnKltC+lEHykB/hSGiMjuXBcnqo47PDpIPSBNKtqZ/K+vnuDr9jAh/lBFdgk\nzNaE1ut507pNckfk77+QVnqyTH+abHmQZkjBUqPEY7Ljuq6IzGiQvPXmR9yq\nM1acS9Kbj2qxlmN8TmXRm0MD+Ncy7Ymayk4E5bkw6CI/mwLF6Ao7LsLGNWbJ\nvk8tOt3HCBm0z12FzQiEAZSZQMcb7ylznYMfNOFE71N4F+OhCP9cbjG4jfNE\nMw6a\r\n=sEuG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"63f6701081e3e4a7eb964bb82cbd8cbc2eaad347","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.6","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.25.0","@opentelemetry/resources":"^0.25.0","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.1-alpha.16_1630742710731_0.6843385580327839","host":"s3://npm-registry-packages"}},"0.25.1-alpha.23":{"name":"@opentelemetry/sdk-trace-base","version":"0.25.1-alpha.23","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.25.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"678ad69cfe2826f4f497f1fe0484576db5d23e88","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.1-alpha.23.tgz","fileCount":147,"integrity":"sha512-+nwTWJZoNWoc+zAE4yS+U9q1+qGD3sJGP3qUW9CmObVVW15ySP1tl3BDHiBFcB7ILQAhx/ObeS+pWZN9CL5JTw==","signatures":[{"sig":"MEUCIQCOW2HsF3Q8kw7GWYO+2Xm8AjoSiyYLsaMgzRUUWwVPNwIgFKJkmK5rUEfZxZM+R7Xg991DAuwoJWytg4sPsNJE6iQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":244906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOTXwCRA9TVsSAnZWagAAt4gQAJ4KGXGYny0wx+AEs5o+\nhpOUqvkyxY0FZBmS/XlF6Rx1MnH3zubA4925uZcK2giaQOMn3Ap5k3UkeDjP\nxT+btSm5hZvjnEjFBhA1zAo4Z1Vz2hqdj6Bc85RU5mUCFDNV8w899h8Xj/F/\nhwSLJwuPEL/MnwptLXf9NEvy9S+nMNy02gt7sbf/fK5dogJXxHAuZXkoHQst\nRl5U0pYESJtFCStYitzP9/vdsxjIv3pbPohrFxym1ifRKi7Is/YZf7Ege81R\nTLGX9aMH70AQnR75LwvPq2ApxQ2F2xbwDOhE6gbVKH+8F8jLBm7S5OBMzEwp\n6/vepagI7gU9xQRu+4j6XbYurnJf2ZmnulOFmARz98hEyWAvtEd9zN0E8zVP\nMjPO89/UVixzYUbXJz5e9EUP60/CoT8ETl4eHF3mmX0/FXmde0xG6KNKEI+u\nd950FsxHQg+WBfcC02eaNsjyYvavO+zxtAIkehnFOfXe1Mgb1/KdTKUhsm6d\nkKR2loyRyLVYxPYCq1YEq/a/NJCJZPofYqJ7nJA/0Y6gpgwKG1rXzPN1kcNQ\n2bZYQDwSCmAsVmBYFCb1fRTzM6w7v3a8/vFKcv4Mf+fZoaW8YrKlxm58lXqL\nOsdPIpiiH6ACsk4JvHTPCxoI+CpDwxCPDl7uu59VdF9ZgIv2M8RJr6EwQFKR\nBa93\r\n=b4/p\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"feea5167c15c41f0aeedc60959e36c18315c7ede","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.17.6","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"^0.25.1-alpha.23+feea5167","@opentelemetry/resources":"^0.25.1-alpha.23+feea5167","@opentelemetry/semantic-conventions":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.25.1-alpha.23_1631139312167_0.5525742629314336","host":"s3://npm-registry-packages"}},"0.26.0":{"name":"@opentelemetry/sdk-trace-base","version":"0.26.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@0.26.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9f8a0b7e290d63eee67c5a5be921ed21d293c70c","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.26.0.tgz","fileCount":147,"integrity":"sha512-SqV5pccxJTekOXdE1jp5VWxZ7GYw8rrHy7g0LcxLzn+D8YJ9ZBhE481VrP9EsjyLlJRhicv+z2g1XFxpMkQdmA==","signatures":[{"sig":"MEYCIQDSU95sy8kG+hL60kiMOWHMrqvjMCzH1W9eKUABO3bf7wIhALdpLXNwZ59gj3Dz+YO1EUu6ZL6nTEr5VqN09jbTbkrV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":244852},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"fa2e897587a2441205fd085772d80a0a225ee78e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.8.0","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"0.26.0","@opentelemetry/resources":"0.26.0","@opentelemetry/semantic-conventions":"0.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_0.26.0_1633005332268_0.16476052719806322","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.0.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.0.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f025d517fa2386ed2ccd534dfafa894ae323dc2e","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.0.0.tgz","fileCount":147,"integrity":"sha512-/rXoyQlDlJTJ4SOVAbP0Gpj89B8oZ2hJApYG2Dq5klkgFAtDifN8271TIzwtM8/ET8HUhgx9eyoUJi42LhIesg==","signatures":[{"sig":"MEYCIQD0Zq61lp2goYcIDSNYrkSWaH2vcZkgym51d8Qv0RnyegIhAIP2T7OO8FtZ4nr9eNSN4CCmgB6oUCf+qdYOyzGHX0Cy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":244844},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"69b925d142a4405c7c6bec7deadd8b4e96c7d5d6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.8.0","dependencies":{"lodash.merge":"^4.6.2","@opentelemetry/core":"1.0.0","@opentelemetry/resources":"1.0.0","@opentelemetry/semantic-conventions":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"5.2.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"^1.0.2","@types/webpack-env":"1.16.2","@types/lodash.merge":"4.6.6","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.0.0_1633035223758_0.4156184977353712","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.0.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.0.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b88c72ac768eed58baab41552ce9070c57d5b7bf","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.0.1.tgz","fileCount":147,"integrity":"sha512-JVSAepTpW7dnqfV7XFN0zHj1jXGNd5OcvIGQl76buogqffdgJdgJWQNrOuUJaus56zrOtlzqFH+YtMA9RGEg8w==","signatures":[{"sig":"MEYCIQCC9fuVQZArSWRg+N89DDvJIHnMbymcyIIBAUzJymYEJAIhAKK+sjb0Wu3J5VvFZC39vqGlZ+/poFxV7Xoruc1qW6dd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":375519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2UqlCRA9TVsSAnZWagAAatQP/iWXTWUBoGG4nIFmKkxS\n20Y1VIKi5N3udvMq+gwnTxYXD0sTjV01spACjY86atMx6ZHRn/0CfjaziMkU\nE4VdMnWOceoQlSzqWDLa9NNlAhmH6GV/+c36C9uhoVL8SDemHpX2wvIwv2cI\nyLCc5bdR82lnLePoFRAc34V/7jJHW3ryIbCe4eH/8Y23lNDaL1ofKXitYjfv\n1yOlvTK65xJsdQ+8CmBBQfdMqqpaw7ahrH6CxgXj//9Z3egZN7qiAhTjJWK9\n5midnB313D3jiaS2OKkb/MFrIfIuOpcL9Bd1TciKOTbDTlkFjgL/EpQ1MGSA\nAQJohsQeOYqvFIuouG+56qRqS094kMgvVYkQXLqTVHRvzxptc7Ai1H1YdKCh\nHEdWBIHzM/zdp/wKMDz1IjNrRefK24/yfWxv1YYPoCnPEQ2ZGHmfgMX4UiNH\nLiaVp8rVT6Lnl3hALEuJZrRP1Rxl0lbfPFb/ZxWv457LRJ2jsX58MsTrSScO\n0id/wDTYJcuzzX/auxRzTTfZy/vQtjQyy48tlAZbnJ8/EnTpNU+2whsWsSYR\nfUS8AeW4L5gXw1rfqJiz76QPND0ea7oa3eiiaXCqOHAvcalMzeYfdR/Eye8D\nCSky571jLOzqrHOaFsude/F9jvXgGEMUtqRbKafWNxmkjaFF6FXqyucYcLgh\nlZOZ\r\n=aKC/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"9cf402ee4231ee1446884b5f59958ceafc1b5188","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.0.1","@opentelemetry/resources":"1.0.1","@opentelemetry/semantic-conventions":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.7","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@types/node":"14.17.11","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.2","karma-webpack":"4.0.2","@opentelemetry/api":"~1.0.3","@types/webpack-env":"1.16.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.0.1_1636642284812_0.1678333829919234","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.1.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.1.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"78833810991679a634f440aa3055b22fab9c033e","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.1.0.tgz","fileCount":75,"integrity":"sha512-L8WTUKVG+E3IVTTJ0FoDo5YwsEkSOGMFOCBJKFH8O7uV1bFny52ASyWaNrhhl5kRPGlkHtsUnWkgnQm9Ne3lRA==","signatures":[{"sig":"MEYCIQCxrsqZRfunV5YR0FGHmGWA6ok09L/bkBxVJhAyHioH2QIhAM4ZoSV///YZjO2/7AZIhJOQmcwMrLNQo/dE+EgbnRA9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":194582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiND6VACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrXIQ/9FtTOkR2g4MFiDgnehThC4HE6EDI3YhK5hVSeDlu8a5kEC/Dr\r\nfaNCFDev7W7G07hhnRYf6OaYMXtZHAMSJ3mjIUIJ8HE/R898GPYZi5udmgxY\r\ngPzF0B3GIKNT6fFTnvKQ+auoQUxfa96V5teMUAXWgWvQkgAAcPgtETbG4BlS\r\nGwuXmfxovxsYyI61VvNz3yUNA9MybAGN49Sv7RW13aA95ENT8nnQwBVRHRc+\r\nEViVyVe7cDHJvxvDuGOPcmtqxGTP6Q9JRq81K4VI1P3GQsS8vCWEND0gEE1q\r\nUJkU6QNwO7QuEsOMFklhS/bLruc7kvUpwr2y9+2lp+fHpCVPF1zLzMzyV8+9\r\nzemMXzG/afyRFAjwpYk1VLhRXL+dbwL+hFn31TrwBI+NqkFvB4Bndm/D7IsM\r\n8xNJZm/CsguwKj4oq2fJcCWpGxKZPw1u0a2RoqXabWoF8OoRE+b8DM8e79w0\r\n+ol/VgyOfBL8B8td7RuxN/xzIwCepSMZ5A7RWdkmhDJmHtdOxhtH8xDcekqq\r\n/1PEhvJeqBnqEvV2H0S9zCAZrAHPoVjJSSwPaDSc9guJeeKYSIg6wWcOrQzU\r\nYXU1Thvv4hILbfUK0tc3mdp9MDVSrMxbHnyRjV0B3Yyh/YUYWUddZ6T/imBP\r\ndjQxrAeNtrmBbkWmtXsflLikHSPU30Mqzgo=\r\n=scwK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"f384303ac469914d0dbafde0758ccdae473f336e","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.1.0","@opentelemetry/resources":"1.1.0","@opentelemetry/semantic-conventions":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":"~1.1.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.1.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.1.0_1647591061708_0.7080112200023543","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.1.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.1.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2277e44a8b90815bb3c23515cae9de57ce902595","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.1.1.tgz","fileCount":219,"integrity":"sha512-nj5kFly/d6V2UXZNi3jCaRBw44/7Z91xH0PcemXJTO3B6gyMx8zIHXdnECxrTVR1pglDWYCGs84uXPavu5SULw==","signatures":[{"sig":"MEUCIQDXcQWtqYJJV5tMuOB7wmN/al1uzJBLOH5LbMyGcrtHPwIgMBptxEBJsLebjv3XbdtlJ1TDGW/M5LwieOF/Xd6rpUE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":552814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOij/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaKA//T0QbIUoelYuNPxDaBDM0ieilM+eh5Nyy8dP3LRocnfOfGVo6\r\n1+zkp9C58SOO2k0uMNgJ8BcMgXxBd+zcS5W+/J33LCvbP2ZpCMBQrOGa6kny\r\ndV5FZRE73sUBCDkY+/81ehyOiXXLW46313zGCBgpX9p/HwivTjT16PNYrr6k\r\n3ZZiQmb9Tm68VnVLOENIqTspRHzjq7T8+9c3fmdLmiNdrhP6k3y0GE2vdg0P\r\noHNrGD2NQCARK1RLMJNF9a/8/hK6dNERoQKWydjV5y6fTV8HrIHsVLzrNvXs\r\n0YF1N8ZJgHUoqYsTdKQf92kr/j8sgMsUFxx3cku2t9qcQHffY5GxmPgn/fTE\r\n8bZZ7mPhmsf8aXih/F24cInMD/Eu8mKktpov+agemmD5RFEMTUWeDV481din\r\nFOUCRJUDTSserEa580XBRkUsdUr/Gb6dm9JB8mxGQwIWJ6ZUW2K+RqAb+FdR\r\nMCDShq+C8YSwhSIaTeCIJce8NX+ca9NtjUO1sIPqVNIuisyO6NOz0keeVKXH\r\nO0xRTz5l8Jog/Gehka1hwbtUtfcVswEyZg4SvVKWmcrb0HYVW+e4dClEBr1d\r\nAp2QgpnUaIhcVNwjuMkSrGqiTvA+ehBvWMPk6r2zi60fHImod/+0d462yI9D\r\n2rgR//laEPnSI8sHJx7q33Yi1s5qXMUqzaA=\r\n=2PCq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"b0f8a2d36e6d1d3090c3d2380608d2102c826e0b","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.1.1","@opentelemetry/resources":"1.1.1","@opentelemetry/semantic-conventions":"1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":"~1.1.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.1.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.1.1_1647978750976_0.4451688237419007","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.2.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.2.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"aac5b79dbaced92a886fb2e348e54f5b681205ed","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.2.0.tgz","fileCount":219,"integrity":"sha512-eHrG9c9OhoDhUmMe63Qzgpcvlgxr2L7BFBbbj2DdZu3vGstayytTT6TDv6mz727lXBqR1HXMbqTGVafS07r3bg==","signatures":[{"sig":"MEQCIHxDeRJ1Y7SkEGT1p7MiTG4y2cOugUZZeZ+XhrikR+tTAiBWEgxMhwJy574hneXGgEi37Y37vhBQlNd/xvWTQr/SVw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":556102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYsI/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmonHBAAj44NYQVANyFTg3YLzIsIJhityCIuLvyhLfar3YpD7IkGrrhZ\r\nT9U/D2fN2wdSfoeD/Z7dGu89Y5/AmmPWWEEe1SV4aPY9u3mXwiS6E27zX5sg\r\nyLkIHYphlU1bDlq/FHYpp5v9ptK6SJa4epgNBFrBNfyQg2vT9EWyyB9W5jOH\r\nQ10w9oEg3DY9MtH06PPh+VLIJqslxHFFTaEC5nDIz/+yfqXjJb2F11G7TL2E\r\nSoisfBXai9rNnUebsTLc8r2J+mWwlcZWHThTZQkeBw0eAw7BWMPIaWWnbl6k\r\nzNS686ldebx1dhQjD2qkuUabqHh4EuJoMvl7KCCYgFjWmRhXv5q9zog5HpsL\r\nkDSCxnLVP4uEjnKcQ7tw2Vru6+7AejaanVDeUVkVmW9MCNCZgyFQrDvq/I6e\r\nnVLTjrh+nLY1b6ulsliiwi0uUglQl6rgX8ei3oe1C/+fKg0H5n4ysL0Wdkak\r\nlEnaryQ9b5Mu+HYOLC4leatb+Ob+Tzre+aspQ8E+I+TbFRPqEYwAk9qTC/27\r\nltLXlSNb3sCzJXIrPg/fRQXDmi3Mq+j5Et3Xr9XiifQLwq+odpd7bh7tJ468\r\nzEiU+7v17c4vB/sq1diy3DL4H+qIcwVTffl5PRDY2p2Mon66Nruumx7vgxnd\r\nCYcdeAhqcXuo2O6XPltblnFADHHs56BOMCo=\r\n=MSTB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"a0a670a03fd35b0799bee8cc466f79e93b5b6dd2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.2.0","@opentelemetry/resources":"1.2.0","@opentelemetry/semantic-conventions":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.2.0_1650639423630_0.5047606523204053","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.3.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.3.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"eebf6f553e49ceb309d346b8de7c9257686bbec3","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.3.0.tgz","fileCount":219,"integrity":"sha512-BkJEVdx46Boumgy0u6v+pm7spjOq7wCmClDFnHvQs8BS3xjmfwdiReoJFcSjo0cSlxkTJh6el8Or2l2nE3kArw==","signatures":[{"sig":"MEUCIGz/0H3rGWRaHX0jlcn+6uukc3qzgIuKUgwQEgJ/3hoqAiEAzMR9u54IyMmxnMYkD/aoKGBz0H1UhWhby2nzZXGtqFw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":556534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikSlkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNxw/9HOqfRpUb4IKDqrn+hwiDh+sC4Nbwoz1NLjZVNN8lCqDA7Bt6\r\n7j+sgVk3xxbuTQAKxpIst+8vYkEbY3QiaYEU3Xs+inT92ky2J29s0NUE1u5j\r\n4G8g/vHIuAVb2q6KE1iWi+kTynYE+7LbO7Ao7nRfpqlorKVlMjIOQNCaiOAW\r\n6IwdU34TJXrT3Qya6Z/jWjFnC0e/gG+omiBOnv+UNemQqW5Psz60bRttRAQJ\r\nhY/9U7tgptiurrkCZbj4j5/DsBvLfJKuoXg0nE4jI1Nw5H0qIW0PP8ifZAtx\r\niyw9hoFAeOWb6eA6efQ/UJwXpXEBz/ViX5bIckA/QmDgZPIYrVT2/irowhYY\r\nR9/CAxkSu2UX6tz5lKmQZcYSCmpR2gIvtKV58MwAsH2g5SSkW2biqB0XdTtr\r\nAERTzqJtgrr/kKsSJXtGuBJQ6aRmIUSBGmQUHlU/mkfr+dMfCFxZvjGU5wwl\r\nTfIsifIGkVpytY4YUrQHDEiOA4FfbYNYIA5j8rQVhzcsXAe1kk3iL6+9wQsd\r\nDrI72fSs2KsxPjLhlEyu4LsLhJ51QPdDz9ml96zd2YzCuW1zUrYQ4cPiJuJU\r\nvN4LyaSB5VCMkgpgj9SmcIQsqB9X3JNBr/+2ajElF5HawwmI6NlzADfOQ4F9\r\nAozt+rNMEJKi4bnqab+pMfrux8B7nx3++Os=\r\n=7Hm/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"eda0b092db484855ded8b4837ba7fc19a377c5a7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.3.0","@opentelemetry/resources":"1.3.0","@opentelemetry/semantic-conventions":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.3.0_1653680484654_0.37952356793618636","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.3.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.3.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"958083dbab928eefd17848959ac8810c787bec7f","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.3.1.tgz","fileCount":219,"integrity":"sha512-Or95QZ+9QyvAiwqj+K68z8bDDuyWF50c37w17D10GV1dWzg4Ezcectsu/GB61QcBxm3Y4br0EN5F5TpIFfFliQ==","signatures":[{"sig":"MEQCIALi65Rm/zKG8ZBolugN7azramCkJZwJFqjYpR2IuUmHAiAtSSXm3hpjXUpwcBWKdCGjLnayhLgb27nqMu3p74uF9Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":556534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinmLqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1lhAAiUCOLc4qxk934XKQhQW8My+vNgqPeT/tMdJiJ63yEvtbTwQ+\r\n8elNZzkUfc9a2n04eOKZTpcZBdLmdz8kr/L7+SGXVA3pGGRmvOFp29YTVUQ3\r\nN+/Ub3SVTDyyA9vTIss7XlJYUXvWXp3mEDwfgS2i9VVj5gCYyC5zt/LjYP6s\r\ndnb3OlASri2XaZPDzh/QOhkT4HZUbqhnqGCSJc+8fU6IhyrL7mOnS+oX4o+U\r\nWG2Y0wvx9MlkDX4+QwJdrRlDcG7KZjdoSn6p3ORgy8/UJVAGGoUHI4yPDnFC\r\nu+tEpRgnuzKRvtsyywrWx0h0c+fBxV1cCIrHBxPsWK/TlypEv9WbuD17vdz+\r\n4Jm2ljTlDgZ+K4xnYqIV6GFTZosmUiRbhiX76cRGL0PWQAueUwaBBjHhkloY\r\n4lGbLKWxYFBQglSYwYk/QJg1Cn4hfeMspRY2BbG1MgEdCK8hkOVOhq3Cl7Ic\r\nLDBaZ/H5pH1RrWcK/OPRFuta0lqgt65FkEHl/Xkh55v+l4N5yIOJD28CxXvl\r\nsJFWeWX1xluXfMXmtat6qMBZleIvDjtmLpY4G1VzwR85IKWURJb3ePVg5bvy\r\naf/JYHg8yO4mYcfGx7PmvPIH/CJryVK/kIr+KJmH0M5DYDYPMJD6gQbrFPon\r\n2LSUFlqN+LkjbZPXM29ovaaeO24sXaCEvbI=\r\n=lwEL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=8.12.0"},"gitHead":"51afd54bd63e46d5d530266761144c7be2f6b3a7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.3.1","@opentelemetry/resources":"1.3.1","@opentelemetry/semantic-conventions":"1.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.3.1_1654547177779_0.44314908261854846","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.4.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.4.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e54d09c1258cd53d3fe726053ed1cbda9d74f023","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.4.0.tgz","fileCount":219,"integrity":"sha512-l7EEjcOgYlKWK0hfxz4Jtkkk2DuGiqBDWmRZf7g2Is9RVneF1IgcrbYZTKGaVfBKA7lPuVtUiQ2qTv3R+dKJrw==","signatures":[{"sig":"MEYCIQCLqLk4sGs7ZlVm8eZVQO/gEw5B3TPiumDqB01dNJpsJgIhAI7a5bQFkGJly7Ar3CdIQul5vtwyWdO8IL4xekGMZz1g","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":557399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixe1qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpkJQ/9E4JUmYpvdZvT8BmFGBAigK7zC7aBNaV3+jZoUnZBtxnS5pv2\r\nqdydK5nhXffwCWeFMEqdI6Ab5vWmUQJsBWk3PsV2FqtVM1ivv3aWeWLlTFAO\r\nR1wmFQVk9kIBDGVz21klCFauyhbHbj0OdYYlFFCjfMPZ1pfOHjyqNbE3HMYr\r\ny9dxnK9yffCB0U4yfB5GnEj99xC1AvXSkBDm6UFQLfhfioW3iCMfUi4kWPKd\r\nEwrrRg2XgsrNi++xM2iK2tLu3cgcmRnAbo1CriwE40ffSqohVMs6nohicdi7\r\n4V/j+buJJO6gCm9sRnrdmhvvHy6cExNqaE+qF9nJn2phL7YS3bIzjtq1hQyg\r\nvpwIe4nE8mZ7a/2cDCsIGK9uIcvsvgwbkHbH93q1J/l5MasVu2xTTn30bVjX\r\n1T0L0TE8b7193vjf41eki3YGPDC8pgdjdyzE+fB1WQGyogOpcNacwVbz+AmI\r\nZ+9pyjvBhLcMrZByLl6oKtMjosiJi+IAuoUnDDHOQ7GSFOnGKshg9/trbv3r\r\nkQP98YJcnIwc7aKSBYF59C1lSjbLJenJ8Ni5koiipFUQbnz53NLrshMlXq2V\r\nD71MkIfw9MrK15S7W/1uHY46t1B09zkdUC7ILQXXk1/9hi23D4qAn0YwPqNb\r\nRv34ZtYPfb/XaA4b4W05tdN5FqAxmeMuUrY=\r\n=DRGf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"e39ab883b18636238ef0fd741df4ce5ed53e8d04","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.4.0","@opentelemetry/resources":"1.4.0","@opentelemetry/semantic-conventions":"1.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.4.0_1657138538116_0.08054665516123172","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.5.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.5.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"259439009fff5637e7a379ece7446ce5beb84b77","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.5.0.tgz","fileCount":219,"integrity":"sha512-6lx7YDf67HSQYuWnvq3XgSrWikDJLiGCbrpUP6UWJ5Z47HLcJvwZPRH+cQGJu1DFS3dT2cV3GpAR75/OofPNHQ==","signatures":[{"sig":"MEUCIQC1uiO4Uby5qJ5Q4RGt5KojX/NKiuQhrT6XzcGmN5YImAIgYNHGvd7qtO1rZ6/NgtNYF0j2DTITyPg1IWTufbasY3c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":561100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4FQAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCfg//WNcotdRula30Z5YkzhkmwWHZyiBWnHIHOBEOgn36AolkGWE5\r\nM97A0rZ3cfW4DrbdCIjEaavWUjvHpAzER8ta+DiqigspFvT+ko8g5v0fMw2N\r\nbPOXkn0E0zVPCunYFPrcbiG8GEgETjvtPnOlofH6McdgXOyt5tUS/GEI4LwY\r\nObg5BzYs6hRc86X+aQvrLwCA9EroWzfLr4XbmeAkBE5ZEYq0bO/WTz3EujY8\r\nYxW8GnNaxJT70vYlczo5+6IGBASFg1bpALJyidUroNRHDRRQM/MQFZydXaKV\r\nWLEA/1fwTBEB6sfsKY+nzD0tMIRxpZzHvm+qqAO4wEnm8UVx5Y4Oe24baJaZ\r\nYw/Mpi3A8xj/5Glf4G6F0WAuKxEXfbNJ3/OUraE4IofrSKKvv/4JhNxOw+kA\r\nVKX+AnRCdBSPduR/xAyHMQke4Q3YCk50lwSLXYoZeo+VnEYPBe0/hgmFRqzK\r\ngXOsR9ZhxWJ65N3UuOiBYu69OlT31OTxlvDxDOd/SjSngpWeLFEbyq6NPxfF\r\nMkcsnYy6WSaythblJdUebz42u8CX//JSAfT40g2jidnniQgjE35EzrvgX6dp\r\nhB2UoTxrz44DD40jQLAivEMDxL9Sx+GZ1HafxBoxDnp5lgeRaj4r2IBNz4Lp\r\nhCXz5P1ZCR9Ut3YLnhqMRSfMZqvJDQnsD0E=\r\n=lvpO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"776656b6e0cd0fc49a52b734702bc77110e483f1","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.5.0","@opentelemetry/resources":"1.5.0","@opentelemetry/semantic-conventions":"1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"9.0.2","ts-loader":"8.3.0","typescript":"4.4.4","@types/node":"14.17.33","karma-mocha":"2.0.1","@types/mocha":"8.2.3","@types/sinon":"10.0.6","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.2.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.5.0_1658868735873_0.36948937296896256","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.6.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.6.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8b1511c0b0f3e6015e345f5ed4a683adf03e3e3c","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.6.0.tgz","fileCount":291,"integrity":"sha512-yx/uuzHdT0QNRSEbCgXHc0GONk90uvaFcPGaNowIFSl85rTp4or4uIIMkG7R8ckj8xWjDSjsaztH6yQxoZrl5g==","signatures":[{"sig":"MEUCIFGZxkPPycUwga6941/1+5vsL0g57z0IOs9srY9QVTFgAiEA4/3DbZJ+xNNnMd1k9gRasfX+VKzueDJPWlXaDvb6TLY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":703237,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBmODACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCCA//UmDuN/9SBNkotpVIKMbNS/WfQYETlNXctdnZHBP88etrH+Ax\r\nQaM+cxOLvoO8VgneTZa2YcufJmZamgf0N5nnfUBABvNqOxDXfFlnXpgNR+S5\r\n6E1ldhx1sZ286kQqhQfrCSpENUdLxm3puzlJvnOzDrCUBqSAIL4vrE2pifuy\r\nngWrs2LCz+KBb0Oo9Zj+GvXOYKZaITZNVwR5y91aOzzyvhMj7aPumgWpwBOz\r\nnley7aO7CPXY8PyZ6FUUV/5YySSyLxtrGaUzTpwxkAmo8Rp9cB+xDyCKb5hd\r\n1XIZ53XH+XFUH9bK6LMW/NsANgcPvWT+gnXdK9OKg5orV3XEj7ftAWt/r9E4\r\nIWQsv1VO/k1aw4wikslDghIHd9DQGUq8f3qTbZDcIJhoSvfuUrIJWlE6zehv\r\nDWG4nGl9515eNnVvWFGuXLJUZPQPnZrCYS5ocD9viqOGj8Ix6Dp8yEkHA0vm\r\nNQttwwELXX03r0VeEQcFpxXwRzS7avmpRqDfedpl2TJrF/4Bo8TLBkBP1Ht6\r\nVFc408x3eSA3RvJ7gFdhvgqjqYLSLuVP1D/ps66pMi5SG7ykJ3Za05cBznbs\r\nJMp5L33qYYWHjAi2uOm/a0tVpmJMRO3QyLNF24Y4zbuV3apqsXk522MSWWPZ\r\nFsh1V6H5vRKAFEdP5XrBfq1qzaAkwPbw66k=\r\n=8qYD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"a5abee69119cc41d9d34f6beb5c1826eef1ac0dd","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.6.0","@opentelemetry/resources":"1.6.0","@opentelemetry/semantic-conventions":"1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"9.1.1","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.3.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.6.0_1661363075313_0.24925341140796742","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.7.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.7.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b498424e0c6340a9d80de63fd408c5c2130a60a5","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.7.0.tgz","fileCount":291,"integrity":"sha512-Iz84C+FVOskmauh9FNnj4+VrA+hG5o+tkMzXuoesvSfunVSioXib0syVFeNXwOm4+M5GdWCuW632LVjqEXStIg==","signatures":[{"sig":"MEQCICxQm5dNE2obRrewbmTbvDUPKjpEDqwe9DMSkjsL+ll7AiBBeL09XWESUAsZEFJqEb/czB9xRqxGSU7ZtYkIxFctxQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":710870,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJGjCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprZg//eVXy8Y9itH7B5owMNIWDUAuuXFpw5t4j4E3Eqsa8PL4MlfLz\r\n3Q8FGv/gMVPNSxTK+Q5olSgI/Dp4d5KuWEzTBPtU2kSSZFQ2hgeMdeLR5zkG\r\n/R0kcPL8z+iFxMsA6eO7uImf5Y9frntttn/el5jfw87X+qjXjV2jwqKJmADa\r\ngQ0TtRLb34gP/LReTYaE6P9pZXAgldTSLku65ztF74lHvPE5Q7HvHs+75uw5\r\nsAKGbVsA5yedjXZ+v8eIE8WL7aQer9VvtkPRXVlFScvim0CCChn5+45seH7c\r\nU+PMzcc97Y4Rg7ntxFy/lcW3OKQaO5yl+gss/WEDx0o7xwlNkITbePhNH0Rv\r\npTBpdcMNeZk1ITbmG1ri8DgjHFJWL5O7pao4yfgyzuFkM4SUYujEZB/Thfek\r\n//fZv8H+t6Ms+MFMciOE++GJS+GVXVgyNXFUWIUWF1eMeO4Y285LygJv453J\r\nN7sld0hrMn4fItZW61Vmj/sRaQuIM8NLUjHTY1jkBFRE39nsrIkWxNJRqjcv\r\n9DQOlzhSAOFOY1EINpYJeW9EAIQkwZ/w0UOd+HPmVDm5bGbCnvqEpiyluj3c\r\nClZr/yjpFoMm9Mx+FwhLaZjW5IXJe1ek9QFDDP61tGWQviV6jNHq5RxjOwm9\r\nOJ2F819hWrl66GKa02rO+gqNugRkAJxpgjE=\r\n=3Nls\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"ad88c3d9aa0100fe259b93f4b660e84417b757ac","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.7.0","@opentelemetry/resources":"1.7.0","@opentelemetry/semantic-conventions":"1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"9.1.1","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.3.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.7.0_1663330497999_0.322341921882334","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.8.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.8.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"70713aab90978a16dea188c8335209f857be7384","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz","fileCount":291,"integrity":"sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==","signatures":[{"sig":"MEUCIGGgOVCWV9iMP+xpoW8qU84MMmAwLSfneZNUCzPnTNKKAiEAzWhHXdc3EDzlA7f34ajtUzAM95QQ/ampFalpD3c5vjw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":709861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbANeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrSvw//ewghTwxojDN+0h1tzWihXLoVTgDtKteumUYoytRWe8RqPLl7\r\nKuzxG5g7KLwqsojCfHp250ofMUwTVR36RuHZTarjpaJ1z3gC/EbROPfsCy2K\r\nIdxiZJLS+5rycgn+P/rqH69Ghqy+O6E1qxAVWNZ3S4px3wGivliDbpj4YlaN\r\nBoTVTuk8THoeg6us5RmM4WMx2lJNIliMtbOF1spyFEL8jfWrhfQFcMGftFAQ\r\nXSSn5fJ0iFWYDkD7psF9MQ/iJW7nEG4Cn4ITjRt0cRgIMUtDRGPJKtY9IwUj\r\nAtZudNs7KQYrZiT3WvaerL4yq6d0iY6lbDXiTvtKof/bRt2xciCaF+5CG3M5\r\nV4JxKS0/YwilsMKebUF9Uz7m5Y/bKr20uMFNgdSSp0vDeReOlcbSOqm1JGf5\r\nH1G1PUnZ7rvuhuYA512plL6sieLNmyhTgktMSL3nMPP9+phj6BEIdWI0eLfV\r\n0xz97XYI+YgKqS2U35vh01qwgJMDcHy1v20e+IVEFi/f6bUUd9NwVJ8y0IXG\r\n3hUikhaCFADqQHDHzNp6mfdNRkJSGzc9zD4mNKBQ+Dg8xEWNQwDq2pjCiKfI\r\nSey6HSU4D39eLnxPV/sB7+NQ/wav1w0vtFUg2GWQl7yQmI/OOROiBfyKYBeW\r\neL4oPyD0Beldz9ejMY4gT8aX6Y+KGU6mc9g=\r\n=fY0q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"7972edf6659fb6e0d5928a5cf7a35f26683e168f","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.8.0","@opentelemetry/resources":"1.8.0","@opentelemetry/semantic-conventions":"1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.4.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.8.0_1668023134059_0.3756471246154027","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.9.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.9.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"07aad8d3b484f24e45ad6347f74a66d12d69bf00","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.9.0.tgz","fileCount":291,"integrity":"sha512-glNgtJjxAIrDku8DG5Xu3nBK25rT+hkyg7yuXh8RUurp/4BcsXjMyVqpyJvb2kg+lxAX73VJBhncRKGHn9t8QQ==","signatures":[{"sig":"MEUCIQCk148UUg3KdpJvI14wehqmYDos3NaYmQqsaz+40gEBvAIgbGW9IAjfLk1D9uLL1eXth9ZQpdSfqpmZsYm/mJOGug4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":720397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvy41ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrHzw/+MRKqvOeTqf1fwQhfOP+OYxGNWn+/HFIV48ZraIw/eJnPNm9n\r\nrfPXgMjJwhMeRRR4veXg7NzMGhwDub7uMwjpxrFZzvWVLU5XHnuCu0boAGt1\r\nkWF4/KulBnxgOj/6hqJ/+M4/L4zoE+Pb4RlPe7lbqmIl56ZmfWhah28okgnC\r\nqNbR5vgAOAX1NEjrkA52kke1H/S+wTM+/D/IwaSTd9fReOauEEaGRX9M7eJf\r\ncMDSFpiwY3aqWgw8Qjc8XOOox0zi75avU56CjhN4P7SnlvLIQqCdiWa/INA2\r\nCYEFE8KFlwKBXai+WXUms6mTpXG/pSn16/mf44KHh2D0tmXG83FgsTRzex6O\r\nq0bKGX7+UnX1k6opShIWcZF1pekjU83nQwc8c5IKc+7NABXXCYy7bksVwsG3\r\nXW1w06RhJjQcLkydPwfXdSTD7P8zVHo7IlFrTrb9kc+biA2xqr0o7Jh+0nc+\r\n0cGsrohmazhmaRM9VIzhh22XdO+s9ajQgNNg6YEYPw8Tqtk1JIPE5Tj2VmA0\r\nduGpt2CQPeT3xrdnYtA4jJLBAVCCtNO+oBmhxvo9UWNcwf3BM+egVGZr2pDj\r\ng2BOlIUj96iuQ89lpGkrHTTsICxpiZo6XhKzvi0Pyz/kU7vLalYzOFX36Kp3\r\nfrVodW+vrNvDp2xCbRtezdDvCAVbM76VsO0=\r\n=rMZT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"08f597f3a3d71a4852b0afbba120af15ca038121","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.9.0","@opentelemetry/resources":"1.9.0","@opentelemetry/semantic-conventions":"1.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"3.0.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.9.0_1673473589665_0.6742613306845624","host":"s3://npm-registry-packages"}},"1.9.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.9.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.9.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c349491b432a7e0ae7316f0b48b2d454d79d2b84","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.9.1.tgz","fileCount":291,"integrity":"sha512-Y9gC5M1efhDLYHeeo2MWcDDMmR40z6QpqcWnPCm4Dmh+RHAMf4dnEBBntIe1dDpor686kyU6JV1D29ih1lZpsQ==","signatures":[{"sig":"MEQCIDCpHT2SvFd7SvoiA/2qcUtYH9zFjwJCGPBPCaE/O0/XAiAg9ObFHTNytJHMrIs2fZSuBwq6zkrVyW0zuSXKRpu3Cw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":721180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1+KDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLHRAAg2YSezWIehGO+yqyz36zRSewcUwKhipwLyD79qHVT8biD3OZ\r\n+LouyTG+pKoIfA0ht/AxcwP/KPKd4HfApZX//J2F5up8Y2HXg4ttHF3ez/MI\r\n59pdZYzIHwvcV24CdShaviNcw1wVF5+fGBdP/AqDDHu+TzTqSyb8p0SLTKnU\r\nm6dqBu0O7/30a7lRuEacaE/RTN10fpXpQzseVyq+yY4fxnihW5WJ4wmKKgz3\r\nN/WcKOla4/hdeEpeQaBMsud+VxN1VTNor8Co+RyB7+T6pHFSIWcuUY4ED0QW\r\n8D9oHXPND8P8AqQG2V3oh/3J7EOsdfqaAhzbURnX/DYPw5GPwvEXHL2xg9SM\r\nEVnwf/amUsxp+KaLbLmJnLdUebv+YSYzU4Cq0b7lgF2Y3ETt4UHzC2aKP1f+\r\n2Qq7VM3XWobSfVQATnb9G7mT3ceET6hhWwx/2bCk8bL8z2nr1A/VFIcGR1/Z\r\njTKUuuf0tWndCgQcAiMgBqsY9gVc5k49BXILciDslFi/VAFPzPNLdgXTJLoc\r\nygkcbFFC/qshloubv3yjTyxbb4sPC8JHaJy7z+JneWFYZIVG1phNiRbUqUNv\r\neasg3/aSyGvuSXZSyE2tEKTvAt0wtOUpnk/LelZoD8xO11whUPlWz5bk5le/\r\nxuTo6bdKcBCPUftxCcET15ohn56htRaQssg=\r\n=4lA/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"279458e7ddf16f7ddca5fe60c78672e05fafce66","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.9.1","@opentelemetry/resources":"1.9.1","@opentelemetry/semantic-conventions":"1.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.9.1_1675092611489_0.40379905656518345","host":"s3://npm-registry-packages"}},"1.10.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.10.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.10.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"abbffa0ae39234f4c441357edc3f4da45dc73ef5","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.10.0.tgz","fileCount":291,"integrity":"sha512-X4rRShtVQ893LCU4GNKS1TKFua9nSjVmo0VJvigfSFSOmyyOLfiyTWmVL9MKV7Ws0HqLOIWJixJY0x28fw3Tzg==","signatures":[{"sig":"MEUCIQCfH/YhGxM8fNPGzqv85ZBEv+TXK2xG4B3l4BxNeprrcwIgNgdeMoB45zsX6FCHz9OKjjZgeiZpELL7Pl8Jj8iVfsU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":753566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkD0cLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtJxAAjO1H0f8JKNzc9enF2Gb4+9qh/KuB+N6QinsJR5uIKghmG04L\r\nTyyCyEBIlrt5+C8U19xXZRbrtSTfyHD+lv7WRrSeV/fL6tOEV5oHwn0BhijS\r\nJB+Ng65UWSGtPiv9fnsczZN+pluUwzWcpn1eKdM/ev/7j0jFnxbGFJf8XfLb\r\nep+rdVtn2PBZfe66YZP9LtE7nCaHVYCNFdqkXl8PKeyYisl7FJefVRcxejOw\r\nIK1m8uChlMYtjDlMCkg3IrIfiEqlFoAoQinp2gPTEuSM9Z8R6WIW+rc5B680\r\n8MFyMQVy8U44vhZjnLb0fwIAzHpCEzXrsjQ6kwXU9ZhOOw6k6zq/F90W545+\r\nxc0yDu+EQLPLFwSYgVAD8Iutc2OkRWYDBUn2+QLWIc49HSq/XfMyUV36qDpM\r\nNa9JwV5Hzh9sfEPgvnKFDXDz1t/kYP1Y5D2h1Z0vvPYIGfxfpwnhKOtI4jHC\r\nwnnwBxFlBWbyxQ4TUWjV3R8HeChsO3KZ7Dcocjjkhr+dGZbRQwx5j/ZcRgb2\r\n1WS/kKpbXELlv7F16k+myxXVMSughmSmyTBvQesOMODviXrG9QvZ/k6hQDzn\r\n0aIdj7QFVsBqQ8QfLScLcQoGdxaD7PAImPFAJo8IwRIApGUFGoJIMkTAxQnB\r\n3An0ctyqyIqewKwSMDQ/kQkCAZo7nNMKF/k=\r\n=4uMa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"56e6b1bb890f844b8963a146780d0b9cfa8abd0d","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.10.0","@opentelemetry/resources":"1.10.0","@opentelemetry/semantic-conventions":"1.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.10.0_1678722826858_0.7356588240446413","host":"s3://npm-registry-packages"}},"1.10.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.10.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.10.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fce06a810f9052d3c1b935d134979f4254bc8ae2","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.10.1.tgz","fileCount":291,"integrity":"sha512-jutSP5t22wrPKReJKzI5uKht4mJ4cQdF/mGFJkN+emFFsDXru9CuFv/NfUrD0jEqoaaiqjcZtPSyTzMgu9LXvw==","signatures":[{"sig":"MEUCIC5TkRQU4u6vAJo35V80QPiCUtJjFb/AQ6lMRRW3pWVXAiEAvM5UwlwBdiTS/miwGRjsCy4RwNj1Vmv0E44uh035k4s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":754653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGIV6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoD9Q/9HrqY+zXO5UB2Ajjrnffg1MgeYDLd+x0xsRVwooyC2HXp52/8\r\nmuP2SXq0JbSZOwbqQhSs6r/KqLt2avtTufh20YqFScGBvE0ajk+iPwdViznh\r\nBoWgA7m/cSTfazKwa/y01+rP7u/dHhMhUyp2VuX2Ml+6uytN3+ddvNgrPoB/\r\nV6V/V+G1StRlkrXj/yrI5kwtdbd2lDqsPErYhEWq/JnBamEckJYDUukJHftP\r\nOiYLvPEJGD8nDnZyFZM411BZzMi2c2eAXDTCgdBfczwdgHDq0hi2bBheMb84\r\nE9XDZO0roA+8qqwPOdII+ZhTM+Zy7AWVpgXYzYyn2H+zqt0kKYGAVum01B2P\r\nVwtG8UVJj/0/SXiKpzqaHNeRp1bG3Wwz/SgOdGWO078IoQVGOlQcldCbSc/9\r\nPU+OojbQ29jzwOOXRGq3Gr1S3CWshuDUM/V/gKPYJLQDL97VcP6qgmrGKYjw\r\n4phRWsFMpVtq4vLpciCThNZfdcCpIHKEW393pVNcpoYh8zyrucfR+UNt6gdB\r\nHOuK81d1sf67yI1lj6vuxYBL1Sg2PppgR+kuH8yat+XGV2PHdIp3g3gjaEx2\r\ndBp1tMLkrI8EW5TIgFusMyNuYq6+fH4VQ+6KL769f9zJi6wt5833VS1YjCK8\r\nh3pXzU0oMH3vOTOi+K+MgFdezKn399P7X3s=\r\n=ydap\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"486df99906958de9b8b666839785b00160a6a229","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.10.1","@opentelemetry/resources":"1.10.1","@opentelemetry/semantic-conventions":"1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.10.1_1679328634722_0.677777763334195","host":"s3://npm-registry-packages"}},"1.11.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.11.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.11.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a962dbe74ae28442501ce804d4a270892e70d862","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.11.0.tgz","fileCount":291,"integrity":"sha512-DV8e5/Qo42V8FMBlQ0Y0Liv6Hl/Pp5bAZ73s7r1euX8w4bpRes1B7ACiA4yujADbWMJxBgSo4fGbi4yjmTMG2A==","signatures":[{"sig":"MEUCIATNLGlPj7nprM/PqoK7yebouzxOOVHabs3pLCi2zF81AiEAnpwJz0aXZGwAS8cwf5tUXbH3Z5M719jhlqJKLHhclE4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":754653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJaswACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBlg//cAe3wMtepVB6AkYMsdLNGEQdJNykDrEO4K0w2cJORD1OoOSw\r\nRKY69x4MsneZ7DoTy1Yyvrro4nFZVaXcMR4W2I2/VyCM9zuMYdfXfeYW8Xn2\r\nxlBmjjIvotMn3FMLwxd44Xc7RRXgqOYp+F+oYPfxxyB4bLtIjg9UCRWIUkfs\r\nxeHvkfxXhlSE/Ffl+o4+6S5JR8bPRcLKltwfM3sBlySUZ619M2t/3RdgXuN4\r\nKpZM8cj/+8w47iRnPEC5u+mxMgsUiJOPRdMNV8MLR9gAVrt+aycAGs0DveJ+\r\nW800yX76KLskPzXMOhLjY40uAfTmf7ZSMLySPTmjHB86Ao7a+VRof3Lp7F7W\r\nAl53WeR8ktsMkUgol6bYBUxQ6gpaUBcup8OVTq3UvIV0tc1nW9xGift4uyqV\r\n3Zx71db8n7DWQLx5djFNVcGxo4LGBnoac6yID7sAXZmFPKO5wgik9jcSvaes\r\nMefz5zOjllRyaggfDu0qzMl/pV8rP4U/HDyFsUBFkbVrs0H1gq7p4MWOzvA5\r\no+TIwiRqhkNVieFqBguPz6wC6R+xmGDfuMT1OVlErJ37xulLctcFR97cVvo8\r\nNhs/zg+VzSlLA2ffRMZJY8j2xFIIknTNW2XbxO0ynIuw2Qac/ubMyv3L607p\r\njN2vgVxGOy4ijQ4VOX7QzQTJOW9eOnjw9UQ=\r\n=Bvyk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"1328ee04ae78f9f6cf143af7050c00aaa6d2eb3b","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.11.0","@opentelemetry/resources":"1.11.0","@opentelemetry/semantic-conventions":"1.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.11.0_1680190255784_0.000785890780287346","host":"s3://npm-registry-packages"}},"1.12.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.12.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.12.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"62b895dbb5900048a85e4899c38fec5585447d4b","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.12.0.tgz","fileCount":291,"integrity":"sha512-pfCOB3tNDlYVoWuz4D7Ji+Jmy9MHnATWHVpkERdCEiwUGEZ+4IvNPXUcPc37wJVmMpjGLeaWgPPrie0KIpWf1A==","signatures":[{"sig":"MEUCIQDGQNlFDI4aeratpSD5OxDMShZWpHdYTVjWCBnYfpqT7wIgS20kS7BJXFaKBMCcL57pG64sBXgcstHOb/QvJJbZc4c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":755384,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOEYtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr1VxAAgK9Cgr/apKKrJ/8l0FYhazkWFDVijdj6ImBxtPgDYEUJgRCa\r\nXWPxQDsQLJ/n+ZSKLJ9e115m+2mfaLCg0ECNePS29s0tCwNiC0pS+jC5EJxm\r\nDAfJgqHg58HDE1ZwEvK2ssIgz66oCTBS59WwTMARovA4kBn9TyViR9k6wRGU\r\ndJX5LqLpt8E/1MymOyqo9/2HoqCyb1EiKzB/Ur8VdDnp4a/6yKC0r18d0ju3\r\nG6FfNyvgBwrdqOoIbUcut1bwbomwjplJZ63sIKUbC4h/DThjsYOd1jeek4N/\r\nR88hh4GEpZCWW9yHYrQ5oTYiVRtc8DKo+FstoKULy49suV9998uh50vlS+rR\r\nfDvRBInZIi1weDqJvjZVRw2rC24uoTOECiPulSKmrYsIF+jAREqJ1MwOLPdx\r\nvhnPsAmPF0gmRlWpHoXeYxG8NhfCjGycXJM3XcXIjX6+6FgSxKxDPGxiYIP0\r\nFHA7TP6N26re/AcKB1BhbjblKq9znqYbJ4vVG6xfFUEPC6akKwDwBNkwTPN/\r\n3Nq9B5fhF4IB02jHCu2NSGAyWeEXICD349DITHgpeY+WXRK/0Ch/FvKsAiQ2\r\n8DLal2y8VAMn1rX+18wbiJeDgUP0x88y8joyR+SRLlRb0BGbOgZarJ5t6rKY\r\nU8gfYC/v0GR0zNX8sPSWtuZxdQRabqIODas=\r\n=D7K4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"a04090010ee18e17487b449984807cc2b7b6e3e6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","dependencies":{"@opentelemetry/core":"1.12.0","@opentelemetry/resources":"1.12.0","@opentelemetry/semantic-conventions":"1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.12.0_1681409581369_0.41803382504150455","host":"s3://npm-registry-packages"}},"1.13.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.13.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.13.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"096cc2759430d880c5d886e009df2605097403dc","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.13.0.tgz","fileCount":291,"integrity":"sha512-moTiQtc0uPR1hQLt6gLDJH9IIkeBhgRb71OKjNHZPE1VF45fHtD6nBDi5J/DkTHTwYP5X3kBJLa3xN7ub6J4eg==","signatures":[{"sig":"MEUCIQCUuJ4B96xwpSLT8DFKAofaJDlGrXekNXcbsCsQRyYcBQIgdFAq/sIQjSsvEbReUkhFeNBdPC5uB4GXp48ocXDFpTU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":755361},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"8fc76896595aac912bf9e15d4f19c167317844c8","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.13.0","@opentelemetry/resources":"1.13.0","@opentelemetry/semantic-conventions":"1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.13.0_1683811806724_0.20967276776702293","host":"s3://npm-registry-packages"}},"1.14.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.14.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.14.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"831af08f002228a11e577ff860eb6059c8b80fb7","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.14.0.tgz","fileCount":291,"integrity":"sha512-NzRGt3PS+HPKfQYMb6Iy8YYc5OKA73qDwci/6ujOIvyW9vcqBJSWbjZ8FeLEAmuatUB5WrRhEKu9b0sIiIYTrQ==","signatures":[{"sig":"MEQCIGq2NLJF230csI91/HmEoC3vV+PDJAfR6T+ZfR1K5MhUAiBE0zHURoBg3oiLXEQFSYgZRPg4mT6sh7zOyIBPLwqTrQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":759415},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"edebbcc757535bc88f01340409dbbecc0bb6ccf8","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.14.0","@opentelemetry/resources":"1.14.0","@opentelemetry/semantic-conventions":"1.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.3.16","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.0","@types/sinon":"10.0.13","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.14.0_1686031254973_0.05353905101465628","host":"s3://npm-registry-packages"}},"1.15.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.15.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.15.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"92340ded8f9fec1aaa63afb40c6e7e01769c2852","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.15.0.tgz","fileCount":291,"integrity":"sha512-udt1c9VHipbZwvCPIQR1VLg25Z4AMR/g0X8KmcInbFruGWQ/lptVPkz3yvWAsGSta5yHNQ3uoPwcyCygGnQ6Lg==","signatures":[{"sig":"MEQCICYANwEi+W0pUvfm1ry5U2W2dfO2D8QKOxJ6ASiMd9fAAiAJVx8yq45ynFVPddGZXUIDiB+f460P0lH8/PukjsJa9Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":751257},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"06e919d6c909e8cc8e28b6624d9843f401d9b059","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"nyc karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.1/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"tslib":"^2.3.1","@opentelemetry/core":"1.15.0","@opentelemetry/resources":"1.15.0","@opentelemetry/semantic-conventions":"1.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.1","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.15","karma-webpack":"4.0.2","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","istanbul-instrumenter-loader":"3.0.1","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0","karma-coverage-istanbul-reporter":"3.0.3"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.15.0_1688642828714_0.7763914571035175","host":"s3://npm-registry-packages"}},"1.15.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.15.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.15.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8eabc0827769d91ac86cde8a86ebf0bf2a7d22ad","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.15.1.tgz","fileCount":291,"integrity":"sha512-5hccBe2yXzzXyExJNkTsIzDe1AM7HK0al+y/D2yEpslJqS1HUzsUSuCMY7Z4+Sfz5Gf0kTa6KYEt1QUQppnoBA==","signatures":[{"sig":"MEQCIAMA9wUFC89WxydgdbzsPHJAC6CJZrcaOKd6WZiMyomlAiAmC3lL7KJpsgZkvBN+kvQdR+/QBXU5aH853Mw0xGsxpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":759437},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"9f71800fdc2a5ee5055684037a12498af71955f2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.3/node@v18.4.0+x64 (darwin)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.4.0","dependencies":{"@opentelemetry/core":"1.15.1","@opentelemetry/resources":"1.15.1","@opentelemetry/semantic-conventions":"1.15.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.3","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.15","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.15.1_1690209168495_0.9723185712242157","host":"s3://npm-registry-packages"}},"1.15.2":{"name":"@opentelemetry/sdk-trace-base","version":"1.15.2","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.15.2","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4821f94033c55a6c8bbd35ae387b715b6108517a","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.15.2.tgz","fileCount":291,"integrity":"sha512-BEaxGZbWtvnSPchV98qqqqa96AOcb41pjgvhfzDij10tkBhIu9m0Jd6tZ1tJB5ZHfHbTffqYVYE0AOGobec/EQ==","signatures":[{"sig":"MEUCIEIHVFRfdpxnv3EMAJ4ftYQ+AlgYc1/cZ62e/gv8tkELAiEAnsGkf0w1TCg+Nh+zO9gX/GmMEANl7JYCnR3A8+/VUTY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":759437},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"48fb15862e801b742059a3e39dbcc8ef4c10b2e2","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.4/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.15.2","@opentelemetry/resources":"1.15.2","@opentelemetry/semantic-conventions":"1.15.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.4","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.5.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.15.2_1691500880621_0.5765565023863921","host":"s3://npm-registry-packages"}},"1.16.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.16.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.16.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"243d69767d44646e1d16baa425c35dbabd959c4e","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.16.0.tgz","fileCount":291,"integrity":"sha512-UvV8v8cN0Bx5BI40IJ+sMWcbwWekPa9ngMHSOfCWtSAVKbzwFdDV4Jrs/ejC6uR/SI6CKFQB9ItHp/0nZzVbIQ==","signatures":[{"sig":"MEUCIE0CtdHOn5oxhEmmjk8QOgpa9uN1UcGaKdPZ4BPeSZHEAiEAxBrVmbuOmnEOtXfyBV6smxPj0Fzkzn/FiYy0SDpi+iI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":762780},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"5fcd8cf136e2235903dde3df9ba03ced594f0e95","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.16.0","@opentelemetry/resources":"1.16.0","@opentelemetry/semantic-conventions":"1.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.6.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.16.0_1694434471110_0.20239220544943004","host":"s3://npm-registry-packages"}},"1.17.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.17.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.17.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"05a21763c9efa72903c20b8930293cdde344b681","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.17.0.tgz","fileCount":291,"integrity":"sha512-2T5HA1/1iE36Q9eg6D4zYlC4Y4GcycI1J6NsHPKZY9oWfAxWsoYnRlkPfUqyY5XVtocCo/xHpnJvGNHwzT70oQ==","signatures":[{"sig":"MEUCIQDRl4V5Q9HD6NsW3DtOOe+96ou8MwSUKBYi1McLNudswwIgcqEqisIWT6U7qrLdIRH+kQFG05+JTW3HQaitOHqTY5A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":759485},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"faf939c77591f709afbc23fadbe629c9d3607ef6","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.17.0","@opentelemetry/resources":"1.17.0","@opentelemetry/semantic-conventions":"1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.1","@types/sinon":"10.0.16","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.7.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.17.0_1694524353106_0.9941234111275701","host":"s3://npm-registry-packages"}},"1.17.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.17.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.17.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8ede213df8b0c957028a869c66964e535193a4fd","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.17.1.tgz","fileCount":291,"integrity":"sha512-pfSJJSjZj5jkCJUQZicSpzN8Iz9UKMryPWikZRGObPnJo6cUSoKkjZh6BM3j+D47G4olMBN+YZKYqkFM1L6zNA==","signatures":[{"sig":"MEQCICJ2bNHS5YUGFypz4AII9j8tSEQ9DlGT6kqLjtoOEsCGAiBvV/Vq4IZpDkaHq2O9HmyppmnPVxpIxrg+Jy1T5IiHDA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":763072},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"f8e187b473274cc2011e7385992f07d319d667dc","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"@opentelemetry/core":"1.17.1","@opentelemetry/resources":"1.17.1","@opentelemetry/semantic-conventions":"1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.2","@types/sinon":"10.0.18","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.7.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0","@opentelemetry/resources_1.9.0":"npm:@opentelemetry/resources@1.9.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.17.1_1696947498602_0.8314715735448981","host":"s3://npm-registry-packages"}},"1.18.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.18.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.18.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"09e420d24465aaee8e21a8a9a3c4fa2e6f0fd08e","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.18.0.tgz","fileCount":291,"integrity":"sha512-OThpwn8JeU4q7exo0e8kQqs5BZGKQ9NNkes66RCs7yhUKShHEKQIYl/A3+xnGzMrbrtgogcf84brH8XD4ahjMg==","signatures":[{"sig":"MEUCIFQOMg1gSyToxhdxU8T3AviTyjEEw2MbV3NIAaAUmbOCAiEA5XDBvAFEwa4c3eHldor7UtuSWc0QH6+9JPAUmc9laKE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":762996},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"73b446688f10fd8dc4cf403a085f0a39070df7b4","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/core":"1.18.0","@opentelemetry/resources":"1.18.0","@opentelemetry/semantic-conventions":"1.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.3","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.18.0_1699353886594_0.7186034490338462","host":"s3://npm-registry-packages"}},"1.18.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.18.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.18.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"256605d90b202002d5672305c66dbcf377132379","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.18.1.tgz","fileCount":291,"integrity":"sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg==","signatures":[{"sig":"MEUCIQDGgWjUUen2F48lorSLadmIOOAKIpssyEX1QX3AkPnEcgIgZ/6Bk9XnhJDqwrVWwaBzBowhdIMF0BlbAA4G9pfiu3s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":762996},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"f665499096189390e691cf1a772e677fa67812d7","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/core":"1.18.1","@opentelemetry/resources":"1.18.1","@opentelemetry/semantic-conventions":"1.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"4.46.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.3","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.18.1_1699466949548_0.8982337926756658","host":"s3://npm-registry-packages"}},"1.19.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.19.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.19.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"87e629e7080945d955d53c2c12352915f5797cd3","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.19.0.tgz","fileCount":291,"integrity":"sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==","signatures":[{"sig":"MEUCIQCvZye8IyirUNdQZpWpKxno3ZitChFbue9awFFtHELllgIgNyloI4Qyzwns38NU8u3WC0Li1KHoH9j2JOpghwv/it0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":764145},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"d3c311aec24137084dc820805a2597e120335672","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"@opentelemetry/core":"1.19.0","@opentelemetry/resources":"1.19.0","@opentelemetry/semantic-conventions":"1.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.19.0_1702557329886_0.8961281946707333","host":"s3://npm-registry-packages"}},"1.20.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.20.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.20.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1771bf7a214924fe1f27ef50395f763b65aae220","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.20.0.tgz","fileCount":291,"integrity":"sha512-BAIZ0hUgnhdb3OBQjn1FKGz/Iwie4l+uOMKklP7FGh7PTqEAbbzDNMJKaZQh6KepF7Fq+CZDRKslD3yrYy2Tzw==","signatures":[{"sig":"MEYCIQCHh3POrnMKj+uhqmw18P6kbzsRGC80c1E4qJMfjLsMDQIhAMGITPFwWQeaDCcCWHsASv07JnvLZjRORCDpN/OnUc8V","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":765977},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"57008533aba7ccd51ea80f38ff4f29404d47eb9c","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.20.0","@opentelemetry/resources":"1.20.0","@opentelemetry/semantic-conventions":"1.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.20.0_1705313747279_0.982043777281284","host":"s3://npm-registry-packages"}},"1.21.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.21.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.21.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ffad912e453a92044fb220bd5d2f6743bf37bb8a","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.21.0.tgz","fileCount":291,"integrity":"sha512-yrElGX5Fv0umzp8Nxpta/XqU71+jCAyaLk34GmBzNcrW43nqbrqvdPs4gj4MVy/HcTjr6hifCDCYA3rMkajxxA==","signatures":[{"sig":"MEUCIQCqCEvDM0Ok1Pc+0BKmVi/qGM49XKfMGKMFwmzj72uEbQIgQj2iOSZQ1GktYTNsHsyb8mpoMElXqAgH4R2tc1TYjzg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":765995},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"828f2ed730e4d26d71f92e220f96b60a552a673a","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.21.0","@opentelemetry/resources":"1.21.0","@opentelemetry/semantic-conventions":"1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.8.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.21.0_1706249469569_0.5490245065158903","host":"s3://npm-registry-packages"}},"1.22.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.22.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.22.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7833bf2493a7b49461915ca32aa2884c87afd78c","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.22.0.tgz","fileCount":291,"integrity":"sha512-pfTuSIpCKONC6vkTpv6VmACxD+P1woZf4q0K46nSUvXFvOFqjBYKFaAMkKD3M1mlKUUh0Oajwj35qNjMl80m1Q==","signatures":[{"sig":"MEYCIQCIbs8fApIflGCI1DVtJx4Od7v+UAgxdvD1HYs3Knyn8wIhANZPfqD9CmErmsPHuf+xvLsoRdhkFg7m60o2ydsbiYlH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":765995},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"7be35c7845e206b27b682e8ce1cee850b09cec04","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.22.0","@opentelemetry/resources":"1.22.0","@opentelemetry/semantic-conventions":"1.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.22.0_1709198294393_0.7751101530396496","host":"s3://npm-registry-packages"}},"1.23.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.23.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.23.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ff0a0f8ec47205e0b14b3b765ea2a34de1ad01dd","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.23.0.tgz","fileCount":291,"integrity":"sha512-PzBmZM8hBomUqvCddF/5Olyyviayka44O5nDWq673np3ctnvwMOvNrsUORZjKja1zJbwEuD9niAGbnVrz3jwRQ==","signatures":[{"sig":"MEYCIQCkDxxFrTKMnaGS3uSnxIeqIYW9GUKUsumBHH/5FiMIQQIhAJl43qgE1ESEcqc99k140Qw3ZUyhYy98yujb5J2vrPVz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":769572},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"5231aa255047fbc6ee3d6a299f4423ab2f8a5fbc","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.23.0","@opentelemetry/resources":"1.23.0","@opentelemetry/semantic-conventions":"1.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.23.0_1712131805476_0.8181787837823578","host":"s3://npm-registry-packages"}},"1.24.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.24.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.24.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e2de869e33fd224f6d9f39bafa4172074d1086c8","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.0.tgz","fileCount":291,"integrity":"sha512-H9sLETZ4jw9UJ3totV8oM5R0m4CW0ZIOLfp4NV3g0CM8HD5zGZcaW88xqzWDgiYRpctFxd+WmHtGX/Upoa2vRg==","signatures":[{"sig":"MEUCIQC+rEv+MmjVPnMGlU3wd57V5QFFVnW9EfX1PXPig1UglQIgdXMUaQB3puehbvSfKE7sDFk+XhwNKT3dOTs+Pe7BQaA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":770265},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"3ab4f765d8d696327b7d139ae6a45e7bd7edd924","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.24.0","@opentelemetry/resources":"1.24.0","@opentelemetry/semantic-conventions":"1.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.24.0_1713969581982_0.6686664599417391","host":"s3://npm-registry-packages"}},"1.24.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.24.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.24.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"dc2ab89126e75e442913fb5af98803fde67b2536","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.1.tgz","fileCount":291,"integrity":"sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==","signatures":[{"sig":"MEUCIQDTLWH2gw+yHzMuSStW+CjV5Qls++vE6j4ZyXWI8kIlXAIgcZvxmlQmkjw5cG6QCa7MTuRX04iBX07fk3qYK4/O4W0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":770265},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"41c2626fe0ed03e2e83bd79ee43c9bdf0ffd80d8","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.24.1","@opentelemetry/resources":"1.24.1","@opentelemetry/semantic-conventions":"1.24.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.2","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"8.4.0","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"10.0.20","karma-webpack":"4.0.2","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.24.1_1715093558704_0.0518702076931048","host":"s3://npm-registry-packages"}},"1.25.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.25.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.25.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"263f9ce19001c5cd7a814d0eb40ebc6469ae763d","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.0.tgz","fileCount":291,"integrity":"sha512-6+g2fiRQUG39guCsKVeY8ToeuUf3YUnPkN6DXRA1qDmFLprlLvZm9cS6+chgbW70cZJ406FTtSCDnJwxDC5sGQ==","signatures":[{"sig":"MEQCIHH4reSQvuavsAESwWCOjKs3174GY97NApvIwo8zkZdnAiAkX4evqPLOZGIcO2364Kma0IOukWxk2s4rZ7Q1/KWdIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":772352},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"c4d3351b6b3f5593c8d7cbfec97b45cea9fe1511","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.25.0","@opentelemetry/resources":"1.25.0","@opentelemetry/semantic-conventions":"1.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.3","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"9.5.1","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"17.0.3","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.25.0_1717607756250_0.3809624034816559","host":"s3://npm-registry-packages"}},"1.25.1":{"name":"@opentelemetry/sdk-trace-base","version":"1.25.1","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.25.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cbc1e60af255655d2020aa14cde17b37bd13df37","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz","fileCount":291,"integrity":"sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==","signatures":[{"sig":"MEYCIQCTj2PAtWjS/RCNjK8Gf9jjrAGZC45q4Xe4UC7g9f7wQQIhAMVEucKOdO/kvVF98e1NxnacXHLACTuS62IDNJctBSeh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":774722},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"0608f405573901e54db01e44c533009cf28be262","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"@opentelemetry/core":"1.25.1","@opentelemetry/resources":"1.25.1","@opentelemetry/semantic-conventions":"1.25.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.3","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","ts-mocha":"10.0.0","cross-var":"1.1.0","ts-loader":"9.5.1","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.6","@types/sinon":"17.0.3","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"6.1.1","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.25.1_1718875161655_0.9029425309207557","host":"s3://npm-registry-packages"}},"1.26.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.26.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.26.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0c913bc6d2cfafd901de330e4540952269ae579c","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.26.0.tgz","fileCount":291,"integrity":"sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw==","signatures":[{"sig":"MEYCIQDBmAKg/eAuae/sOfGJddg2bp6XQnx7eLvjy23V8aEtGgIhAN8fMKmoqU5I46KS49TZSYtdGwxd/ucUS3lMOUNFbWO8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":782749},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"720bc8c70d47029cb6b41a34ffdc3d25cbaa2f80","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc mocha 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run","codecov:webworker":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"@opentelemetry/core":"1.26.0","@opentelemetry/resources":"1.26.0","@opentelemetry/semantic-conventions":"1.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.4","lerna":"6.6.2","mocha":"10.7.3","sinon":"15.1.2","codecov":"3.8.3","webpack":"5.89.0","cross-var":"1.1.0","ts-loader":"9.5.1","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.7","@types/sinon":"17.0.3","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"7.0.0","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.26.0_1724836639726_0.4881073465309367","host":"s3://npm-registry-packages"}},"1.27.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.27.0","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/sdk-trace-base@1.27.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2276e4cd0d701a8faba77382b2938853a0907b54","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.27.0.tgz","fileCount":291,"integrity":"sha512-btz6XTQzwsyJjombpeqCX6LhiMQYpzt2pIYNPnw0IPO/3AhT6yjnf8Mnv3ZC2A4eRYOjqrg+bfaXg9XHDRJDWQ==","signatures":[{"sig":"MEUCIEZDRp9Rw7P7jVlsdY/bPk1oroAOlQqBPxMQtoLYLwDRAiEAyNSVcrfK4Enpjkh9EGRl4Eggqu0GYDvo0upx7fyeD2o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fsdk-trace-base@1.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"unpackedSize":787865},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":">=14"},"gitHead":"eb3ca4fb07ee31c62093f5fcec56575573c902ce","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"nyc mocha 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","tdd:node":"npm run test -- --watch-extensions ts --watch","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile","test:webworker":"karma start karma.worker.js --single-run"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","description":"OpenTelemetry Tracing","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"@opentelemetry/core":"1.27.0","@opentelemetry/resources":"1.27.0","@opentelemetry/semantic-conventions":"1.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","karma":"6.4.4","lerna":"6.6.2","mocha":"10.7.3","sinon":"15.1.2","webpack":"5.94.0","cross-var":"1.1.0","ts-loader":"9.5.1","typescript":"4.4.4","@types/node":"18.6.5","karma-mocha":"2.0.1","@types/mocha":"10.0.8","@types/sinon":"17.0.3","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@opentelemetry/api":">=1.0.0 <1.10.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"7.0.0","karma-chrome-launcher":"3.1.0","karma-mocha-webworker":"1.3.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-trace-base_1.27.0_1729695101194_0.8545382921292937","host":"s3://npm-registry-packages"}},"1.28.0":{"name":"@opentelemetry/sdk-trace-base","version":"1.28.0","description":"OpenTelemetry Tracing","main":"build/src/index.js","module":"build/esm/index.js","esnext":"build/esnext/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"types":"build/src/index.d.ts","repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"scripts":{"prepublishOnly":"npm run compile","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","test":"nyc mocha 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","test:browser":"karma start --single-run","test:webworker":"karma start karma.worker.js --single-run","test:bench":"node test/performance/benchmark/index.js | tee .benchmark-results.txt","tdd":"npm run tdd:node","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","lint":"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix","version":"node ../../scripts/version-update.js","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","prewatch":"npm run precompile","peer-api-check":"node ../../scripts/peer-api-check.js","align-api-deps":"node ../../scripts/align-api-deps.js"},"keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","engines":{"node":">=14"},"publishConfig":{"access":"public"},"devDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0","@types/mocha":"10.0.9","@types/node":"18.6.5","@types/sinon":"17.0.3","@types/webpack-env":"1.16.3","babel-plugin-istanbul":"7.0.0","cross-var":"1.1.0","karma":"6.4.4","karma-chrome-launcher":"3.1.0","karma-coverage":"2.2.1","karma-mocha":"2.0.1","karma-mocha-webworker":"1.3.0","karma-spec-reporter":"0.0.36","karma-webpack":"5.0.1","lerna":"6.6.2","mocha":"10.8.2","nyc":"15.1.0","sinon":"15.1.2","ts-loader":"9.5.1","typescript":"4.4.4","webpack":"5.96.1"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"dependencies":{"@opentelemetry/core":"1.28.0","@opentelemetry/resources":"1.28.0","@opentelemetry/semantic-conventions":"1.27.0"},"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","sideEffects":false,"gitHead":"4b1ad3fda0cde58907e30fab25c3c767546708e5","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"_id":"@opentelemetry/sdk-trace-base@1.28.0","_nodeVersion":"18.20.4","_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","dist":{"integrity":"sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==","shasum":"6195dc8cd78bd74394cf54c67c5cbd8d1528516c","tarball":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.28.0.tgz","fileCount":291,"unpackedSize":796305,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fsdk-trace-base@1.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEyv+TGfQvTgAsZnjL3L4p9Dh+f6tk6Ixvo16zD4UiDQAiEA5yYDGo+Hjd6DCfSj66EP/AB3HNzp6+ehs7BRV0DC9ws="}]},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"directories":{},"maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sdk-trace-base_1.28.0_1731926510582_0.963577670721244"},"_hasShrinkwrap":false}},"time":{"created":"2021-08-05T19:28:20.129Z","modified":"2024-11-18T10:41:51.253Z","0.24.1-alpha.4":"2021-08-05T19:28:20.395Z","0.24.1-alpha.5":"2021-08-06T11:31:39.286Z","0.24.1-alpha.7":"2021-08-07T13:33:04.337Z","0.24.1-alpha.9":"2021-08-07T14:10:07.190Z","0.24.1-alpha.14":"2021-08-11T14:50:54.966Z","0.24.1-alpha.18":"2021-08-14T08:16:09.993Z","0.24.1-alpha.20":"2021-08-17T21:07:07.249Z","0.25.1-alpha.21":"2021-08-18T20:16:42.539Z","0.25.0":"2021-08-18T21:16:46.735Z","0.25.1-alpha.2":"2021-08-23T21:41:10.378Z","0.25.1-alpha.4":"2021-08-24T19:33:17.584Z","0.25.1-alpha.7":"2021-08-27T18:20:00.339Z","0.25.1-alpha.12":"2021-08-30T20:22:09.042Z","0.25.1-alpha.13":"2021-08-30T20:41:30.144Z","0.25.1-alpha.16":"2021-09-04T08:05:10.908Z","0.25.1-alpha.23":"2021-09-08T22:15:12.367Z","0.26.0":"2021-09-30T12:35:32.508Z","1.0.0":"2021-09-30T20:53:43.948Z","1.0.1":"2021-11-11T14:51:24.979Z","1.1.0":"2022-03-18T08:11:01.831Z","1.1.1":"2022-03-22T19:52:31.108Z","1.2.0":"2022-04-22T14:57:03.801Z","1.3.0":"2022-05-27T19:41:24.857Z","1.3.1":"2022-06-06T20:26:17.973Z","1.4.0":"2022-07-06T20:15:38.341Z","1.5.0":"2022-07-26T20:52:16.066Z","1.6.0":"2022-08-24T17:44:35.505Z","1.7.0":"2022-09-16T12:14:58.183Z","1.8.0":"2022-11-09T19:45:34.290Z","1.9.0":"2023-01-11T21:46:29.878Z","1.9.1":"2023-01-30T15:30:11.676Z","1.10.0":"2023-03-13T15:53:47.027Z","1.10.1":"2023-03-20T16:10:34.940Z","1.11.0":"2023-03-30T15:30:56.117Z","1.12.0":"2023-04-13T18:13:01.576Z","1.13.0":"2023-05-11T13:30:06.916Z","1.14.0":"2023-06-06T06:00:55.192Z","1.15.0":"2023-07-06T11:27:08.851Z","1.15.1":"2023-07-24T14:32:48.689Z","1.15.2":"2023-08-08T13:21:20.770Z","1.16.0":"2023-09-11T12:14:31.274Z","1.17.0":"2023-09-12T13:12:33.338Z","1.17.1":"2023-10-10T14:18:18.968Z","1.18.0":"2023-11-07T10:44:46.767Z","1.18.1":"2023-11-08T18:09:10.048Z","1.19.0":"2023-12-14T12:35:30.035Z","1.20.0":"2024-01-15T10:15:47.496Z","1.21.0":"2024-01-26T06:11:09.767Z","1.22.0":"2024-02-29T09:18:14.609Z","1.23.0":"2024-04-03T08:10:05.643Z","1.24.0":"2024-04-24T14:39:42.149Z","1.24.1":"2024-05-07T14:52:38.897Z","1.25.0":"2024-06-05T17:15:56.531Z","1.25.1":"2024-06-20T09:19:21.851Z","1.26.0":"2024-08-28T09:17:19.852Z","1.27.0":"2024-10-23T14:51:41.469Z","1.28.0":"2024-11-18T10:41:50.759Z"},"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base","keywords":["opentelemetry","nodejs","tracing","profiling","metrics","stats"],"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"description":"OpenTelemetry Tracing","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"readme":"# OpenTelemetry Tracing SDK\n\n[![NPM Published Version][npm-img]][npm-url]\n[![Apache License][license-image]][license-image]\n\nThe `tracing` module contains the foundation for all tracing SDKs of [opentelemetry-js](https://github.com/open-telemetry/opentelemetry-js).\n\nUsed standalone, this module provides methods for manual instrumentation of code, offering full control over span creation for client-side JavaScript (browser) and Node.js.\n\nIt does **not** provide automated instrumentation of known libraries, context propagation for asynchronous invocations or distributed-context out-of-the-box.\n\nFor automated instrumentation for Node.js, please see\n[@opentelemetry/sdk-trace-node](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node).\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/api\nnpm install --save @opentelemetry/sdk-trace-base\n```\n\n## Usage\n\n```js\nconst opentelemetry = require('@opentelemetry/api');\nconst { BasicTracerProvider } = require('@opentelemetry/sdk-trace-base');\n\n// To start a trace, you first need to initialize the Tracer provider.\n// NOTE: The default OpenTelemetry tracer provider does not record any tracing information.\n// Registering a working tracer provider allows the API methods to record traces.\nnew BasicTracerProvider().register();\n\n// To create a span in a trace, we used the global singleton tracer to start a new span.\nconst span = opentelemetry.trace.getTracer('default').startSpan('foo');\n\n// Set a span attribute\nspan.setAttribute('key', 'value');\n\n// We must end the spans so they become available for exporting.\nspan.end();\n```\n\n## Config\n\nTracing configuration is a merge of user supplied configuration with both the default\nconfiguration as specified in [config.ts](./src/config.ts) and an\nenvironmentally configurable sampling (via `OTEL_TRACES_SAMPLER` and `OTEL_TRACES_SAMPLER_ARG`).\n\n## Built-in Samplers\n\nSampler is used to make decisions on `Span` sampling.\n\n### AlwaysOn Sampler\n\nSamples every trace regardless of upstream sampling decisions.\n\n> This is used as a default Sampler\n\n```js\nconst {\n AlwaysOnSampler,\n BasicTracerProvider,\n} = require(\"@opentelemetry/sdk-trace-base\");\n\nconst tracerProvider = new BasicTracerProvider({\n sampler: new AlwaysOnSampler()\n});\n```\n\n### AlwaysOff Sampler\n\nDoesn't sample any trace, regardless of upstream sampling decisions.\n\n```js\nconst {\n AlwaysOffSampler,\n BasicTracerProvider,\n} = require(\"@opentelemetry/sdk-trace-base\");\n\nconst tracerProvider = new BasicTracerProvider({\n sampler: new AlwaysOffSampler()\n});\n```\n\n### TraceIdRatioBased Sampler\n\nSamples some percentage of traces, calculated deterministically using the trace ID.\nAny trace that would be sampled at a given percentage will also be sampled at any higher percentage.\n\nThe `TraceIDRatioSampler` may be used with the `ParentBasedSampler` to respect the sampled flag of an incoming trace.\n\n```js\nconst {\n BasicTracerProvider,\n TraceIdRatioBasedSampler,\n} = require(\"@opentelemetry/sdk-trace-base\");\n\nconst tracerProvider = new BasicTracerProvider({\n // See details of ParentBasedSampler below\n sampler: new ParentBasedSampler({\n // Trace ID Ratio Sampler accepts a positional argument\n // which represents the percentage of traces which should\n // be sampled.\n root: new TraceIdRatioBasedSampler(0.5)\n });\n});\n```\n\n### ParentBased Sampler\n\n- This is a composite sampler. `ParentBased` helps distinguished between the\nfollowing cases:\n - No parent (root span).\n - Remote parent with `sampled` flag `true`\n - Remote parent with `sampled` flag `false`\n - Local parent with `sampled` flag `true`\n - Local parent with `sampled` flag `false`\n\nRequired parameters:\n\n- `root(Sampler)` - Sampler called for spans with no parent (root spans)\n\nOptional parameters:\n\n- `remoteParentSampled(Sampler)` (default: `AlwaysOn`)\n- `remoteParentNotSampled(Sampler)` (default: `AlwaysOff`)\n- `localParentSampled(Sampler)` (default: `AlwaysOn`)\n- `localParentNotSampled(Sampler)` (default: `AlwaysOff`)\n\n|Parent| parent.isRemote() | parent.isSampled()| Invoke sampler|\n|--|--|--|--|\n|absent| n/a | n/a |`root()`|\n|present|true|true|`remoteParentSampled()`|\n|present|true|false|`remoteParentNotSampled()`|\n|present|false|true|`localParentSampled()`|\n|present|false|false|`localParentNotSampled()`|\n\n```js\nconst {\n AlwaysOffSampler,\n BasicTracerProvider,\n ParentBasedSampler,\n TraceIdRatioBasedSampler,\n} = require(\"@opentelemetry/sdk-trace-base\");\n\nconst tracerProvider = new BasicTracerProvider({\n sampler: new ParentBasedSampler({\n // By default, the ParentBasedSampler will respect the parent span's sampling\n // decision. This is configurable by providing a different sampler to use\n // based on the situation. See configuration details above.\n //\n // This will delegate the sampling decision of all root traces (no parent)\n // to the TraceIdRatioBasedSampler.\n // See details of TraceIdRatioBasedSampler above.\n root: new TraceIdRatioBasedSampler(0.5)\n })\n});\n```\n\n## Example\n\nSee [examples/basic-tracer-node](https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/basic-tracer-node) for an end-to-end example, including exporting created spans.\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/sdk-trace-base\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fsdk-trace-base.svg\n","readmeFilename":"README.md"} \ No newline at end of file diff --git a/tests/registry/npm/@opentelemetry/semantic-conventions/registry.json b/tests/registry/npm/@opentelemetry/semantic-conventions/registry.json new file mode 100644 index 00000000000000..6a311014c5e892 --- /dev/null +++ b/tests/registry/npm/@opentelemetry/semantic-conventions/registry.json @@ -0,0 +1 @@ +{"_id":"@opentelemetry/semantic-conventions","_rev":"121-22cfab9a4dd7d7efe31a44c18844ed46","name":"@opentelemetry/semantic-conventions","dist-tags":{"canary":"0.25.1-alpha.13","next":"1.8.0","latest":"1.27.0"},"versions":{"0.9.0":{"name":"@opentelemetry/semantic-conventions","version":"0.9.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.9.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"49f71eb9ea9ddd7250a8b326bcf2646d113f695c","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.9.0.tgz","fileCount":17,"integrity":"sha512-bq3ySf6BpHrqNehe5AlvxiY7tqDraCVDPMbIYfl2fPLdn7xMSuI6rZMrm+UthQxRKXWFgSmxWi7DiKpKbfc39A==","signatures":[{"sig":"MEUCIQDPfbZQp90wYBDEN4qwwC4Bb6eKXGnXdpnZ7ujqNiKipgIgQd/A9GBVABIWKP83Zr0/iMexXpTN9nEezgHv6PjFbOI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe69vUCRA9TVsSAnZWagAAkLMP/RQDEtqfFQk2brtaV7U7\npiPCKDt0jPZNM1LoHFs2ulrQ80qcVPhG+bqwTO0sBJ49yiYoOqASTXZ+skB7\nQ9YaW1tg71HsbB2mBsdh5kJJcS7SLMxT0uxEEpXCilD+Qmvfwlr/lVSEqKpC\n3GLe7XIr65bbqcXkBitfEJbxQcfNWlysC++8q3j/5so8ErUxjLCExQB9iyBf\nNR5TbLSZw8m3VrpDSQogQ65H0ezHHOE1gqjaj1ZgCIRlmwjZibi2NS+bg8vv\nUcV715Fh4NjgHBEg6iBSO4DtCi7BghfXMIi6s83XjncHkOQCDN31DM3/vZc4\nwj1jKAqFEyaFMO6Bpxh8rLlA+4ngmzCCQLNqaZWdMNEoqa9rMjEYQmQXBu+9\nJtwkPWxpDm+Pt/SDojVQVqvnJNVBoySYWDfcgcdqQWKezNlxNHefxAICJPh9\nLW/gjm/oTeJtrUist3Eu2ZEAjLkaFT3Dg8/mP2BNZnNkr6dbTpo55lUoOvMa\nybm1RZhxJPk1ZFQL7jvdf3kIihcXyU+lg9YOvkGHlUuCU6/xG4rJ9KAKxNMB\n9FsigEAq0WogwW2Qzf80LrRmRDoInK0mfTRHJxTl/I42ywY4qOIv5EP5Ry7g\nDs3uqTduWcgZiKpLZ8ZensMwAD2zoQ9d5LY5pVbKODrAxA/Ybjs1KYPQxflZ\npX73\r\n=PK5l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"mayurkale22","email":"mayurkale22@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"6.4.1","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"10.15.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.0","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.5","@types/node":"14.0.13","@types/mocha":"7.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.9.0_1592515539091_0.44542490113869837","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"@opentelemetry/semantic-conventions","version":"0.10.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.10.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c374bd7c50ba88d95e8c0d75898eb9272173a9cd","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.10.0.tgz","fileCount":24,"integrity":"sha512-aUEuxBXln9vg5TLLYCvOQ6Mz3vTxSXWVEV+0f4CJwlm4sSnFi5cXG8QTeFKNHn4r4KOGkaFBhUxNJtlD3TbA9Q==","signatures":[{"sig":"MEQCIC3wp0mxbtL/mXKRY0Alcznhy/6Wrxo/gOIl70nO3ShbAiBPIP9QSf9Y6/Q/2899hpshtZY3ClkPf31xCMtJi04Pag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH0AOCRA9TVsSAnZWagAAwQMP/1RDXhyOCQ/LmCasjz0b\nwy2oNgEGcilJXj39/x6FiTWDwN/HoiBEXNwH3afkak5xpm4fqWJYLDDV7nDf\nsSIsA3m0NT1adi17iDLolEogrVUUZ9xiqKIwKQ4z1IlzeT+CIH80PE0KNNxP\n3+7xHUf8w/W5D3TrpKNbgpt0JjK8876J4mTJhKZCMcJCTfshCzL4fypvoduu\n8vw6VR8VNVmA9MXuxZsnpA/odeNdWRSzOABk21fNFZzz8pvZapzei9cOwJVM\njQAQN7ZTmmpQpVdRDnuzrs//1G0HxcX2t54pBJj4omy1K5srN4kPWwDEN4u9\n7pu+p6LjyyOqv4QpDJp6UAOlvFOYx0DpTUmXP/+27CpErUrLzOr2Dayz+bMh\n6f15DO6fEMY/jmyGti3/Sq/zOV0z/Kee6w51go4R8gICoCKFV7KnJQO95OVk\ngtjEAgSnWLBDmcBSpU7kQykaJiEDEEqo2KuWICvkwqile6RpqyCaza30GySc\nH2QtzegccRl6Zojl4mR/sE6r+3gBIBNVLRKCLAONm48G97SiJTcULWghwDMn\npKbHMeDCr1RSI5SLw10ZFkfjtxjkWcm8TKRtUWj3Nal/+ys+ObabamI63u/2\nrHqNFCQUTbjkqPAKLHh3h5V0Pa3oWYOShK7+GJDzbG6EV9PoAO2maA6uz4Ew\ncQlz\r\n=DgxQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"ab62a4d69b99b3a8c9c26100c04f3226af7859df","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"12.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.25","@types/mocha":"8.0.0","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.10.0_1595883534306_0.041745728096634016","host":"s3://npm-registry-packages"}},"0.10.1":{"name":"@opentelemetry/semantic-conventions","version":"0.10.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.10.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"22c0674ba7834ae647e2159783431ea90513d2f9","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.10.1.tgz","fileCount":24,"integrity":"sha512-a6VFFehJl9eOGmY2Q2ckZpYa8cWExCbyHqGft+TQy/ExF3DnuYut0E7d5zUdo8AgOqvWZAPPWGacl1/lfot38A==","signatures":[{"sig":"MEQCIGzkT/IeV6KqKuWgW93pgxlgtsaGSveF7TurRwL4dlbrAiA2mcyz2QolG/yZ+HjljVJxCIwsuoS1R9WR03/Qrllyww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIEBVCRA9TVsSAnZWagAA9QAQAKDoUZlOiaZtCAzZ1o0G\nZSpK8tcmhfnGhLmOdanzzFixUofCwvowzd1s4ULESgaBcIa8/Ae5RcYWfXGq\nfalYt4WQHl2RtSpYkYCJhy4AkKqH6nMo2nQ82PqknciDE7/ViA/VldkwTQ8T\nsKV0PQk9vIcl70YhKWLn+g1DsmCuTcP4leELeSX+Bv6nnUkZeGYLQyQhKqYT\nBc4ST5khSFEMUqDzZqA63d4x1bMTwWyVolyv0mxZisRiwjtkF8DwzIb5MSPi\nyryaMYPwmrqY/+mTbutBlYWvLqzxBZK1A/Ue1VWwVAIDHiVJ+vrN8umVycWM\nA/A81MAv9YXMxAv25mKPB0/aGZdIlmFaKURHocxfcNSuLabekIxluPlBUtra\n70/WmLNN97jNVHM8Aq+n/cEC/ktFZEG5yz4q+cibllpNo2WqESHJ5g4RoljD\nO2xeqK5w6K0VLMdBhh9vYm4jBOYouh1UpVKNPQuUbSH59GNudoiDStwikf0y\nxlcNQAWRRyYWwNz44aU75lyzrG9663pEnss2yBE5KbF2ep/lJ10W7voR+EKF\nqMimKUOExud+b8sfCrQTj3UjZBDQeHl725Lv2sJ/eaK/oQpejN9sOjfAa/d+\nqJh8aWD3GKq3Dj3cZKiHtuFkBqiXO/xtWXzDAtjrbEsWRZ0yzzZRYslsq7To\nAWhg\r\n=U9wM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"03981e4299282d0611d1255ab0076368d5830753","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"12.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.25","@types/mocha":"8.0.0","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.10.1_1595949140695_0.5170589365360347","host":"s3://npm-registry-packages"}},"0.10.2":{"name":"@opentelemetry/semantic-conventions","version":"0.10.2","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.10.2","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a78c88609e04abc6ba3e652f51d7a83d13787b1e","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.10.2.tgz","fileCount":24,"integrity":"sha512-AaXFy0uR6JlQkDzkCKYiGeJDxEhdqnadAyqiiD0T9p77yjRkCGwydz6/HTp0G80ZdeBZp4w9jZ961yuD5E7lyw==","signatures":[{"sig":"MEYCIQDyw4dkOetEVl9trT7g+pqq+iIWKML1godcz7Bie2isjgIhAJ8HuWnCq3HXBr7w9nt8zHibdMRfnplq99oKU9svP8aa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKJzmCRA9TVsSAnZWagAAi84P/j3bCBnjqCnbQOx14/uX\nOGBa+EU2ZDy4imTtp4svAcHzfP3WEUmGlxwTxfMQvVjuDQvJB6emuk/fgEAI\nVi3Mo5Jh52o6P4LGBhx3dmTVku1p5PcaaEe6XqODbc10DWOjgn1JyDWryT1/\nnst115K+OBdTRm63ucZe5JrtVp0AkPkSh+sYJv+lCxVN3qN0HD7Txt5VciO3\nR+23UnuF91X/9Rupy2Y4/q1QZPYXkQdjPLcNQlUgEZO7GX82YijW20m69Gam\n8NT2TvmnLZmstNPdK5Wvfe5a5aXV4/oDn35rpZCUKw24NotDlE3THXJRPMWq\nhckfDZzKumMXiMnHw0z8IqCcV61O6n9wtvEYDavxygyzGKiniuZkDoPJyShH\nFavMK4r9IpmfXKWfbI+WPa3rgDnepHYhnEpOudXTm70ltTsFy6QN3qoWAIE2\npkTTKKY97ysQGpqNqetyrWn5WAXeUXJ6QJdZNrnzV8CL5RaiR8hNdqPCyP2e\nqXmX2P6QNAuXC1tdKcE+3J9orEWcVlDE4mgbl49fpIukyNUz+icjXDbLRJvK\njoLbNNTNWlHe5bdXpDSnkEBaQXgWRNvKsfF+HVPNAsfchgsjPH+2O8baU/IQ\nd87yeE0Qp87cQdBA+ikq/8wL5JXoMLJmAJ+3sBgZ4FAOs9nsaRZSJdXKutbP\nhjg0\r\n=c7qE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"b247e69034a7888a842fe75e0a5ff06f8bea44a8","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"12.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.0","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.10.2_1596497126141_0.5315110455188079","host":"s3://npm-registry-packages"}},"0.10.3-canary.0":{"name":"@opentelemetry/semantic-conventions","version":"0.10.3-canary.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.10.3-canary.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"040e7f582ef892c35541112b0c2230317a581ac0","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.10.3-canary.0.tgz","fileCount":24,"integrity":"sha512-9nXNtH9iUoGQJ6YlFEUG9+PNBu34F93FVGf54tGNqCoOExR4MUVHbLbJjQ+3Yqk0hpFAdA2Jw7/cJaN/cSi9Ew==","signatures":[{"sig":"MEQCIDOkJcSXByshZC4rVJjZrwKtzQ00CHItE2k6v2JnlpduAiB6cfjz8fW1vBC0KIVo/BiWsXA+o5veFgX7URe/A6qmKw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLYWNCRA9TVsSAnZWagAA/HcP/0Hbs0PKKRNNYickJ0kD\ndbozzS7wmeE0/CAVU7z3P32hIz6C4orRVqiE8ZSBj3l1jmFi7LMOYqYvjvYB\nCU6RkYC6hAG/RcuyUsmLfqGDCx8KvSMBuuWT3xZkImQArgNt2/Z550C9NwjF\nuR0J8tTnog/6Wnl9lWMsF+Tc2HPNS+FsyksZlYPmaliidQ+SImG+n8q9vP67\nrjUalNapqbayKUq8KB6pzZEllfGCHYFD75aC9bpz/S8abngJh9jawADNNaWm\nO/m37yJyRMCIhJe90y1g8q91K7tdFC/nJy5Qd+Nc3c/+iHX3nRAySJUw71Ov\nZqwplAsynH4Pn9H8EYPqw4FXxke+Zt27Cs3MVuObfyFtB5GtjNyrs2J23ftp\nXYB0RbS5+5LkmnuaZKpxgSMS1jbOZj6wKTpgspKMiTdtqy1OTpGjrREa/Kx1\nC8NnmqKcqyDb2Jfict/J/s4Sdpl+fZnX6/U3ZFYwG3Z3YbcWcJr08qWPyEyR\n8eypViw7yvRetRhszu/r/AxL1P+oIEpyIa+FMxC5gZn2ytVo0YUXeIbGhJiF\n7Myx+togsAulSCaAFQTi+1rT6/0somr3vieKMAiFScQXIjEwC9Gm9+hDg6BO\nU+3zeyYcJpBsWWrcc5CNoTIetIIFW3UILJaGnEfiF8CKWEMjZQ4UcFQW0rh/\nqcoy\r\n=OuCR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"f4f2f84bc087389b3206a2e17837b7b0b95fb2f2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","codecov":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.2","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.0","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.10.3-canary.0_1596818829270_0.44010568370877534","host":"s3://npm-registry-packages"}},"0.10.3-alpha.35":{"name":"@opentelemetry/semantic-conventions","version":"0.10.3-alpha.35","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.10.3-alpha.35","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3d18d512b70c3b35ed6398df7cc8a487f35920cd","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.10.3-alpha.35.tgz","fileCount":30,"integrity":"sha512-dFW6vARWcXre+raTGPCHsDaNS5uDZQLjzWKztJk8wpzj5FEsvE5/ZtKYmrW0VO2aRcwdGlN+M1M5WqKH8dhmeA==","signatures":[{"sig":"MEUCIQDeH24K/oeVz0hZXL5AzR2CjN+dk11ReQRA1PqFyOFKeQIgDVC8cm1Ok3RmAxvhE8gV7OUl/3jYgKOJKCr7J5eEVRU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfREL4CRA9TVsSAnZWagAAYlcQAJUttvAiARUK285xTnHy\nGD21a5UL2zBStQxu6+UCmIU2ol3xXh4qR7wkrgJQjRLBp/AzQrdvjDq9kHPi\n8Zb32DhHGz/d0cQfkEwysCvcMXbYvw+F30oAjsizsPRpMS5VbAyV4Dyym2l4\niAKQFLqltPGoaaJULT17IBoYSsYqNPht64FfKW03xPfQ70r39kS3lpKHl8vz\nd3NRPYjFSb5kLhfT7Ax9OnDoIBRhgVm1nsQoyv+TWUzWhUwd9a0cRhcHibxb\nrIFuBzmuquqHm7MnxFPgLfbeiBgStX5xqZSQ6/h7H9E0I/KlltMEx+5d8L5P\n8G1/k8oZfjcCCPHoU3ypEEyrX4X/6j+blpcpsBqWfreno5JNSG4oImFZNPL1\nzN4icitWh9YdSQw2aLXM+xYyfsQBLWiyX+fbJ8r6G5sNRkWalsGexwciq8na\nQBe7egzA7bqWd4dPSXX0RdWDsWAYSA1+ryR0lMlkvyfH89cNfq5ID80G2VPU\n47xMK9MriMlw4s4tpU1CiSoL5Vvx4qFz/AYkB3zxpGRulddPlvDnNnEzNQC/\n9Bb0X2DIQUh5kLmSrCWy4J1+u27d8mUSJWVPY2qLbtzsRFVAuJGX/KlZmroi\nRFTv4KklvXFSwYvWUFTzTXJsT88MlG4J6o2zIqy/q3WLNwEuZHlBJ8HVpr+Z\nYVIC\r\n=i2jz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"2ee9f1aaf7b61c4b4ae6b748f0a07f8fc708f07e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.10.3-alpha.35_1598309112134_0.12392498376622996","host":"s3://npm-registry-packages"}},"0.11.1-alpha.48":{"name":"@opentelemetry/semantic-conventions","version":"0.11.1-alpha.48","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.11.1-alpha.48","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f161d22d6a6c72b778e2f5f8d6811db2e192992a","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.11.1-alpha.48.tgz","fileCount":30,"integrity":"sha512-cG3iq57LfT+Vvj46n0Rc28xYc8/YdbXqqTNaCR/S8ONPHoUmW49vA8Jpnu4xMIwa5l+QiRNI8zXc2QjYw1A/Xg==","signatures":[{"sig":"MEQCIE5i49aDSVRJAC4u3TK8harb+OFJ94I56e8FxdPScQ34AiAEoHdYv65Zibr6ybjJpe45WZ1dfRoXeA5ebqMt52D1JQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTp/VCRA9TVsSAnZWagAA8NYQAIPo5XbW2rAcnJpj+b7r\nN1u+P2q8s9NlIJZTwBvoAlPIIHeizN94vq1dBeMpNeMiUkWOP0UKkm6pxAF3\neMnFyx+R8uvl18fsZ5w49pOuofm3GQSepfc/EJ79gvAN/8joK4+QXuoOLdyP\nL7xgJcImvZAxBhSTJDAS1HKWhIsIfRXQ9qstxP0QA9QgHUf82yBywL7MRwQU\nQRVcwP/FFc87P6Y/2oJQruDOOJI9sgtZDeKmzWsvb0wXy/gh1JKqafcqPvvA\nGgQq5QNkF9Ym3wbWTSSlO0zhZ26s3DjyYGMxCCNIM2dVNICvCO4VARa6XUub\n0O1v+IkS/pPSOONGYWATzBHthfVSDE6ILomw98W5FN/rUgbst+wF5KzPiTgO\n6cu79xX2au60411yQsyFsWQ43Qz2CJfwK/xdsIWCKfVVOvTmNlq904hNYlFk\nvNbha5VDdAO9fpdEoT5wfc+une4tPnMBvk3On35k/0tYnzuY7m24HXYDYJbJ\nU9rz9R8xf188wGBgxhQqsMdap+dxYcb/3a6kuQ4J+vXSJjdO+/Sft2tu2y8V\n37JR6c+Dg4yokEA/8Pk0TWnx/Ud/LFMjsabE7MJ9Dlp95lTPeOQ1FZ37oEG8\nXualgsUMr+PXRawZJbHYo29GwJAFDJvQEodbp7wblcwVWCk+Is1b8JHaPEkC\nkcg9\r\n=PNiu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.11.1-alpha.48_1598988245275_0.680701800189436","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"@opentelemetry/semantic-conventions","version":"0.11.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.11.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9d2bb0d67620bb8c01c95174fbaaefc109189963","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.11.0.tgz","fileCount":30,"integrity":"sha512-xsthnI/J+Cx0YVDGgUzvrH0ZTtfNtl866M454NarYwDrc0JvC24sYw+XS5PJyk2KDzAHtb0vlrumUc1OAut/Fw==","signatures":[{"sig":"MEYCIQDRFdeODmnCmCS26BFG4xxJHaQB/QgxJUs9FmBfH9q+ygIhAM0LePdAvJkdEdXxDguSx7o0nDmS3XhUKtRlhiDUmgsC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTqG6CRA9TVsSAnZWagAA4xIP/1zwqLHGIePMRhq1V+wD\nDGM0ImUfcikmRUoKnnNNvUmUUYf4hxX2Wqb4wduqZYkk+MNu7EBap6mL9l2R\n3Co5YKJBUyDEsiQ4UpLHaMUHco/Gw9Bi8Q+PsKse+9QN6VKvsRdh4mcVo30V\nQtQ342T2zWCx9sHwrg/15A56Ay2vcLZexRg2+nIi3QiwVEZsxlQ7mEn3JooN\nfs6YV+AwxQFJWJtQGqZNpHhHhf3tfvDG1UUJTe/RIZMuA28ISFS3d3YhMicX\n1o9Vklhsu+DlgF4ze+JYORTxC0x8KK6PWMT3h524jRl3xKoQapFh5+muxBDa\nOELSvvKfdtwe8xHgvISG7Iah2jOZ94uZArxQrhLGouvf0Knpo+87UfVDxwLf\naFQ/aBSDNe1Vl8xcx0FcbpUWot/tSpKM4zB+FuB4tP47a5Lb9hY2O60xCb5m\nuadbf/ixJ2JcopDa/MaWrqo7flBlBBxGukL005RFJ0b3zQpLdBYKFRL8UdPS\nGzd/n21/s/cFCWuJlW0uuvhY4ymjplBsfh10Rj9MmCYt0Y5Kl6m2A9t1Dibx\nSqC1mg8WRXw4KA2udZ0aVcZlq3qlz6o3V1YeW6JXs0Aq/tBh5qzKxvWyJkyT\n95Jr3dO+7uyliObA/z5svUHd36S7PUyVcxQ2QS9DhpotnoEqdX2lUVhywjjH\n2fZs\r\n=WrfF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.11.0_1598988729749_0.16543346634288647","host":"s3://npm-registry-packages"}},"0.11.1-alpha.36":{"name":"@opentelemetry/semantic-conventions","version":"0.11.1-alpha.36","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.11.1-alpha.36","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"26adc849538a0001165c7e0f2fab34c369c5e08f","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.11.1-alpha.36.tgz","fileCount":30,"integrity":"sha512-VLM1ZaOs60sn8lUnAm7yER1zfBhnvXzGZLz+DyHCi0bXHaJYeLG91kqmFBvAVFRGBg8djlUgUlIDSzn8iwXZTA==","signatures":[{"sig":"MEUCIQDgzgbicw5uHwcfuzQFoFqd3OP+JRwBD95ov/IrHJhmFQIgJml6Zczj7pqgVkVLbEpgjELdtUjvRG28gGzCgv/xrgI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41948,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHxDCRA9TVsSAnZWagAAcxYP/1TbunFravY4EBHpSIRf\nFDzKTGhMXls0Rb1DH+CjhpnX55w10FMGJd6tymk+6dY/CzbcI8/Fzc2K6KE8\nZOaqE5R1mtmfrsLksubZYdip3AXzJ5+ck05QY57VO17CtAcaKYrjTFJg4OmM\nVXtRE30yjFRva7XsjxUxgLUfHAbIEnJ7mj9ybmcoE0JtLrMsojIxVaTQ6k0D\nkCwFNeHq9yCPfg/fx0b0x8/3FkYb7XCJn/rOK8f/18hBaJL7aTMld3WdR/K7\n7i4yb3+3SgYfpSWdPK40oZzTWcw/ynpnaQJo+mR5fYYtwp2Dtfd1NdcMg3qM\nV86+CJ88x7zyWaw2mSMOpWgpgdXUc0+dolKOs+69NDUIB+TAjDE9u3P+z+ZQ\nxBHrQDwhe3DoWuFzNSTEVppvtGcsKHKnHX/T/suBK1I2EIUnAX8kjI7PEfse\nvTCWMpNlJqopdJWCFCun6/ICjENfB4x5tsiznmaD74kfSlNWOvxHivzP/+aS\n9dlw2x47/hWv6dNoRkgLRkPs8PntoAH+zrDcMyHP3RLagqYMxhsszt3aeNLM\n4kbTyG5ezOFnoZ5q51fhFCMz3KIdVyXzs0eGNIOoBtkLB6mbq4Gec7Ke3B2Y\nhQhXkZAcxLTgml8sryNTfaMD163gBrcFPh0fBEVA/WRWIhZmrzRThHPD0s2A\nJEWk\r\n=fszB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"6eb157c66925fe84b4960f247a86678441f3cb60","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.11.1-alpha.36_1601469506960_0.02822095039317496","host":"s3://npm-registry-packages"}},"0.12.1-alpha.54":{"name":"@opentelemetry/semantic-conventions","version":"0.12.1-alpha.54","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.12.1-alpha.54","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5ff66b4396291fa1cc53a4160b777a83b8195802","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.12.1-alpha.54.tgz","fileCount":30,"integrity":"sha512-lVvlWfWjEf+YR41rKMF/IEdYAYZ/0+4xi373t7pDUwS0DdpEX7wZ0bQVcihRaULgpmT4uGi9MDoowqGiu+24DQ==","signatures":[{"sig":"MEUCIBPGGyOOfbneAYrUUucfS5Lm/MZpqHDfuci3KhshYFhKAiEAo+k78udXnx0mkIs61Lt3c7rnAZ4ucFgX5BK51Pzzjig=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41948,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYtmCRA9TVsSAnZWagAA9W4P/1yiXCOpAeUU/V54+Vid\nEiUF7yyzsFZjAC3MqaU80kkc7RwNXzivKpJsKlZ23yZGF8TKxUUgut24TjOO\nJwnt2EeOP76My+TIAnmlq7iIV7vzXvFmIy96u8v3uXkDZvicf1srIDG5OQBk\nooLJtdBvzOmwMpbjqRFdHX0W+MO3TcDeWHynNI0pN/5/RzXMa4X8bYr7mi41\nr0mT0bGDuYN/AjoG/r5Tk28y0EHAnNNkHEbKuk4NjqYeAIwKRoDm2KsZCFud\nZC1JaQbsoIDSPq32CHnzB8auuWpH7HJeYQtS/9vS7/truiLW5n/iU14+1KkS\n9UKqV/KxeUpHsg1nptEL2vMHfjAKZDP+PTR7qIrTANJ5sQHDO6UJXl/0xZNG\nTh4DqlNnbaayqm+BxHJTVy/xbsly/abZ08wfa4McRuX1nVNhx7c+tb8TV5yt\n5z+pH4/jZS/4uaruN7lRwBNniK7swJPWWUJ1SDcKLuxUo9/BvLbGlogNjUrj\n/9SqioUKrp8ap+4RT3rZDKls1GgJqfTtdiiOauL6Nbdv6woo5oTDdWx/0TUg\nQISIe9uqTDHLsdnuvnd33HQFppwiL1P27cgtaALn5rG2xIy2jgfoCQ8kN6W6\nMpu/wgeaRcISHv/p4aP+6kh495N4j+tO/bNxKFYXzpCI+SXCOXS4hdg+cH9V\nH4JV\r\n=l4UC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.12.1-alpha.54_1603111781716_0.7395246488938914","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"@opentelemetry/semantic-conventions","version":"0.12.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.12.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7e392aecdbdbd5d737d3995998b120dc17589ab0","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.12.0.tgz","fileCount":30,"integrity":"sha512-BuCcDW0uLNYYTns0/LwXkJ8lp8aDm7kpS+WunEmPAPRSCe6ciOYRvzn5reqJfX93rf+6A3U2SgrBnCTH+0qoQQ==","signatures":[{"sig":"MEYCIQDsOmjWTuhhGW/H6k9SoX4S6q+ZxwDV0KPDr814reZ8uAIhAO4lojKCoZAGt33Am/tvo7Zotv0RDHS5g3ZJAC5nx+6u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYxNCRA9TVsSAnZWagAAu40P/13HclsbdYxvUzpPIby/\ncwaLwB/HYBF2uX4x8JBSIj52HfGukk9SzFF+tMI+kvbKaJ3J8V0CDk5YdUqO\n2wkBPRi3dTfDt7QWWcYZ5LJvThBdFSXDrxAKi2lW7vk+lplbnQOT9toihx6P\nK9gIcmKkM/+1UZ8JiNOFbpwW3lAkAv9KgM3JoRhQ6ndc6JcN+cj2U6XFoNCD\nEAXQk78gEanA4FSND+mhJyXbcKOY8eFEPm/0BGZ5Td7vWE4zZi/f6GpgUxLf\nmDg0ec+rCoQlpRSo01iwlEkotD3UzuZEeMWXDcdVBZuQfO1DEZNQmpH0VLwS\n/e/1mava3+2g5XHulQDBt129mriqPai2s5/kJhJk4ol3qbfSLHK4Bz5wLdT6\nFo/fvHiej9iu0efWc7TXAeNw4s12fAjKfugzqhGOBrkH6+FcbnEFmC02+lkI\n56HKjfFDHAKsYinpAbhEOQ9JJUDFs+IvhUd3KuNSnCjwPLZay2FbwSmEzNwa\nHMIGV3u+JmzCTT4u/9FG33jkcFGC0wuNTNW/MZqHO+XdA8OUkpul6N+N8roo\nV5wX0d3TNbvgJLl0F8GL/hLgkSz3a/ROn6Gwoep0bNiXVHNJ/KZnu6JNDkHl\nOgXBwj0c9HpobhO0u7ct7pGpydFEqi2554PdmDAVHWnOLqJaO0XaakBikbN4\nNbxW\r\n=kDCS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","typescript":"3.9.7","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.12.0_1603112013355_0.012556453559696479","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"@opentelemetry/semantic-conventions","version":"0.13.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.13.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"12269a15f160ce36345bdfc0fb307ba0184bc52e","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.13.0.tgz","fileCount":33,"integrity":"sha512-alkZh6Bb4bCJeTb2js2WYSGmO0qrHynA2FcANyEohX4QqezCbO4t2z0V/KopjDj201WuCY1lWoefgeZ/qnkCQA==","signatures":[{"sig":"MEYCIQDve4nOFwKGsn156RWrQircNi6+6y3A4t38/I7qkmi9QwIhAK2oKh1Jss6Ysm5tfuXxVkL01ZiqzTVRrkVTfFuQb0Vd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":51277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyqlwCRA9TVsSAnZWagAAkuoP/inGzAzyKap/Ny1K8L/n\nNZR275KqEvYa4cPeZ82GAy+ztARTns2rUfHVs6Kr1jG/TuaRI1mjnrl2Tqqd\n3S0HorR0NMpmb3VgrzIVryTj/ybt1qGqwMHMHVQi2V66w6/efzGyS6CAmSVV\nkIPcGV0wWxm4L+Dx7iGorlKSXVsSkr89PnUKjSLUpRNQhmnEiCx2A29sC0Ef\nrwe9b1lHvgpEdsRwgUYpoWD5tW1PZQJVvOlY4ONiThiXMvd6v8g6szhk+GZp\nqpggkIl9m99K0hWawRETW9BhA0U9t1vxz2i8wqBr2g+/1B42YJ2AtMwG34jN\nYNk+tRSvxrLpQhhR/sCMEMudrmwyd/ZAZKr4l+AC9v0qZGdkx0fc2LgvqEKM\nZASXdqpWmOgfd2GHWT99QqdTsr80W3DcPEPf8Uw19GhB9hTfmf1J+Rqhs9K9\nM4J//FnM7WQnzHTNULsK5naQiHJCsfcnY+NyB6uqf/RQ9VB2rPCmc+hSjznV\nfqENHeyAFBTFyUVOAHUvSvfIwfMGWrvaJMqanrXNfyOkWG5jM32xyDSlcIZ2\nv1h1T6n0WhrgBjK1G6k9X1i4cNRSF6o+qQPvjc7vOfLh8VTtBdDZdc7XCQmh\ny5fwi8hlOWTt6pgfdhfpo4WZlIopfSVwfzRMbJ8WJdRT6SrEu0i/uhJYdORF\nTNCr\r\n=sx5b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"86cbd6798f9318c5920f9d9055f289a1c3f26500","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.1","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.0.0","ts-mocha":"8.0.0","typescript":"3.9.7","@types/node":"14.14.10","@types/mocha":"8.0.4","@types/sinon":"9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.13.0_1607117168013_0.5474321269710216","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@opentelemetry/semantic-conventions","version":"0.14.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.14.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7b48f4300709b34cef0beed8099b79e4a5907886","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.14.0.tgz","fileCount":36,"integrity":"sha512-iDGRLQwo+ka1ljlLo4KyuUmzsJwtPw+PyCjetQwn3m/pTXjdyWLGOTARBrpQGpkQp7k87RaCCg5AqZaKFU2G6g==","signatures":[{"sig":"MEUCIQCl9ISYLlUymJr/170Fq6ze/oxOtmX0tj6Wnyoo9GsrGwIgAalh5vIc99d4cedMwNzmfac4F4Y2PDmIQ2g3My+yWRs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60877,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf28UZCRA9TVsSAnZWagAAsWYP/RR+KRrXwhbhAh8Ldkmp\nad3lsrVA0xxvvO0hT9/by6S642vEVJlhoRFpFGDi/QXtLI1iiqVE3IiKnj+X\nCknMuWiA+/IIWeHQMgaq5ZoKlzNLAk2VNOXZmtNv3a0J4FSwKNMeTiPO2md2\n6CRgY5w1Jy/+MrfBQp25MmI7zt4jfBrSbOV02mka5K/XN7McGWkGV8CxATSR\nfC2RndiUdKThtV0SrPOTyx1fKKgoRtpjzo6c9bKh1GW+BdR5dkAsKishxSLW\npxv3lFEtHye0hfdO4c6N1Tj2oqkF6K/gfbHKzMGQnPCcaQjicjrWIdfG48uh\n41FK6Zv4SGG0Lph+2sibas4y6jkS1ssU0h47W44nGRHoJcOI4hTXykzmN6AG\n9x6lx1dPF3Eyfa33wEVEpVmFW+rrtHxee87y/MHiozlIKN1GdHshh9qYpw6O\n82TdrNqataS698GbpXixAfeN8N49tNYJBkM6rarV/Oq6weMGPqri/685ufL5\n05zQLLN7PUEyuZJLrw0kZBZhmi/zOA3/ImMRgl7Be3ZpUynKrU4go4bPKDiN\nGwI9PrHrrbTbMUWAslJZdXomTHX4GOP2p/iSa/jDZHeAwbbI3MdM+xnxe2Ll\n3C7SWrpULf0bRvM4PQbWcE7rcCmczzFJvnB/ij/QpHuj0ptTay4fP3gek9Yv\nPDA2\r\n=PO0y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"27a8d4530c56257c191468b073669909bf8892a1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","precompile":"tsc --version","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.2","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"3.9.7","@types/node":"14.14.12","@types/mocha":"8.2.0","@types/sinon":"9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.14.0_1608238354996_0.37016037637721433","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@opentelemetry/semantic-conventions","version":"0.15.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.15.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1ab7cdd42412c12da6646415e1a08c8276a87a9c","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.15.0.tgz","fileCount":36,"integrity":"sha512-JYHR5zZv2+1bg//mx6YE6b/gQPs0zGqjD0/4dDwa9x1Jpo9T18h480izqMJIlu3JZbXwlGm9a7PQhMKsLis63Q==","signatures":[{"sig":"MEUCICnkKXeSZ9H6Tg6MbjpiO1+2rAtKmGHgnZ8Dpr5g3wkeAiEAgufydmt/lhW2b8/b4eho0FC73SkM+yd7TlJNQzSNmTo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCf4FCRA9TVsSAnZWagAAQgAP/3CADWs/63Af++1PUKht\n9EbhUXsVYkXgVdzRzDfRkGK8ly9z1pm7qPr/XWiz5WiKCtVV14uqCPrX5HiE\na7oKCY5giujI4x13WFIVl1XSmQgvMDLshr/OIP6pKMYA2XWvflfMz3fedRvD\nw09S/Js6d+lZR2q4BiB24Brsb/2TNfWzxT+opCozYvX4kA8h4txxsp7V3HD4\nYFgy5q96J4kShavqv2zieIO/rLVO91d4nctgHcsAsoG/AqrJ6ur8kbKWE/23\nsfH41/DTMDVINbuU8K8NZHSrzKCjrbkaVS43mzlQCBwe8lxvJSl2+FxUpZss\nAFXjLtWb3h0voyLFvbcvtDOR5mmqiAeihmj+PwPstOxhMEPDsn4QMITyDrO6\nempRY4x7C+gOHXLg4EAgbKtVr2NsNsbU/1iy5+oH7RjcMlUjuC84QdkusGPD\ntnPJlhsv+RpHIaIOLUkoaKY24J6M5MO4mNc8D7IwVPf1J+6NAaWL2VkEZ9gn\nlx3PiF4mZbGx4VYIm8TK6NH7PMiONHBLUX3N3q6qSD013M+98OBwQR4rRyg/\neEUd0yqensOOnfPiy4ujNjLeoKgZ98LdnTm2fd18OO+CxWJB6wXLRNhkqXjB\n9olIwN3HdL5azR2rvf8jLpAotaFK/wxF8r9INeg7mAxowCzO+3rYUiTsTiZ2\n4l8n\r\n=icss\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"960b868f5b7686eabbf49190071b8463551e5d8f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"3.9.7","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.15.0_1611267589214_0.022737145272430315","host":"s3://npm-registry-packages"}},"0.16.0":{"name":"@opentelemetry/semantic-conventions","version":"0.16.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.16.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7a738bd4fa3e8371d133a819614b4b57bb66cce7","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.16.0.tgz","fileCount":36,"integrity":"sha512-RDYLf6lUtikIDTr6yVDehsUAlNb1U680eOV1QuDN0w6FDGubTnjbADlgpF41ByOow1Jp/WGmynFfOh19Ix4NWw==","signatures":[{"sig":"MEYCIQCL5jdUEnyhZ7HwV6zxZCI1qjybfPDpeLS4VMnD94bEMgIhAJ/ENyokNs6BIJR1Lqd/pliSiDvJF7lxp/Um/IWVZ5Ex","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGIGmCRA9TVsSAnZWagAALL4P/0SF8hodSfjMbRj91X3p\np6qcXZ1VLjY/E2d8Z+DOFWD0NhIuaa2K7JxMdYmxUQVaARjLKp0lXUg+nuaL\nPQHmCEi3fnczAYlvvJL0E3swh2baxi4MhzpY5/1Bf640mI7q4sbloot32yKT\nqJWcsBKTA1zezoA955gfEz0Co36aJsUfed8NOsj1ZrzqYbOxvJNvtqw7e16l\n6LL/ZzGRPg3YuXimFKyeT5AbvmZiijyck4YqQcfv8s+hQJ1mDwgFJXJ4+PRj\n6lfHgPxIob/TmiZWbegNtqQ11FJafmLCxO9byF+YYFuEc6STSDhO56cEpAi8\n5a+BZzckvFvlpIWo05BCTMuCnqxENI4IAqZGem+AhrMk3vkGH3VTYYwU1E3E\nagMVArepYaaHa7xJbBKKLpmAf6W8cuuq/7En9fcq6df6YGMMJBCF/Er92mTo\nSjX5pF2OK2qVxlwtYxiSfSs7r2ivVD/q5LCxgBCapRM3pDwa7P+DpwBZrLx8\nr7IuSGf9KpahJyF3NR7Ut16uLZ/SrXF10AVLCtmD+oV6YZrTd2GtCVBHhZh8\n80xf5C7fzXJA7WEsDRKJo4jw0e2q1mnaAwwCKaBjHYh20GyDcyuPDSYVUXEI\neo27Ljb96Liv96P43Y0HUHraqaFPoqGgp2yEtqfg4020jbpJct8HaOVYPPcX\nd4vC\r\n=t2LY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"e68863f8e63854b08ad13fb54677294ac6d6b681","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.19.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"12.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"2.0.2","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"3.9.7","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.16.0_1612218790210_0.46371443314416294","host":"s3://npm-registry-packages"}},"0.17.0":{"name":"@opentelemetry/semantic-conventions","version":"0.17.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.17.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f4c0d5121c89a9638266b5f34790a60cb90e0152","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.17.0.tgz","fileCount":36,"integrity":"sha512-WtFcpOv1IHaI0kT2BaZcA6/+fkx6pWyJspUKBljA3HeNDIQgYGB2n6nL/6eaZzWNDvDBHzFEzOKULDJdIwGRlQ==","signatures":[{"sig":"MEUCIAO4bZyq0Z6aywxafK+sS1aG3ft9XT7sXpKj387CWJP1AiEAwaQdBq+Ue1KYda46poA+lNzKkknZPbNqn1z195pnr38=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYeICRA9TVsSAnZWagAAa+8QAImieoeIErT+EHuDvX76\n+PpKcZIcMx13tvs1JAfOxKM+IQqbbdCmqRyeNWPUKKK0hz0lzRBAILR66iWV\nnLM+iS2lg/ewrZ9Fu8M+yd8oV6r74AJHFcCI+ThiuCXIIWR8NKTsKLxOKhoq\ndMVUCKvhVUGEOGnVLVPV7IUsuYfbXMV9qQJaEtJU2FfhH6k6PoM8xnsZkDoY\nUvZaNbUPgrb16yubdjq+njYp1lOG8vH5uYExnpKz5pO7mMnxVwKxHBp8NP+h\nFkgkX/eDO2WGnCNvjCrU5IkwhvsrwugKiGYxFMv7gAKm/WZAFFM9M4qRrA+/\njwR7F4ae1lXyQsn+wf+45+NQmTjznBzvkHUzq4UL8wZDNmeziu43Vm+GQmIV\nqj95ZwwmXs78sFSe9d96CGxX1LDXRXHS5jXldNrvt2yaAgUut5WtZrah3c1s\nfeSd+s3/w4KCD22jx41VpNui1KrO6ur133+r3PRFafmROx5lYvABq+BbWCpR\nLkCNG1uuFlsDBz6HnA6DtIhZnwY4UdUQ6KTag31P7AwjWHw45q9R4MTT3+g7\nCFDItc7QVSroATdNkAYutlj0VHiWqfmaitYHNjDjmTDHX0tSRTCBI7ltZNWR\n3QyokIXByxs2isUtToDVV3X58ZlUxyAU+TfMNtJOsc8LrwzXniX2K+CiVwWh\nmJFy\r\n=z/0s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.17.0_1613596551840_0.0444643244435452","host":"s3://npm-registry-packages"}},"0.17.1-alpha.21":{"name":"@opentelemetry/semantic-conventions","version":"0.17.1-alpha.21","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.17.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a9b86d4f012e0c74a5a02bfc3c966a3bc721244a","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.17.1-alpha.21.tgz","fileCount":36,"integrity":"sha512-Nk3WGmAJXm0MNtK0jGshw4SgA6jl4YvoJoqCtUvVB8j+8hZAyp8au/R+XunpCYKQuQkeVJNntWLO5WjnCJHkzA==","signatures":[{"sig":"MEUCIGTQ1O1zT0SpV5A4pzi7krIxDAuyrcAtHTVosdf57qjyAiEAhRalQtIvQcCmvhGoq1pVR1nNb6/R14f54kaeyLRZv3o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYerCRA9TVsSAnZWagAARr4P/2QQ7UeG5votzxdbedWC\nvJS0svklpkYSlmhFAtCcLH1UuSmBTZdq0dHWR7DKG6dHiGu9KzGBxTtxRdbe\ne3lnimKbwhHH+Mut/zpTsCFd9HCt2B65M4g120/KESxVGSxvnwAay+4WyIQy\nOnUhd/5fdqBdHtqfuhnyjm6tZoS97h6eDJ+Smcynwr1+1Iorrz2WE2hp6fv7\npfuv5ob3R+g+IC3J8GsiYPml8WvebgaEN2c1MQuBJZHi5GdrRlYPE1L4BVoh\nPCxlKN3FjxYo7l8gW+X2mNRxh/ii8m9fwALlAYZOvzv+kJ7auXFtXJnmgVzv\nhTq5VkoNeWEhP1Tkaf5vzk+lmkJ7gpOxZjcoRhiPRIyxXioWG5PKsvIatjq/\ncbERuX+g5/daQEPdCRALiDT3ANl76LQJTTSBhlh6W7qcH+g/FJh7uYo4VYNS\nYqgMd551kBJp6X3pV+gVpqSEw04n6ArHBuwanjqT/6I4bUym5oW4jiszY4XL\nXO9QZx0PVMBPICCQ6Wlrwymcu9tfFgh7utGz88RzBvwssxIC4Bai3GJVGoDO\nz25U+xjt3VC3ayiuw5nI6r11DWh4394OJNM/hCcVAlcu4PrmROwMsDXNhOBc\nfMrcM8Q7Io9C3kQPiYM7JKgYtlMVHJAPOhn2eROPPlmpOYkkjsfIoqaiz1B3\nACBA\r\n=qaUN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.15.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.17.1-alpha.21_1613596587531_0.4512703736820274","host":"s3://npm-registry-packages"}},"0.17.1-alpha.11":{"name":"@opentelemetry/semantic-conventions","version":"0.17.1-alpha.11","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.17.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"71a4e60578a16e0ced0725e9d23794d57ba6ced7","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.17.1-alpha.11.tgz","fileCount":36,"integrity":"sha512-Qys/DEP6Xd2oE4fYrtF+N9Es8f/tAVqBZa1nQt8/RFMHzAGXtSv2WiecmTTIVM6x6JyEQDiYBWn3YE3uVfVPRw==","signatures":[{"sig":"MEUCIG4+UaSRAjpxUeNduWcmc/MLDCFSkw2VE/oWNaD9QWsPAiEAtbKBZ9JYv9W2K5gnJBexs830V5V+MziKyq0NKD81zCk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPj46CRA9TVsSAnZWagAArUgQAIFKIn0XXRSEsGFgOhFb\n6ghzvNZVdKQQMckKgH7X/7Njbrlb50HmE/BFcNXTYk68bzW7o/eg22BVGleb\nGngdATceFSi8tcW4/7P40cX3ej8Hor3M4DV7divL+PnBIP2WDXfSZx+7l0Gg\nxWuim7fN68RJ6gZ11yEmO5QpYu7ZSbN0YwvT2G1wopVVCehEwf1XwzDZXKNP\nwDBHqEM6yFjpqYsNzmtdJc7Y3kgRVgi20lWQa9Whn/ZnXM/21jT+X7Ks/jN2\nXivYtyzacalUqrW6R1JS3gMZniSSH3VjU8jcy4nTh6KN0NNauxJ2b1QEwqYe\ncdXTrZOxLBYamb2KlBd2pdfwDwtG3TdnVLARvZs1nRRNo+1w0YxxPsAl5EoM\nAMqy/7Aaz+XHuFJpgCff8lCnHHYuUKFo4mPd3RZMMtZ5Ie4Y91/pW2mT3/Ib\nUJSoCKfaW5d4kvxkKChnLwCezp/POSqtXcCbJlwmsouZStZrdBBpjkzEXWuL\nPVL9QmqUn/6I4vyfP4oWTp0mgwvipmXmygKQW4GLpjhhEgwp38bKmWjBu+hT\nKoqWJYEyb4kEykOs+tPP4nemFJJCybIbuH+0YJ7FyYKSrf+KlmoMqQDgtZNu\nObJWBW8UQS/nMAL5gRo7w/A0EderZAl5vJF7yowGDyeWoHqAwhpA3ueZhgmU\nK6j9\r\n=BGuf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"41235a9e68b13050ad49b8d6abc5c868885a74fe","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.15.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.17.1-alpha.11_1614691898155_0.2059908909345083","host":"s3://npm-registry-packages"}},"0.18.1-alpha.12":{"name":"@opentelemetry/semantic-conventions","version":"0.18.1-alpha.12","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d9f89122e5881058f2d251e21ed11f01dd3a8ce3","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.1-alpha.12.tgz","fileCount":36,"integrity":"sha512-8aBXooo/PDDPni94VaZE+xrtEyS1hTeMFUxeQU2+ggG4+Yld0U8n4PF2qX5W29f+jcZwyK5QzJZKBMqQGufVjg==","signatures":[{"sig":"MEYCIQChp2lYMDH3iPqLcoDsQbgD0tT6lziSITBRSk7qTVL7iAIhAOV+fEM7gf81vjM/QRHI0LUdo2A3sqvIkDgQKZCOmklN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPkNsCRA9TVsSAnZWagAADCUQAJsGIUlDLHdMxsbEKYiB\nQXhkBdi6rl6QXwGI81Ugy+z5fpay4IbiLYqxCdzEv3tHMMadwXsIxqN0Ae7Q\nuad2+VdyiKVfLO/2+sCl11HB8COADevxRy6ZXZyKzyYTgxl35weY9AjiW6EM\nru5jxAfsgcT2bzvaioeY7gvX55XYJkf6SOhekE4hZRFw7+/5PMk4aIBFW6UB\nHZ7IJbEag5nmK46A+EpbnmjRdolugYFgTnEkY5kyyWFnZKkL6ri10EA3w0Vv\ngLDwopNbBlWLGICskbDYaXKcN9xE+Nr/bGOleIXvxTXXMCnZUWxD/KuX6yH6\nKb8LeKtfnILydw9qXxQq558wDRzzTlBRlVA2KfOrR82W0qkiIkd091BY4p1T\niZ73UuoUe0xrvh8U2dVIRXRawyEH3+dlbAQcxVXmnYDFQtPSwm3jPzooaV1X\n7mZzBaFp/6WQqFnsgnpsfBEKEFgOwE+D3BqSeOqe63ql99i9Fxee5i/XJRWF\n3xYLc5ZyNSI3nrtG9E8hEF9Znl0fpkbOIC0j5wdDaMEUIIY5ywUL6wbnFwMR\n+H5eOiiFFnAPVHuolPZMAA8a3VKKKsn05klskxkNA4oihjR8TTFNOkQT4uHq\npd+PWxaeaiQmp85Pw7XXD/nS8B5xVbVMGouicSq2TFvamw9V2zSMgs0JvAHv\nH8xa\r\n=kL82\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"6540b54a8bd49746e164ab730269188237f89b1c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.15.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.1-alpha.12_1614693227971_0.7227346629756775","host":"s3://npm-registry-packages"}},"0.18.0":{"name":"@opentelemetry/semantic-conventions","version":"0.18.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"169d05965dfbe75636bde2ea888cf9be2a404e36","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.0.tgz","fileCount":36,"integrity":"sha512-02Wi/zFq+RWfY4llRicMashGhyZvUtMfXu9UlfXMJiDbGOgkdua4AeOCv9lDqv1GIz11xr5qS4tFjLp7WnlU+Q==","signatures":[{"sig":"MEUCIC5Flob0tKVXWwnCJEO2td90twmRt4h7CnMcVOI1IhTaAiEA7hGxnkmUvG8DQdjhj516wBPOYzPo7VGJS/xNkzbeS9w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPkUaCRA9TVsSAnZWagAASY0P/RIlaZ7DgPkC6AQiV95P\nIwafxrzDMsQR9D21xt85Qg4bdCdYtSy0vd8l2OWMUPEFUigmZoLLosAT6zj7\nqcvXjCEQklyHCbTiYfJxbe9rN8Wevxlyy6KnQkkUlUBzfFRgnDFlVvTuWaxO\ndd+GpF3vJ0BF7sc2GgCMvTPiuJRgcf70IqufJ0D/Ys2CNNHRR6GhDEu8iSOJ\nk+rul9d5GvPWyibIcQOHPAv/f1QLny8vV8so4QHxeBNIl5RnBqtiwhflqpGc\nj3mRyjpVS62ijp0FJEwC2HXFDoYn1UhuKdS4tkyLU68DBZZy9RWWIkViCIro\ns0eHuzwrYhanpNtNUwjxIHFoOnpXldMjuWhcRIuofiQMq8C4I2BN1FUBJDlu\nw5IN3YfGkN2ZfeOFo7gjTDZ2q+DhO8iFyTigZrgcmu1RKGcP0ErfycV3NakT\nhFhFq5iQtocAZSR2Vlw1WicrfkP8nAnMlpVVK4NpCY3ShTq4Kf83IuAFtm8r\nkYqxR9hKhNNZBl1tCOfRHKOuEpo/HJNlzO0HQW7jDyt6Tzhnw5hC5C/y/kRW\nZJqdli2FuiriYY7f+M5UqVgesX5nsXMhQb65Cq4vYbDVQP+AWOTgnXqCGv7J\nzE3U9ZblLja/mbfpCZ7zzbB+AXjBujUrlmd253A6XJHB7DJPnZVTptqJWoew\nSie4\r\n=073i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"6540b54a8bd49746e164ab730269188237f89b1c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.0_1614693658411_0.6614189413186446","host":"s3://npm-registry-packages"}},"0.18.1-alpha.13":{"name":"@opentelemetry/semantic-conventions","version":"0.18.1-alpha.13","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"baa5d2e9a8516d332d259f53ff2eaff1436870f2","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.1-alpha.13.tgz","fileCount":36,"integrity":"sha512-F69Vi616ejiplcs6zIVqP4hjiB88JS6GDLGIzmEsWh4zwBJZPc+vh/2+RhX0mF6og6XN2qTAxz50zlnUXN4hgg==","signatures":[{"sig":"MEUCIQCr3CivUfSUYORUWUL1Bs0m+vzI826SbQOPWw4bVd4LOAIgJ/wqZbl+/GplyZl4DjUgo3n1q5TGt0riOG+2IQmpK/I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgU38LCRA9TVsSAnZWagAA0UQP/RC7j814/PSmtVJEH84q\nB4qRGAyuQv1SRZltYDJpy1lVEU4nAI7XhdTtfAOYnGtFQIs8vUDtZBr4DTNV\nwk9/FIKZ7wTIIM07JBjBXC62JYUO3Rz8QtlMP9lpq1ZyHFJnoudJOnmRdo5Y\n6wu60RLmSxuI/gvj2aI4SrRg8IextJJsdiz1wF1C+b2yksNqxKlcYu5Ajy6B\ndRmn9XgXY+ZFrLuVOHlHJhcb7z7Ic0UDnsHs5Zohz0w+l4i9pLcBua17FOVL\nEJWHdYzrVey0G4dZEQC/edioDP65YlKSWiMZ0MUK8TAGGW62ce/i0qbTM53I\nFqx7mhbHjsjA6XX1WwY+njHOH031j6i4lmEKKiNxaBN5DLB5Y3puGAwAL36X\nyLImI1twrjimJSv7D4krA2Ih9QuiamWHnbT7XuC7UJOqtWTLuUU99Dn0AO5x\nmzj0mtrPXgCHCSizRt5n8x9NiQl3Op2DciP9SXcHjj19ix1tsX8w+FzhMKdt\npC8JR5hfo/Rw4YyozSOJZFjpsT8j5bSqtnXVfmo8mGyNF/2aBHNVi45s9AKg\nHzDY4r8UmrSswiu+QgY0ZpEny+E/OviqOUNtmSv3qr4ssnISiAApGOix8yeK\nPw45fmuej95iQ5Lb1o1ytQRuZC0WtT+gwxbEotVcCNhkTmluH725+PUVo4GE\n9LXb\r\n=kzM6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"445c39fcd54675d455115e22605b6cf3434eb071","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.1.3","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.1-alpha.13_1616084746589_0.2934524292951346","host":"s3://npm-registry-packages"}},"0.18.1-alpha.20":{"name":"@opentelemetry/semantic-conventions","version":"0.18.1-alpha.20","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"93730db51b1d6c4b3b49d99c289c5ab1f6fcc15d","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.1-alpha.20.tgz","fileCount":36,"integrity":"sha512-29Z6xmt2EKKmCFI434kVBCPFtISB15sDxCVOJDv7EYHK7XDNuKHt448Zwe7ysY1uapFlXsKjfn8LDMbKSKediA==","signatures":[{"sig":"MEQCIHu3v5Od/Ww/DrBEoIvYNKgQC/gVcNqfWwHFaq6SRz7TAiARnjSg125HBNx5VwrDmxPKBuRPYwkCOmiKI0uKSkJsBw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWzpVCRA9TVsSAnZWagAA6iUQAIzt7ZjWz3wN8fsWTLFM\nRsQVWxYhczq2f1op3JivL2n5pqqKmKiKsTaX3ck/v/aLJ0cf8bIo4Sj39pDe\nlo0wt0ObIPlYr/tSpPLA2B09kg+bsaK9cZMqcR7f3BAndWSOBGFpeLEED5zN\nWdNKXQWcNmnGJtOl1qTnAG0O60IK1Q51UNs4mkhD1lkulg1y1/OOdD9KoOjh\nbjT/alhVqz8D88dcHLZTONbuKR1CFbgaqYIo5Ab8KpUCBPSSlg2lLklf5xkg\nTQWE3yRdzGWsCK2eNicdYZ7duQfz5JnfDRNHVJdyENG2GBOboBYTr22XKv8T\nYdm6oJ3BuOpxfP+X/jjXpFKBee3yj1VgwUt1RKEYiV8vr14+IRXs6iI6fJid\n9s4+ijSdlwLIyZA2C/MbA2KWGwmSMRRKieZt3NMtpEZ8xreMWP8sORlNi/en\nbipAfdKT/IhEtS1efV+XlxBZzvAbC9RpP/+iD0w33m4S+3sFCvzW8TYk9IQm\nUaxqbxjSDoskd7HludcGsMhe9zfcdmlsOIJMvls126VLex7licV1DgwgWfoP\nsPoXroiqyeEYfhinz0uBeSzid/3lXAC6wkK6iHP6nIoqLfH3buIpCnzvpXSV\nTD/aU7oXcKJfJO2YZDI22eqwz9mO1ZVzqVaMXRN/uTa9iE7w3N+RS7lC1ZzV\nFWkT\r\n=tn/N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"24bcfe82340e02e605c5c722b0f955da50bf82cf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.1-alpha.20_1616591444680_0.8987200612915478","host":"s3://npm-registry-packages"}},"0.18.1-alpha.24":{"name":"@opentelemetry/semantic-conventions","version":"0.18.1-alpha.24","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.1-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8fb62e9343e276956702c4b4c8d555fe6ee66935","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.1-alpha.24.tgz","fileCount":36,"integrity":"sha512-R76ggHWiGDhtjakyiHJ84mqnC8X1zGgxePHv3UCnGK4uLpnsXqzJkj3pM2dl9DkGSF3Eszn1KsZZAsQuz1tBxw==","signatures":[{"sig":"MEUCIQDHNlmE60+74EXxo5xUaqAsZD1snwSsBuEL2iB47jUUfAIgM/3IlpACNgElNseU2x3sWgRO/JsMyxL9ztMnC5Uoecw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61911,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5U4CRA9TVsSAnZWagAACDsP/0X5ztFPN/xzwQTBWm38\nNaQvmIJ/1WkQOCcA2tYlGtb36Opq38BW5gBV1Y52wTFlEub+JmcsIewkc9Zm\nmMGD/eg6/a4HbqiwgnkxuuILRDpwQLaZxR9LOlfroVqpgUMjImcqjXaVvfx7\nK7v7r9zgJF+ADY0FK7K2s9HEWcYGxbvrwc7l3s2puOBDJDnDqHpXB81A/8Uo\nbPQcI6h4+fZHvM3TIhefeNzEJYRdrwxQYHYyQoA5eY5Twk6EgZhEktUmTI5v\nFLlii7dCTXKO4LzXgPYICy5GVNFJVazERvVLwWsbk1yyngwKmxNadoaVOb00\npSAzK6SSnqi4UwVUMT8uaezNRDt+WSid3ey2hZPYXalg+DSax9kjCc/+oQrU\nZjsKE/YXIN4rnsMxEBl1/7I69r+NyJcijh0Ta6ra0A18ndBCFVNQjJ6GlXmg\nJPtz4ZRcwUQiSFy9bCB+MEP3qxK4HL+IJ62hZZc7tP3/wu5DzFMulYPAIxRD\nHpwZc7ApX/0yeS4R65mrmCAn+QKuQQuyS30uM6xjA/nBTkNvxe99YCMhtKUN\nnru+2rSxbPcEipNYJFXEUAIzmhdZGyujRn2dyJ/VmNCoaERePDQ0XEU62vkH\nFzPZk62MhgPotwmbrgOJXXpxtS1EP1Ce+t2PkHMy8nQNuUf7hQKBMKp/tw5v\nHhCB\r\n=kmxc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"69f2d3c264497bfdefa2126d0865ca56ad5f22a3","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.1-alpha.24_1616614711597_0.8890282196855515","host":"s3://npm-registry-packages"}},"0.18.2-alpha.81":{"name":"@opentelemetry/semantic-conventions","version":"0.18.2-alpha.81","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.2-alpha.81","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"27fb7259a59017a81fefc445ba9df156367e7632","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.2-alpha.81.tgz","fileCount":36,"integrity":"sha512-d2dTI35+eTMAvl6+BZlNmsMDSDNZq/vGH19ooDm/uDyN4ZLSPRoJAPlEhiUnPHRCor1AXWoOjML1IyDjYTlVuw==","signatures":[{"sig":"MEQCIGlbAOkTPWCgl3qklVHbn0w0E52GXlnUtHkCydy+/j2hAiBocUcnPfI6qWL783tTaRAPO0ULT5I0Gl+THnMCQv8SzQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61911,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYi/ZCRA9TVsSAnZWagAAhJkP/0UcEMEloAvn9nMWWVgN\nH5jEhU4SmFSP9EEABDmOEspfCVwssjTDgzJJpAcLt4PzljPDBObM6SRLHPOu\nW48xQoOmiwdD1OUvsjLeer//Mmv+OQVRV1ncKPNWxN7Sx2wu9rtWPUhdBFLp\nAJcn4/Ae15nnHcFw6i5VQiMHDtMBcqCGsAzHBNuijFkbrV75jbgAvHsMv48Q\nd2tawiWgB43X853G2CtjItCoveHWSOrXGCmad/4Fee+7UmF3Hh4nFlr39IGP\nhGFdpzwEaI9E29XnTNFz6qLwdDT8FI2e8NHe3XtU1LzEaZeOV0Pcxgb5IJ1O\ntutfPTT9mXps5drGQRo7BcgFrBty0E1MienZvJulY0NS/rqsXdr+nTKbuxDc\n2C+Hq+M282Xi4E+KVPnxThwSXvqCDYAhOseu+aqdZQ313qple1YOARxGyikq\nzC71vfezWCZiTfp/Mp0QrSGAWHUXTp68MsQxxt6Py4TpOltGQDmr7oGeRILQ\nQcGBrGdtnar+3/lgYz4YNmuKHOpklduFl2nufsjFaGa9heiWivDZS4FmrQ+E\nWHGtNcogKQ8cj7RAQlCDnMK9Qx+84X7yfyXTPhOufMtZw8MiXw3bLIXxW1gJ\nxV1AMPshhLLOT+weETgaGglwWIT16wYFzzHo8+HeDBRcr1mQVCGaaisayLTi\n91Vt\r\n=lYcd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"e369035cd228a5c8781069a99322c5b938061d20","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.2-alpha.81_1617047512687_0.6536732029295189","host":"s3://npm-registry-packages"}},"0.18.1":{"name":"@opentelemetry/semantic-conventions","version":"0.18.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6dcd3eb90e472aa946fc8939d5c96133b180ad4a","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.1.tgz","fileCount":36,"integrity":"sha512-OylKMcnDh6yTpFc8bGkHyAEMwWKpr37H/AMEbwnu6p0ZQ8wdlFxg8BjsulG3ztcdRUuidFf+DIDoBtKACnxwuQ==","signatures":[{"sig":"MEYCIQDFHJ+i1Zu+YV4VVtVPQY4SqqHEP1Iw2yTM1veKKUMh+QIhAMvoEPXPaJNQuUWlzPuqd0SkX9YoSd6Fi8ZkbYOUf67A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYjKnCRA9TVsSAnZWagAAJTEP/RDIhiSqz6IIDvoHfSI6\nUuuE2l/wVfwig8jMyruhYfNdJMtcaX1iOdC0n0tsZhMjDwXWrkVnq5xIzNSw\nVw9nt13KQNs/Nl9rlt4oi7SDK0SbWMfLc3K86J0dXLuA9Gk+bRkmTUDiRJRW\nILE9vRA932tKBXubgXbAGydVEiHuVmJUHcGLM6sWVo0ON3u+Ds08Tni1X1tr\n5o9zI0ke9GK4gOtsL+QHoxpgt1NgeicDuJKjlfBsqQeBUOlg4aeAxQHacJGG\n1vt84/ESVlw7X35ie5ZIY79l2IaDcSMXyTNl2GShSm+CVZ3+6CKYkIWOmcMn\n/vCBnH1pInkYguz5b/Z1xlygbTIXLUldPIoigqX/7mMJsGw1SkSRo1vVpolH\nrCVNSm1Kji0qq/oNr73RcvU+xnwHi0+vPAn8/76ZBVSPCkq2rnTU1g2HxEIv\njfqTuHUQRNowu8lNoO1N9bvBgIKPv9D61Rowi8wIBkzfMB8fbjupL8ny8ORS\nJbUuefmEqeXuv4r8mjElMM3miP8/tMu1H7EJzrwKWsn/2IqV4dSZJHwLB9Yb\n0RYiiDMVt5ybMYvJL9plsxBkuwWHentV2rPqQRhl95Mz/f7wq852y+igMRSo\nqLQV9ruETmFXLWPSRSFy1GbElur8TGSdKx8/j7hDYQUFOuR6Tu2hu1/TpZZH\nQah0\r\n=hhGa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"e369035cd228a5c8781069a99322c5b938061d20","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.1_1617048230960_0.6097678870950254","host":"s3://npm-registry-packages"}},"0.18.3-alpha.2":{"name":"@opentelemetry/semantic-conventions","version":"0.18.3-alpha.2","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.3-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"021e090e88ff45c7c776dadc8dba5284eb83f6fa","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.3-alpha.2.tgz","fileCount":36,"integrity":"sha512-66VCIuTYuc3xysQipl1ScrzwqwPR7TteLaMg/2ZNy/B2cfEcK+NAeZI7shL/J+kDwxe3UuTWpIX7rblxJp458A==","signatures":[{"sig":"MEUCIQDwP7EKWQr6aDYLBsufvVjDSELlzWUFQ1i6WygAbKthBAIgcHO6pS2s+IZQU/MZhKDTTmqTP3iRIgUlN+5n/1H9KuI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY0M/CRA9TVsSAnZWagAA278P/AlBNAw57tjQU/z0k39Q\ntATnNAPnukv/wegctRH/dHc+hifZwMLNPbwrFpQ6wYQVf476OtslMw6Wbv44\nneN0iib9lWG1fe2qvvEvdQtGxKH3HJ2LgxpV7LtGSq9S4LRVTbWZZoOZdyRp\neBZnaccvb54EsORh2y9yIfGUkIV8GukMTmo3JtY4admi9lV9hR0AA7qOjTny\nEn7jA0j/Sy/kblnDNtU59uxEedw69gGmLZaZpbsSG7N+eX47dWWohEPzZp4t\n9Qm+6Js7gy2tV+YuIcHsGBb+ni09TcVDiyjDmTCJrjxGub2lF+GxQguj2yt8\nhh+pNgz2uV55z3QIqs4u6Qd4rrbLUwTQxl5gmYYdSG9a9z/V/KoqqmOxs+OM\ntsxDh66wdkDLDZ1Qi7Muz00J3lUnDQJWT0S4wnj+jmW5BzShGgXITGA3IJSf\n9GAcGjzmr33fc+W6Bzasce6Y481E7mdG3Aeu70pGSDaZ4SCg0wZt6E8/j5QB\nOjRWw3hL07P4wpdGtWgV/E3VCSMptePSBs3LN6SWeLgXkK2iMQagx5qk/jL/\nehLvQEljlORlOfCRoAguhT3tkdt10y+aMV1B6Q7hv1AHTISLzW5adrOuEaEE\nxf9GBJeI+kXYPuTTOn/gB1vphDdm0PKBq3x5w2oZ4TmMWQ35gl79cfXKoKH6\naVkS\r\n=XHox\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"2409f1cdddd92c23548c18c055a6a36efe36349f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.3-alpha.2_1617118015329_0.45762901798604894","host":"s3://npm-registry-packages"}},"0.18.2":{"name":"@opentelemetry/semantic-conventions","version":"0.18.2","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a0f15d2ef752567713c1f59f69c6742edb03030c","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.2.tgz","fileCount":36,"integrity":"sha512-+0P+PrP9qSFVaayNdek4P1OAGE+PEl2SsufuHDRmUpOY25Wzjo7Atyar56Trjc32jkNy4lID6ZFT6BahsR9P9A==","signatures":[{"sig":"MEQCIEzSGTEC7QwPOwHarcRlouV0IRMzcCyt6UW7Upok+LyGAiBHI+yC8GQMTVsfcJAp5BaS8qwgaVwZgfPb+L8lToGt/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY06tCRA9TVsSAnZWagAAvPMP/1ntclARrc6i+u+PjnvM\nsCyKnlgcP0/F1cTQ3KSkC0DkqV0l3dajWXzdnPviYjL7dLxlEQCVxyTuzwTv\nLiDHIPpeZLGc6/iYU+o65ZiGjjkH6kQIn5WX2mnbCb4iKxxD11SXzIGVamUt\nwj1KkFmd6T6YI8bVA7196p9mse316EvfhDL4jB8SlPZwk3AuhyaRRoUJ4Z1B\nqcRtBrrEFTkO1MU//owzc98qAlRTCRzpIzD+ZeNg7Jm81WJkOHnNjvTwAKtB\nA25KUJ9PqaZ2JkdFMtsim6P4Xj6FXMM1CHPeuzVLog7qP8kmwLzaj/p+QxZs\ndN0wmo4jU5e1B5ksjrkg+M4BGAZeVq2o8J2uWipFB/hNricyToYKxZ6+DTgD\nKw7uHHjESBnYUe1iee/HeMv26QfJT4SaUIRUZkrWpbLY9PDxAvj1HTZQfz82\nO2XU3msgjy1hnF04AqMjabNqRZRg4EIM2hje/pQBk5Kzoi6YwM0RFhB1bGJ/\nWwdNGNyFYyO/d2OKE6RrOY9FGj8IyWXVjwvo3ZbqokqnkOTl39CYjU2V44ep\n0vvddIFEvPJCtr1PDUteRMs1ZdDoKX4cD5VrhOJinb1ALHpYDMulOEtSZlCM\n2kHcIkbMdngcep4r53AeC5+C5XNmEvb4/H1OuXkEq21na57v8bqRb8muPyXJ\nGNqh\r\n=/rSh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"2409f1cdddd92c23548c18c055a6a36efe36349f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.2_1617120941358_0.6208372854340631","host":"s3://npm-registry-packages"}},"0.18.3-alpha.1":{"name":"@opentelemetry/semantic-conventions","version":"0.18.3-alpha.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.3-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1487b1e59a3ef9d3983d934137f708946523d0d2","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.3-alpha.1.tgz","fileCount":36,"integrity":"sha512-ggdca82ieMRmP4CupKWzs2cCWOpZXGLRzXkocT9K0raQrPN7uBmjJ8wRSmpqI/LJlUFj4ie3SD2sQ4NuC9Kj+w==","signatures":[{"sig":"MEQCIA74pK4BjVvfZmlLZ3qcHBDAeL/PY+lk6ab24MuZHj4DAiBjrvT3263Dqi116pOutk9D7DVrJi58LtfI4JtSy16DkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY1/1CRA9TVsSAnZWagAAzV0P/jGUFyUFzAPP6n2ulLEX\nA9GQhA/cQsnbn3++hFaIrxYG3UIiL5UXimonZ7A4IwFzovias8Xj0BL5pomD\ntCTXTGV3J/L7fUTVpoaw57a3WzzXr3D0qVRSswKYlOFJg7lJcYktHq/LzJnW\niswNLd89HvsQqVGhPW8z8rff4ePz/8iMZAyQi11eW5SWrIJ50Y3DC3QJo1vU\n3E8YqlGBSUSv9fAui1CroztyKfyiDzeDIJkejplYeQrQyoyYO1TDy9SnxBYQ\nLiVWjOg9y8CapDvmCegw6fWYKsPqgBP4lUzNKPt8K7Ce/zn1gxSPaJhPUx9R\nh2BJqDCWPDrw8O4RSoGzd2d7soGHtzgAyOIS8j05hp2LUOGtxeW3z5BAQy05\nk7LtjSq75JwjwdwqVIcjFVgyb2nrjVuCbpJ3YxcmzV3MRomqIycu2OFi/Cfv\n5/HOuhy+rrLjgk0dx0HaYRO2TdojHW2cYKQqKI8D43MO4rfmaYrNQXaPvcyM\nDNos+GrBZIH0vg1tBqvYTjCwdqyxNfZChfa+NgditorQThfDkqyMQl70otca\n7STHmAx/z2GJk9WYj4x5Z+MhANp4Wo6KRe1ZX0Pb47LdCka/qvZejSda1Jhg\nqkox6CPt2JGANEdnr6IoJxC6aWvSGo/ov6ZgzTWwTnruNo5SdDYZubMJDxkr\ncMiG\r\n=+r7X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"cabf8630cf2e295ac2e7e5f44d6efd1ae911cbe4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.3-alpha.1_1617125364721_0.9367449303447888","host":"s3://npm-registry-packages"}},"0.18.3-alpha.16":{"name":"@opentelemetry/semantic-conventions","version":"0.18.3-alpha.16","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.3-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c00448e177b9d1b1fa547f76c8d5f92e7c9a582e","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.3-alpha.16.tgz","fileCount":36,"integrity":"sha512-2n+Ot98bqRWVBccQp5TszOqGlG8EBhqV2xIDm3TXQqj947jjIjo2SXn4mTf7yA+eXL7aPhOlwiqmJgKgUzLY0A==","signatures":[{"sig":"MEUCIFtEeuJC2j/pcPMfapSI33WECngBdh6bam0lETOLi+ZQAiEAxuWv7cZNDwG/aV+yEQeTlu1aDihsvwZ0NrwrzSqEGD4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcLQMCRA9TVsSAnZWagAAAWcP/i6dZpBmdURGmJc9La9a\nUhuag01Y9x9cv5HdcAis67MNmDGcj4PtEoVuaF5tzNKtlDms1sYPNQWYg2IN\nNX/JMpnXvNnoNRYaZ4i1eqVBE3Eit5Ig/zC+gktqYoce2tgRN/GbtQAX+5lA\nmzlodJ/hy4OLghDXs6AMJfaITm0Yi1btx5XI2eknri/SLR2tFskKQ7xB1x5u\n03k9zMMPQ8siOAen+Z7bqqKwYYZx3yHtTWafImcJrY663ypHRWlIEt+Yth7/\nYqbD+XH+CFp0IZ4beFqFixz97+dOBbGifeEAGSyN9AsjfUKYoAhEbvYju7mF\nQXRZHUL+681GzfWfiTi6wM9eK4XF75OunRDFQyri5O2w9l5hnj3KasybQQYG\nwmxgxuUjjiNvEH+h1XrxqOyauAijrfbVeBuNDloE8XF0FpT9qYApQCwgv27V\nEZK1QAtrDWu8mvOJX2xDdyPdpyaSdd3Bc3M2i0B0JCOj5Ph/SAAA2Oj5PZ+K\nblLE3E+3n/rJJL+g/cjncBTlhiVMc+UgNGzOCL5T1ASchO7Y4u1xqUrUS8pl\nktd4Euvi9sMBdCCSW50iIqoIcX2PUgkl1Xjyd4vQManurVbAsbm9Uv7DbfMx\nZ1ZzF/Dv/IAJ/TAxpYrlWE0W0USMuMc5hqyARDoRIXVGOaXwm97qmurOmIWU\nn/Hk\r\n=DPcJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"7f7afa7bb88edf4a4d46da8b252116d92b578b79","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.3-alpha.16_1617998859859_0.639419545565489","host":"s3://npm-registry-packages"}},"0.18.3-alpha.17":{"name":"@opentelemetry/semantic-conventions","version":"0.18.3-alpha.17","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.3-alpha.17","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d3f29fd0ec923e261fbee8d80766020e3c77cad2","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.3-alpha.17.tgz","fileCount":21,"integrity":"sha512-f/oqbENzMZf9TtXltRFw7tC+aE9ADNeNx3p8YNwC0nKuWbRT0yVAHzLo4RTuiSh1AGf7pnVDNFq/ROjoJ3FXLA==","signatures":[{"sig":"MEQCIHjgOSDobpF9Fm1l8awSetXKxFuD+IZUcqaDD3IcvpKPAiBJ+Hex72+rh+btnRc9rM82SxkbmzsWCqrg2UiXnoXYcw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcXDwCRA9TVsSAnZWagAASoEP/0VqWUOjfcsWQ7UiA1uq\n3Sz4aQYP2gRYolEXCJerV7Xhz54wetc8QzpX3mQSUb/wS11Ewo98gbWb1bdm\ngsDiakA4yeOuJZN8JKc7Rd5fIgjjJJQOylZtiPjDJZNARc9tE1U/QhAECMZ0\n2C37dlh4mrM5hXCk4mYa70l0khN77vnOr8KVnY6Ci5yfCl7dNNHHUTjr0oIQ\nci/qni4PlBxE7WiB2kMaVmBT2A0TTUVHtAb/oGa9PpKAuWCTbDS3Pq+u8Y9K\n/bxLwje7tvqJkryWz6q+7m0U8rwh0ZiR8188HkhiM4mso16ZhWXl5dgVATNN\nwsEOkbgre+s0bZOE5Y2DafCrRM7g3mzpKt44rCzXVRP1yfhm/wtKlUpuyMPb\ng/cE7f6iPA2Tzk0UYKTPvVmU42bT9WvoTy0I9nUCr42zymzuuhUi4KNw+QVJ\nvxB/vU24Zbr6qohgDE4GEesWco2hlFvBxOlw33kfq9ePtuSa67YjCtsLEVVW\n4iNJWrPPOxdzcR2TX6EgMmyjlJVp2THJE2o4mUCnQaf4a1PfydBwTSzqh/ig\n+gs9Tz0o48drBi7aGjG9pG8F5OFpy6KesY615fw1D3+bBQpHqlrmG/S1fMfv\nbooUDRJdF96EoOzG4K05GlJW0tYntVby4xp4eBjXy6AALxtqZbmD8Sq0CFWy\nQx01\r\n=vIMP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"031b0f4286f18a1d08523c87e419803fd1b0c9c2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.3","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.3-alpha.17_1618047215917_0.5222574957561932","host":"s3://npm-registry-packages"}},"0.18.3-alpha.25":{"name":"@opentelemetry/semantic-conventions","version":"0.18.3-alpha.25","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.3-alpha.25","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ff472e3ed557b12aec938d18aff2dbcb19df4be9","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.3-alpha.25.tgz","fileCount":21,"integrity":"sha512-l/pKt3hczMb7jgm14U+ned43CqjWn1k7q/YF5vN38VaRn5ed6ZUjck3FqodGmzzI+PkLUQE87SzqcOU+15NTHg==","signatures":[{"sig":"MEYCIQDOiFhKUrXuFevKHdevvS1bEphTIUOt+SdXTyn6952GGwIhALVTO4QY9v9DohN2c5kXYFr3/YtAgv52R2IBjs70BvXI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdKKfCRA9TVsSAnZWagAAmUQQAKGcdpoMvsWbxJgCjBVm\nsELczPPhnnMemoI+xuSajTV7q56u80OmDdrz5jF2Q9uiM0X7psw0p/lDPAdx\nlQqaryCkKyvu3QPGnyObmTk+zbVd7fnqKF0Pf+8x+GE5qjrZtf6Sjel5liPn\nIbto3BiGURFrLYqQIzYAQ2NKviRoH/LKl4CF2qlsgaXeJLzSVfM9FeJWnhcB\nTD9aqwq3rc390yDOqsgEwGd3QKtaIrbo0avmrgq1Uf46VTzEZCorCVDJ+j+D\nSBZUsKx+jFhgvJdgb830FHm4P/c3aqKR1fuY9ZOVNKpetefAv2OXEH+bvuuC\nmrGrzaGshSv3GBxqTsaaIDeJTD22CdSfSuiXUtfmMLNZLi3ETKpjJS5nRyop\nct0AjOHklcNZUnm+j6es7/1GIOGBxRXiQnwLJKMGx+W8WfYTxKxO6E3LrqJr\nBngh36R7dTQHUFa70/LfptQeMFOvpXIg/LfBTHe8LjLVm0n7D+mXL16opLbd\nfbdG/VZ0mJvyYooKCfnF7iaDlE681m5g6N1FzzQjzR4ZjRNOE0MX0GUKctYP\nA0Tey39IWFZ6Dgxohgwb1LSTf6wbF/QYCOFZy0xxPhyvXY6d0deStEvGL2e5\nS4lDahwgLUF1bCyC870xQbWfoAeJZEIne+6jVDa2NbmdbVRdHxQB8vxqZXVJ\n8XqV\r\n=OrmI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"4ef22cae74b9c976f969151ebcc3ae3d931cf9c6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.3-alpha.25_1618256542927_0.1340824144578192","host":"s3://npm-registry-packages"}},"0.18.3-alpha.30":{"name":"@opentelemetry/semantic-conventions","version":"0.18.3-alpha.30","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.18.3-alpha.30","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"be23eb12270d8e5d032cc5251c29b5d235392e02","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.3-alpha.30.tgz","fileCount":21,"integrity":"sha512-8tLrXFrlnOlyZz7NOyz8S8KpEeVxbGW1MLk5aAfBFiJb997F42LH6hQ4GavOsRSQYzz3PGLzc+WVzvVvSnhYyg==","signatures":[{"sig":"MEYCIQD032sSR/+23RwYkl0nIBXaDvQQVvQodG51r0GAEQBQmgIhAJU+UcLKr1YyKJSU1FMev+0Zcdoko6NUIhxcNCEiDEav","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":129805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfbdpCRA9TVsSAnZWagAAFAsP/Alb3StwlubKcv4x32MY\nWpbGbq9yQXWGk6WVCK1Cl9IqRhgeVR9jWX1gBVki7yvP3WbsMoE3EertMXSU\nr3kGe4q1P5kVo/OSQQabh+tmgeCA6PO1QtBxuNN8yCOFn8P07x6OznUSS3ya\nwcy64uRii2GZACTRx3z2U3Gl+b22ksoYfhiqUeDBsBdoUWt9OEj8oohywiQg\nvsyhmdVP+qIUrrvrcAOQPg/lFSQqs0NMhcCxP8UHu/N/bqPcLw2hnfrzH3Cg\njBQ6eas8rpwGP30D4vgDcKzdBc+OJU6rqH0dVlY9++P+nIzfHFp93v5elhTy\nx+fhKAGzka9RmvYLH2u3Jv93PVVVqmSotY1OYrADayj/5PyPArHa/tEyfN95\nug0daY94srWZqlJjB73KWdRtv5DABaAXt1aqGPt58+2V9//GFI9z/iQOj8zf\nD6upZIsw7ObBb4L419gFmfr8zKCZ2otzHQPPCqE4NHOTasJJJgsOGcIaJfea\ngkBnfkzDCONJEsM0w4qYpxxtqG2EGDPkQmdnczNEzqcR3zG71KKPxWqvfbfL\n4mmHkV6sxdow6aPaIPF+DMeUWM9SED817SDYSeqI1tKhTwNwxPS4UIhECn18\nLMhfxeHrUROkpYt8l/nZSOVhaZLm4CxHb6VR52MZ/TGcGkLw6oS7ZLiLB9Wc\nOruP\r\n=X5K3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"09c2aa757fe107613f3601a2a9c23d05011f755d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.18.3-alpha.30_1618851688558_0.7476049415004584","host":"s3://npm-registry-packages"}},"0.19.1-alpha.36":{"name":"@opentelemetry/semantic-conventions","version":"0.19.1-alpha.36","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.19.1-alpha.36","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"da5658966b0bf394e8a1aff80b403dbe1e76009c","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.19.1-alpha.36.tgz","fileCount":21,"integrity":"sha512-r5bhZPoqPWhpn8O/SoP1ryAOoqzM8JkcOhxQr5Et+9BkUdYj7O++OjEqqyXtKKbutYDacPaVm58ltZlH+LxI5g==","signatures":[{"sig":"MEYCIQCSa2ydGaJ+/QXP54K37BJV36j3iCUnTFxPuXCx54Xz5gIhAIWOUMXHjbZFxF57PE48aWCNVvUT82j0NzVY+4kQk13F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":129805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggWnbCRA9TVsSAnZWagAAzFEP/RpY6spq3OBF0GCUA4ZS\n2s6u8Bf/t2N6kGb7nDW3FC6T8NSVIl1MJBaumw3/ajyPwnc4Xq5Klan0vxyn\nqf1HAysSFfOudbe0eDl8p9gojBZvYlUG9t51KH1qKiIIm/EHy78p7vXKnBea\nwtc+S6zmVuysRzBjCJB0PQwB/R4FNar3rlGwh3b2UzE1qBMYCFF7U6Zf0ums\n5BDbbnHwrJgSgXjelXD2li0psrJdjusWnF9NbmAerKq8DIxriFUNulzj9M2v\nGkwGB8TZqvvaU6QeN9KVATpOz4ZfbJgBCjDOK2LIoFPKgV8S/eSMZTF1ua8V\nWgw3ay2Z2qUvMNcdPC36ux2n9joyzYOEb1KWT9NOEKqtkF/Ceazls36eoE1p\nzZJDvt0HksswS1jK2jqT2YKq11p3mERNz2yQEKghPIECSIUvSpW+udQraIqg\n3z9cX8ccVDGL0Bxkcq8usZFP/rDnqObtB1oKf2LXtfERyDSKLD0lqDUCUJKS\nuhKUae8544L5oW8wvkepm+tEqofq0T7PbC3Grq54C0r1PqqtcVeYHAIcSQ4X\nHD98fFuOvds+tLWt0hBbnfYUMP18T+w0PaDHttqPUDOHrQZp+weJoQOYjIHW\nOtRIxZhFuTIuNM+CIszuAswMRQUUgkTisRJbutnLEpck8XHE4dr4hk6dfZ/B\nSm/f\r\n=00L5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"0c15999dccd377294a03cf7d36085216d6e8c5c1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.19.1-alpha.36_1619093979595_0.7065537032701594","host":"s3://npm-registry-packages"}},"0.19.0":{"name":"@opentelemetry/semantic-conventions","version":"0.19.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.19.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3e49b45b52426c62740a24fcf5818cb690b446ef","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.19.0.tgz","fileCount":21,"integrity":"sha512-MMXhYEvNakvXC+oa5muX8KS2z+rsXLXwabjuzXcbJPH+rvo5XFNQ1c7svxb0B1xPpm4KT7fnH2DVfYqQzsCteQ==","signatures":[{"sig":"MEUCIQC67BDPBcVoWMcaD7qqA5/gHU9nIj8GYTZpPLI+7c2iggIgMJfZrSi4f7R6cJHgzOeZWh9KZUsnCuYbgTi+3K07WAg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":129787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggWv5CRA9TVsSAnZWagAAsNMP/j9aU7iwOvZmWDPbC+6V\ny6m1E5e1ovNvOW9oOtpbm/a5gL+0zcA8ZlI5DXHsJVHvPz/j0l4bW6zKzyAO\n42EmWrGtkFWtNUJF3wlsFoJbVLO6G1WH/hN6UcQ8S5ZA57/R1QV6oFQYtrRg\nto7FO6rnhOVk5R2mcfTtEic+xDwdI9eS58FXe9Z98xHQkeQEmJb6U9ibVK//\njwfCmHkmAIcmWjFaWbHObkwMllipsIgh4ZbMcMMwC69sXkzmfjmyc1Q+XS1K\njgmZRZmezNbTT2Gs+wLF/euEW8i1j5htLUJw7ldMgQhLU6GIu/xoRlnGFb6v\nrJosd3lrB4QmlXLeDconbTqfP941OTFwmXA6+588X62gGTT54Hh8w6PtTWss\n12MJBNNWdrR411GBuoSYPInz1TLnzsjs6vUvns6dkbOHqol486DTTlHPS/nN\nog1hijhDAwbOTimSx+eA3TlH/NfLVTfxCIgtCLsdIArzmuTlx5u1twI4X2DG\nlzCXPGIcT7DL2b6D6FE8bxiGWOiNfDxv7DJ3baqVkrSG5x9iKy0J/ZLDgrUZ\nBg83W0ks6OFZVIum9KElanXfLP/iyRKyWpMz5hzzWFms2SxGpaLiUFjiMxs8\n1tYMnugGVOjqZceQD/lBJk6kLgxS4iT8r8SX8hoKyJLLJFHKBRJxGRSnGkCF\n/9IZ\r\n=3eu6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"0c15999dccd377294a03cf7d36085216d6e8c5c1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.19.0_1619094521100_0.7103911585153693","host":"s3://npm-registry-packages"}},"0.19.1-alpha.37":{"name":"@opentelemetry/semantic-conventions","version":"0.19.1-alpha.37","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.19.1-alpha.37","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"eb53dd68169c8ebda1af6828372550d9037fba91","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.19.1-alpha.37.tgz","fileCount":21,"integrity":"sha512-2kpCE3u6qTNoUe/rC9FZITmW+hNXdrVO7CWHHq4YWZdAwILE691wpcuTJchiHjwI7YYh1U4Wf/ZFeciKM/k4Xw==","signatures":[{"sig":"MEYCIQCSbJdVo7YrhX2TRAij6XXe5CtRdjMfltUHZplpyVg7+AIhAJjqZDaCyseN0emZHs6j33gD71xy166tqfrfrs4md3DK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":129805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggb1TCRA9TVsSAnZWagAABQQQAIN2443QZ8yAfiMRJlJy\nBnqDl/vg9vSjJJqLDC3QmV7gKI7ng8qMbuc1NV7m1pxAcyNGHpZx0cra6ZeV\nqyKDmS46VM6Q5wMP2Q8sd2qVZVZM4Hv8qCUhLFkeYgiuQeEORJBLxuv/MaP6\n4IUUJRE3XdjXdGj+gH48SULKhZrahHhc/Z0kveqe+W7YIdGPAItValeYDFj9\n0npmk3IuukN2GJdxUmcXytvMi1Ry4ShPp9k6a90LeX0SQnCSUyzZFEZoRIdp\nGTFnhBgm0OLPDEc5ehfHIIavKoc46SjbltY82M8D/50HBr/HG8dTeJc+TdIB\nAhqwFGXJ/YGkxU5Wqhz5qbyH9PqEMFUXa95iWfGZu7NDVynRMk6qMZpUqTUD\n8LUg6mZLV1W3bk672KZ/Kr0gV3HAPRopife8Heu3n7dsLcFrogQI30AP1lEo\nBo1Ls6O17dpOhhxWV5oWhWPeLWxD8d6VMESwjwrPh9FR3G9YmHfZQ1o0FKJT\neFz8IIM/fA/ksdMYuMajEUHgCobI1GNjGczf5iOlERQoPiFhXOlYP1YvgZFG\nkybNyEtVBkxifEsaP8RiRhWbaH2sDUq0Rq8LtkXa4yQVb489UzN1ftI/mEbF\n1E+umGopYY67kx7Nme9HThIansoxYhLW36zyiSmWg+RHoZCEEU4q2t9aMGvb\n6JqO\r\n=G/wy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"a0385c45376a86d396cb364feda2b4afebd836d1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"tsc --build --watch","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.19.1-alpha.37_1619115346544_0.664293995585062","host":"s3://npm-registry-packages"}},"0.19.1-alpha.39":{"name":"@opentelemetry/semantic-conventions","version":"0.19.1-alpha.39","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.19.1-alpha.39","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"eab5c678b0451667000b9a4b0f20f691d044eca0","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.19.1-alpha.39.tgz","fileCount":21,"integrity":"sha512-tQ1moRVb2oaHONkD8sEngRq+KVru1mewNgUXy0QpoHNcQm4RvcaMWAn6z9dFdMV0uztOlxC3zU8q7OjFsPKBUA==","signatures":[{"sig":"MEQCICeBawEnfGacPi1azBhFaZHnViRChtQHUHLn7NtR3jPXAiAvwO7jaFkW8gOtnDf7sAmxmQdxMwWksI3T1BhonXxCbg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":129935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggcQqCRA9TVsSAnZWagAAlXcQAIJ5Q/0y9hHWBxil5Qx/\nVfLCj2ksO8nVzdbxeeQnjcGyGMO9EzZJu3C0agTXstxvjwih/T4FrXrDbX/V\nPLYIuFA+nx464N478NGiuHBsgSna31pc2I9ukBJgaPF2XeH7ACytBdEiD/9d\ntKuuqM3b5D9tqF0tJifFmVUX55a5qe4+aO7g6pF38loFFowCasedv1Nc7dZ7\n+OPVh7GtdHBzTlmnqWDQmIapyTfudUBKCJWYSGw+FkzjAJN7RvMoe7f1Y+GO\nls2GxeVS0hXsKbOiycRhxLoJQ9wccKC1iojbRWCAul4SyHHqbqc/hP/C/SWn\nxjOKf6E77dcRE1piBWpZpjr6B1AVI/N0mFqAumo2LUgLxLwHq9oO40e7ohMO\nj5S0NW2yQNLGMUBDR5Ip5EHzCGXnYHA+UNjm6nNjJpZZdMM8Rxv0Z8Pbr+RB\nDxNWVJ6TK6EuBWE7GNCQZ5lOem014tWGLWIwpHkeNynmWKznce8xx0BZCP6p\nHRBeCiIn8tG3SMoaxWXVDXRVxuvsUmHhskmdxsmTm4Tl0iAyE6eeKnR+8Cfs\nCZ+ySWUk4PiRTXgZson4GT7RlcEzguR3wHRhmiLM3abK8xuryhwGZGCSv8AJ\nxAWaIHLAifZqaydB6ChzoSfFooNd6mEj0wLc1QHFOPzMR4TldFGTXwHHq0Ww\nfFUG\r\n=Uh+q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"23ba4bfdc77c8bf594bf0c817320a31f59ca0bd4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.19.1-alpha.39_1619117098118_0.00574563366802594","host":"s3://npm-registry-packages"}},"0.19.1-alpha.11":{"name":"@opentelemetry/semantic-conventions","version":"0.19.1-alpha.11","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.19.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ab0ff0fcb3153855b3cd91898b2b37a7ed25f682","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.19.1-alpha.11.tgz","fileCount":21,"integrity":"sha512-HuVFMAhl65Ji14PQj+IC1nZSn2Prfx7i87gSRYoHDJtXiRBFG2Bqu8aS16eL2ckVFjRk4V8U9IqgbjPaoubBCA==","signatures":[{"sig":"MEQCIAuJKxj4faTpEWYIoFgMC7O2K90yQHnuoYdBOZ/PQj3MAiBNtj8NmhL+XkX+p7RdVsI1s8P5avmA3J2tMztm+vnKOQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":129935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgix/0CRA9TVsSAnZWagAAsB0P/0WbHchTbwdNwepzm3w1\nb9dC5SNoE5QQ2rN4O5osi1go2mkXIVgDYTwpqJwkokJnymQzScm+paT7PFxp\nXMfcjqO8UVPlGcBzYDC+/c6V2UENQosmq9rAyotDNhO5LKxdLHEwhTmp6Hiu\nJp/hD6UFYZ+teUJNrKiXj1jfAbFprY5gsomcdZWZkNcmDXoK+MyNDfosT3mx\nf/lVqKBLgKrbHSuUl7rjgVuglB+HErfe1liV3tZxM+5tWyxzavRv5hbmXXkq\nXleVCRP8obqnDGMfJ6aO0ztU8zAoUncpdKgvtcqOvytYLG0CmI1XSOcDsFn/\nJDlflqIFtpSetY+k9MHUjxQUrQWtTZJuhOYMotxuOTGntAO5f6CBtfnW4iLU\n+Ap557/oCqaq2pxT96C+bgLKa6DYHYrkpsDsMHB9JtT+MO+uzJZEnXYJM3aZ\n2YNgKIQ8A5keK4q3B3rnWCUa42Oqteb55U1h35dSE+PzcSXgB6dga/3ehi94\ndNIrrLQ+7Rij3fqD9gmtbHocfrq01/ZrYqnWHA4pYYF8JgYK1y8P7p35lwa/\nhHvsxLJLaqoRZB+FaddNhvIGpLH0osKzJ1HXKQir2yrTBu2Qz9SQkWQScb7m\nP0mtqzGAGU4KTS4QeY9je/XzoXhDFA8GOf1e59isCnGHSArcuFqRUlXFwaCW\ngAXR\r\n=qMth\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"2afcc7c90d93bac4fa9180f4fd312ed01370b2b5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.19.1-alpha.11_1619730419871_0.6191835490532778","host":"s3://npm-registry-packages"}},"0.19.1-alpha.14":{"name":"@opentelemetry/semantic-conventions","version":"0.19.1-alpha.14","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.19.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5081a56a9e563ccc41eff8c1a610dd0aa3f28442","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.19.1-alpha.14.tgz","fileCount":39,"integrity":"sha512-0q0gWnneY1epRaTOhopyq4HVPJuQIRTPuKb532SS6GvP5t1MfqSZ+0uHwGXbxlwCUmXNSj6T6Z6G2FEZbxL9ig==","signatures":[{"sig":"MEUCIQCuWqg0dbuxYTIWiLHOrStAGcYMlSW0PhLhjUaQBKDbwgIgcd7lWhbsBD8Am4uLfHlWshj3MerOIWYzOX3R7UT+BcI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjQVSCRA9TVsSAnZWagAAqtgP/20mj4Ak3TzA6ekX0e26\ndH5PAu7QpA8X0NLoguWKTQWz0/NJ/zIbQ9HCZW7rGN/zI0M/H4EnUmQY0lFO\nZvOSD10yBKRkrnwptywx7CskMjNfscaU44XAiTKT08qri47jujpN+txWLctD\noIsczhL1nwn5RAbB4GdEWcUnUEixUXf7aUJdROKCT2wshFQWAopBo1N8pCkt\nVDeWWV/FLts4M+dAnYXI9B61Pcs7rN110D44VdphxrDLfadhwRgGOeFbjDVa\nv8bx3K7Xdobo0pX+bkZIk+4WdwvV8pXu6jRlVb4KP/vWD69exa05dpZZ3UJu\nJYlgC44Qd8W7xgldvB7NO78zCPla4LeCXzGRqfavG0lKUBojJOGv6vIxny60\njIClC4RZF19AEiOzlvFZR3kmcRLglfXRRnTcA0wJ+e5KX6z23DTNokyy+Qs5\nkTR2Ig6fJkGCPz4410wkYB+afDf9kBgn8ZXsigvbQI4p7UDjKvw9BJ0q/SDd\nK7TwYERHpP6XM8h08dSrjyqBmXSHkhP49Rq8bKY55J0upBwOxCT6QxL1M72i\nioKAq75tEFWKLHWaLfGiQ5rvZWU+xhbxn3fky2om5SfIFplnAkrmtIRPUe4b\n1IOA41UrcwdR1fgqcskLAEP/8Y+AAS2pXOH8SJ436AHWAdNEKvWh/oOaJl+Y\nlQW6\r\n=EFKS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"e1e79ef11c3cc190805c3d870cd82060903d6e15","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"3.1.0","nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.19.1-alpha.14_1619854674122_0.8732291218686055","host":"s3://npm-registry-packages"}},"0.19.1-alpha.31":{"name":"@opentelemetry/semantic-conventions","version":"0.19.1-alpha.31","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.19.1-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"54110ff5862b530405b0770d2c782ede9c9dfab7","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.19.1-alpha.31.tgz","fileCount":39,"integrity":"sha512-AWz1QHQnxDuLi2YBoCNDNyPLVw4UMlSM+lNJqd4a0N6EVC1qvKWII7r6ZF5SmJZfIGWbQx7rO1016HfNYEC43Q==","signatures":[{"sig":"MEUCIAobGMQ1MkqtCz7Qr98KC+p25LpoT42IQSR834ATetZCAiEA2riPYX8FxjdGUdlHtXDbtn8nB8E4aptgzkmHcUbls6k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpVO4CRA9TVsSAnZWagAAUnIP+gOgEa+uNbaY9Trp3nWq\nEZEILN3PeB7QEONpPzGEhf+VzaerE15DMhi2eyizBlF/54YSwKjN32Z0InOG\nQH9q46shKWcheaTTl5tztlMh12dHGzTpJ99cfPFDLHae2Bg68BkvvWvJdtc9\nYd3hyBgxGZx/96BlOAU61N96pOOCbqi98Ln3ErX0gQg2Ue5Iwl/WIoCFNxK3\n6jdFjUox/WwiklVDibHrLPRXBFCCbbHWN+gQYPhwMg5pFJXIU0aEm7y9REFF\nS64NMIZw2sYHoKxqnvg5z+1lFKXrraIhEk5kXW7YRkh8+j6aiI/K9w0Flaea\nQs2yXj6EKQqoUHswrFDT9lRRp4CUR0wRQfl2SAH3lKBbvbmCh4sGlqqY26uT\n8EwQ7WNVsUJW+pRGbrpuzY2rwAhtZAHoEMk/YDYIs/YRjVWlS78tPi7fCpvR\n7VttD8tmNOnjU6oOzwsCq7c3Op4JEfQ2yTL2nez4/mZvrkvUEU8f2Mtbjh2/\nq255kUvAbs1lIt4wRqjGgKlm7qwK3f881tWQtY2avsfVi4fVOX0XV63YFV0u\nTtGpX7CroG2dkDy4Ma9Y4eVw/2niEnm0OwS3VzkjwaeokCRZ1QtwGr77n3CV\nh7G69BTzuNVESYaDkD5pTJLs4yeNH7fyigZKQdQdneX2ylVr0YW61HQY9QIH\n6u0R\r\n=7v4m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"24adbd61062759f9d9d57420fd97e50f4d8c3b16","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.16.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.2.4","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.19.1-alpha.31_1621447608062_0.6135706743080445","host":"s3://npm-registry-packages"}},"0.19.1-alpha.43":{"name":"@opentelemetry/semantic-conventions","version":"0.19.1-alpha.43","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.19.1-alpha.43","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"321ef58ec91d57906b39ae7f333949907888a1a1","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.19.1-alpha.43.tgz","fileCount":39,"integrity":"sha512-GRmSnSYjNC/oi/MbqQbpOF27MeCPIwGrGyQtNAjTtdOo4a3aYvjxhkLumig1Kr+N4iTH0q1StzD0by5pNXdBdA==","signatures":[{"sig":"MEUCIDIvdi5w6FogEIliB69dJFjRG/4HAFVx+qa54rGiUk9fAiEAjlNrP/z2qMZHC/cQP1nxD/kxC9MuvJh+kSPpbNaNFdM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgto5lCRA9TVsSAnZWagAAzskP/1dr0+oOxGGWEnVBoazj\ni3kIeELL5JOa1qcMcWIh5DYBMRt6DwkWOlnOUpqjQ7bWyu407qDEvBNRgjsy\ns94fMIZfE3KydFdI/H46ozFAB2onyGqHxC64F1RPUxiqeAQC5qpASgnQI5yo\nyP3h8Toz2hW2B10vT6BSDLdzNczgjXl3o6GEhlevw67spe5RuGd26asCsk3z\nMuxieEFpNFw3mYjU1DXAuEor+osWbC7VUFIWb4yK7q9wsPHb63HhJwSSv136\nZ2FA5f/N6PcgogGQlQQ45b+1h0/2a+MNDNTDsTxbeJn9oav7U2GcGV2CDotK\nY4sdxGfHgpIpFvvHloFHNVXAzFKyYOuAe6+nyWAOCV7ZvOe1NkFaOhbgUzi9\nsGdCA02i7hz8nITfdbkEvCwYtEI+yfu6gqetD0dU3PQcubre90FaBpJAcWYH\ngRXzXrpTOc9gQSRh1phAmAMjHaZhGUaVn4mzkmzAs544VYavZT8n7zgoXaiE\n4KrLG45xoIuOEwAv2DU+IBEbWS8xGdnlBBUzIcBzYVzICEHRhnQUNgOz/yPc\nk+LIPBvO2oJZaVGU8QcQhzuIggrUOVL7eIgk15hgqyCzjh0Ap63WiTRkoyDu\nUsVh6oL5xhJDVon1f58GxPl2tIiyhUz8e1J7VZ0QOygaJwPZF6sOGA/g0XEP\nzrRO\r\n=FI7y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"d5517812b31d9206131bf1df4f8a3b5183ab07fb","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.19.1-alpha.43_1622576741464_0.30320944448814124","host":"s3://npm-registry-packages"}},"0.20.1-alpha.49":{"name":"@opentelemetry/semantic-conventions","version":"0.20.1-alpha.49","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.20.1-alpha.49","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4690bc8c3a04953c709461c0596b99c4b44c3389","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.20.1-alpha.49.tgz","fileCount":39,"integrity":"sha512-y77eTw8K+dkJQ+FxkXzs93qgi8YOf5sYOY5siE8w621CPThHz0IGkIiaZFv8UrbytlbawyT+hlk6y5R5J2XALg==","signatures":[{"sig":"MEUCIDt+2BYkYAtaxi/FrwVzMM8eabucJsjRTlMzMMzoNa5bAiEAi5ZMf8pEXD+iYlh50Y3ujn63XPjQqlHzGKMC09ySbxE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguQzVCRA9TVsSAnZWagAA8u8P/0BkqJthckL5bJVHCADK\nCHexbPIJkW1BZ4N34ZS3wDKxQdnodvDBnjCKnwjQ0h1CKy12YKcRwbF9TmxF\npVfrQJt0q37k1gByClDph/j8rvnhiXP+c+qKrM2kWL8vGn1SoLZxNb8AuDL9\nokH1SHEUOksQg8P8YJuQPpzN9vMDnxZeGbNU9r5dxGopMH2NFzqeifXL3JUF\nOrncIS8y1RcElMAeNMn8xDmDu8xCSAWE30EAKYGx7yRer2JMdjvYMD69bObF\nSjHCBzEKuwu5KrV4Bcn9xMoAcUIK3txRVCFBnqVZp7+U+jdiHk9bXuA/gSl6\nVb/RYC9Mz1Zog6zEvW+gwehClFbGFMXXcXPduYuPIL8dm4oaKtROCsW1DL7V\nrtn4sFOpNLIG5aDxwXOdSJQDh5p2bZXU8+X1hV6PhEy6CkVO14/NAJEDx8dM\nYd6xRf3EpTeTJNb+tp37vJfwXX/QSilV+OTjG9fUUy7y6fb6p514yWn7mS/z\nJ6hqUQB5Q6/eTI7JRglT1pdGXfzWJaKBRtiHgkf2/XdzUjpX2HmN4B1upgp9\nUpS06vE/PAMlfqGfYFHaibTWeLraUz1l1NRUfE4TT+eQO3dK6QcKpig4p/NY\nSklPM680zLT7fkMVEzIe6tW522kTDk66l1xr0dYPDlfjfJd2bJRuRh4S1PQR\nKCfb\r\n=zDp9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"f79aef422b53f1314cb0b031651875658fc17008","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.20.1-alpha.49_1622740180885_0.8039183227076245","host":"s3://npm-registry-packages"}},"0.20.0":{"name":"@opentelemetry/semantic-conventions","version":"0.20.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.20.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"adc7e391bba6db9bbaba04ae263c3e92b1703d44","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.20.0.tgz","fileCount":39,"integrity":"sha512-x40C3vQMttFlnNEfhFwO49jHrY6AoWnntL35TCem3LINr/aw1W0hGhdKY/zweC64CBJEyiHumaae480rqF8eOA==","signatures":[{"sig":"MEYCIQCjdmAdKBZT8rhhnjIm+0J874HrzmJin2ntOeLzNj+fPwIhALkfVcb+E4hXAOWZiZ4LbCDTCHZndbiIOb4vmvdbQdgc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguR9JCRA9TVsSAnZWagAA79oP/RZ3ASG+YkL893CNR6Q7\nIzafTHtiGSqq/V5MuCqB3WPLhEFzTeXhcfhLoEttEPD0zY9YDesrshU9G6cG\nC6Z4TgKhKcBzmzEDGxK39dtwqc3tsD7GwSfAoAWYNMy6h6bl9Rh191D51BVo\nlIDu1zsFkcBOw2R1BAQlwMImVxiX6pVTxSr0wMAb5nSTGSqBonFjCKDgsgmF\nFbM5QNrpFekfTCKs007bTCKM2mIfgjRMDCBJUhpRs/OG/u6SUHN4VabQNnSj\n8ZCGTr58jn1Ksvytt5VtSZQdkEv99S4rJ2V7Qm4BQ2RzQD5vCcMRc1zfpCbO\neYfFTlGk1+DdNd6FYjXnLVh30er2U60iALI7E6WFLK0eTRuFtFGX4u0ivcgs\nncJ7ltAjOBzGzziQjrSFNm5YBzejKPJW2+gIy8U+YBiZCM7pmvu2HQypoj+e\ne6SdW7QuR4Jjy6IQ1Jq4U3xmIdo8E//KHJ6jmN0DW0AyWfnQCLUD5C+SOSC9\nZwGL86NRo3uKkBZe9GHVJT2UIOk+eyOafZY8p9noniMvKNJw90QInCjmwfzw\nbrrQd/fh5hLWTz4qNzVludEG/5pMaOxa0LLBt9VHZyOQqNQlpFpSgfVMMI4B\nWPZwJroMvzmynrjRmG47cP6cBPJJIV7VhWw/FY8vf10PCf49DuBUiHdoQW+W\nUiZl\r\n=8qSw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"f79aef422b53f1314cb0b031651875658fc17008","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.20.0_1622744905290_0.9418432377864134","host":"s3://npm-registry-packages"}},"0.20.1-alpha.4":{"name":"@opentelemetry/semantic-conventions","version":"0.20.1-alpha.4","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.20.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"47da5d08c06d454d3bb2e716c17750258927d68e","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.20.1-alpha.4.tgz","fileCount":39,"integrity":"sha512-nM7OdPwCMPXzESDlqOpf6cZT7pqlNOM6MORztNKOzzRGczfAn0VdUhJEIfXw6HXDCECzF+Flg6gUv8yEGcdnMQ==","signatures":[{"sig":"MEQCIE0FErcD8W4yckUyEpBOfjSiO3VoHaogj/Uz8OypZq7JAiBpmGHRz/EW3MgMmgemcgH3Rz1OvUqHMXlTKkAZ0ZBw8A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv3BJCRA9TVsSAnZWagAAiCoP/RuxzlLxa4w9XWJ7iCKg\n6T3HMeenWWIO8+QQdIL/NlnVBoAr+VSzCf45TWzHp78idceez6DkaHKDJnaF\nHEna6xOziMhHfRklVeKKC/ywIbiNnW5lGbH0dJBz6bfW3tQggiqrIOrJO7H/\nUjTKcGCn3S9M59viYQLiG9JmftBqMFZ9X10GB5r9wPvTiDwOw9dRSYhGen/k\nbPF1Rm8WZ6m6EKH60zFuemcKnC+RUfqc0+uGzghlPc1+mUKTjdiYVksdIQ9F\nBJTKrQAk2hc3TNIHsJFkSzf93HxUraI6Z+8Ypu9JKnPJ+IIhHvK6LWa8//lY\nymFc1XcEuXERpFoOGZLJhMNP5Zeo5kIGNe8lXL6USoh1R5da+iLj38lil78z\nE9Zd59Ihm+SVdFVRZ1T16BKHgRR3CRoDUSwkuc/6QdGnEB2JTviLPg1phUSo\nU64rxfbzlFq+6L5hnENVkDzsVJo5NP577XLrInqlncYIO/AyJTG8I2N47mjf\nn8ysWkp585xIHtTSW6upAACnOFbqNB6QI70SQMTI3jmx58Zh2YA51iygcKUf\nJe7/M4pH3/Cqb4doJskv9biHd+5fH6el5lezptogGkSi8QMl0SoCOTiyxGWl\npaAJgJ4hyt+gHUGk+1x1X283ZSYiB78F+HTQLs9GEhMk6GioKNtUG+6nJzjg\nbx/z\r\n=5BC3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"3d98420cf530968e6a85bc4b9c2b1bb78b730b3c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.20.1-alpha.4_1623158857637_0.3973968284855802","host":"s3://npm-registry-packages"}},"0.21.1-alpha.7":{"name":"@opentelemetry/semantic-conventions","version":"0.21.1-alpha.7","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.21.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ee59bc1effb77ba39548a8029635912fac4fbf1f","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.21.1-alpha.7.tgz","fileCount":39,"integrity":"sha512-DtlAEMe1oPi9nmH9jmE3PXm+u3nShfAQWED9/8NE33LdNviAl2iixw7YWGTa//VJbWbGjPTrxmdrlbLN3iU19w==","signatures":[{"sig":"MEYCIQDP1f8/B9ORVkTwoKMl+b+MamhyJa5w0K4rJe5E8lSsGgIhAOoJ4RlEtODz6+hLIfHpGr0mVEka2/U1B06N0Esiueoh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwksgCRA9TVsSAnZWagAAPEIQAJZFT/VSL1aVFvS4Anuc\n5CBLlPM9ShJax/Gvj9sevF2Ky4zqXfG6xLFW5vWHY3R2ssOobakipsm2Tixz\nXi+G+0fIZK59WthYBPUAsMW7aZcfbPlkdg1XdrcR8I+qkXWAmi39PtUwluMR\nL26eDr+sVUG8S5+Eha6/co2yp55Wv9PsTKWcQCRT5q99ceo0ai7sTFTuFkhf\nqgytzMdqx3pu3czELKyTFNHUrpq0exoueew1d+GmS7XBYbWU9M/obTNoBI2s\n1m1+wgvSVZsnhQUM/lGwVRPyR2lNvNhjrw9dMYnsQXQuo+bUFLVNLLRh97YN\nq+sCMsW3ZZGTp6vCTlbbJHTP7NBbAfRpzbROzGyxmbUv6ekR1aH+ShOD7FFb\n6avTxkerSrd9Z/Z87A2GAn+X10vTykitDBS4vDylaLMw2X9dDa2cjgbN+S7h\nBJHh8awtamwp9nboAiY638gXrWnMfIqhcD6/D6kCB/Y4aK91De41f/JNsbNR\nfOagu5TPu884PRQsnNkwzsLanldnwd7O0iaS9IjSQi1DyXeNFDRtQwSuyOjN\nSRsZRa4g37QyFik/o6vwJdMq6K/B3ZTn9nmMa8KgSZ+s309Q4XNq13JpfyJ9\nACVJvFiMr8YBw760kYfpxVVHCFMWqJ0lg3qXMWLiMIrHbNYiTU+/om13qLnH\nw5zH\r\n=/Ic3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"7750282034ee58bdd257446c2970f01307d7522a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.21.1-alpha.7_1623345952288_0.26085935116136794","host":"s3://npm-registry-packages"}},"0.21.0":{"name":"@opentelemetry/semantic-conventions","version":"0.21.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.21.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"52fef0fd74437527394641f281a0353218fc2664","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.21.0.tgz","fileCount":39,"integrity":"sha512-qQtZJ8Q+bO/gemBELsZbz5s//tNnyc+mQD/0RHc77XhI6ZBb+tprU6KN/7l0fl5z29smmai0hcJ9UNILC/7nIw==","signatures":[{"sig":"MEUCICBa6rTTxgNBJ0BJR6f6Ak2jBt6DIViJ52XHF6jYucZwAiEAw/GTLARY2Dv+WBy/sKHVQ5rlfUO715lZhzxt7hk5yNY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwloTCRA9TVsSAnZWagAAuYgQAICyurfLF4Pepu2GCfMe\njMUomePCdxd+HjfGz8l/dgW/B2jKIP7tysx3faR36BB2/gqzBCL+VBVK2Hzz\nkmjHvBpR0b6JmNnOvvX1yjr+GFDQn1saidMywqWMohKd3UkBn+rv5XePh3Nt\nM/b6kPJ9Ov7wunC2dcizjutWR8Kz31h6Ksrubi6XVvAoEiyl1b/rVNYGoeMu\n15mo97BgE9eq1oYLTKax78tN75Z8iFit0F5HnReh3bAYyaN3s23BKq0P8Ai6\n+NvbT/D5L6l8RGOdFu1k4CUWFRomeH6YCz4BUC5zsrGY8fJnOBCwxqXRlr7G\nP2GwJ/RHbnNfOnY8cwGk26ws1dgWIaxupU5YoDZTlOlyFSkvu856/EsQXoO0\nleS+XBJooqVlDi2xKE0UDj1eh/EZTTPDQZIu6dtaFwjihyFMCb6eJT5wf1LK\n1CpU8OUN9CAZrb+K/aaZH8ey+H7gOLEy2nF55akGxKkImzGBFH4GQuz/ojsK\nUnUwoU4TtV17IOaqf79NRgMXzoMN6955xGAjA2c3m4nFiFm+VEGbwZ6OoPW5\nW9YbuBpoNfNSkY0HQXZ8ezD+vRbZ6WCcpgF7Qw/RyfjjcmHkFwo+AlqD+Hca\nhfAnlS5gwygZNGLKwP+DDbJKCXqRtbx/YKpg1ykmICQ2+ke6g2mvDdvgaTuq\nLohj\r\n=F0FX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"7750282034ee58bdd257446c2970f01307d7522a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.21.0_1623349779350_0.39240670754646456","host":"s3://npm-registry-packages"}},"0.21.1-alpha.2":{"name":"@opentelemetry/semantic-conventions","version":"0.21.1-alpha.2","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.21.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ee36cd6883071032f8e6c17615735353db5b229b","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.21.1-alpha.2.tgz","fileCount":39,"integrity":"sha512-0vNaVFYoHmZJ40eKtICHIf3bbiCOo/iUGYQfFVLpoWyDIXpgiTn/WGSHiztG9I2gLQYyNaBnmuddzDsoGkX/ag==","signatures":[{"sig":"MEYCIQChc1Am0xiZHIPqSA2Y8xwmolkw7zVlvEHEdUkRWVdqfQIhAL1OfBNVZzTTP4F6zqBl6/sIJQCrQ1QE82/uTPS7aCjy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxHG7CRA9TVsSAnZWagAA8BkP/A10KouiRihxFDEu2Sym\nlmwl0fdhvN5+axF2awgXo+n3eC8ktEBRrZ9QfybVNtTfaceMErJHcE0UVZog\noDupOQLMXsaRPlkfMpBUjTbIw63ZtPJ2i8kLesh6IQx5Zf6cF/fLbRwHugDZ\nfhTzWl+2AfXEHLXCrkQYW8xEu+NkygWhIiqqVSf6ZJrsZjkNLOmBD1/S6CfQ\nrSOYseLe0AoXauqBU9Q6sKJlC+kk66pNKsXNeiG7uCbsNp5QLwjDkR4rlfIU\nK9FLItsiaMwoQtPexswhppoQhBqR0hQbCS5wgoDVZhY22KrythtvAdrlPS/S\nxUWjCVK44W+/ixuCL2MbNgHVoMdBDP0Xh7opYRqqe242UjxnspWkGLnyn6D8\nSqRE89jszG/O93bc9a9AkKEKobgyfWVKFonUPlAHdXeAsogH79oiIWAHmX2d\nBc5eVZzbHjCAgMq9Scnt78grZRzHsFp95jET0qGB/VaWpF16wwmSzxMVkRrz\nAktG2b+i8amcNaZNr2/ZKJFe50gabVKkMUaVvpF91aWGZCMjL2tsOiwzX0hi\nn+Ur8c2oqPqCN4yEKlj0GFLmmnXK1FgsqhJx5xH5+q7eloljsd6YYYl1BT7M\nc1hPVlQ9Q1+scbS3BxkJomubA17vqT2XSumYEIt0A0ijMoSiYgVySig9i2YZ\nXGt5\r\n=pUgE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"a3b77387012a5f53c193efdefcbf5f6272876e4d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.21.1-alpha.2_1623486907471_0.6738711294630504","host":"s3://npm-registry-packages"}},"0.22.1-alpha.5":{"name":"@opentelemetry/semantic-conventions","version":"0.22.1-alpha.5","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.22.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c13daea970e86c654f937caa41f98788a04f30dd","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.22.1-alpha.5.tgz","fileCount":39,"integrity":"sha512-/vk+zTLOnKvQMojMPoMvm1AyXT/Wk9H4Ekr0CR3QGBuQu0Z74VEoe4NmuDyr7xoksRN9rOoxJCxXw+q5ys/Sfw==","signatures":[{"sig":"MEUCIQDx8/J6lxuIadbNH2KhJ69BgHWTFx/XWQK+7qOxxTJu0AIgGG8YpUXYlvSzDk5ig7NwC2ThgCCMxepn4Vs2cWxcIKc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy4C8CRA9TVsSAnZWagAATP0P/RLtAnzZKfLX6jroZcu+\nh1+AGLtFUCcFjqoA9xPtTjeLhmKzimYiCUhRTdxh57+jgrGfngb6BLlgdBRc\nHVgXcViz/RP/CQnPSClahlk/lxABBFjXxWZkNGnFLAqUKZ7Yj//la5Vu3V4L\nDSlvobYMmZwScx0c85GNKnlRv9tEy7AjebRdo33Bm86wgFigS32pt1xUBbz/\np47dDEba7LLR11LV3BDj4PC9dO9tbAUpsOao5I8YPucRwsN4ZbeQkPYokhFt\nRbCpfclGoy4u/oQnafrDR2+OsJ9OXRnRLlpv72NraFhu8cPq31u68oslWgwo\nvI9/W4Ew0OB1BL0VsNV4Vuy6rVJoI1BrF/qIVw++ogjXQG5s9pgViOZT3arJ\nItG6rnSiNFJeIKGlQxtOw6ftaGxSn13MOIxlFiFlicKVs8AH+5qi+h+xsPL7\nLKFZsz7e5DlitNvcCZ5Cm0EDVvfXaURZ2luIlrUEzIFPsjz4f1koX1BNFJNk\nXeNybD4eKQhF01LG2gp77v/GfSV+ftY4hiI3AI56UAZNs7z5sXqunWJwp4gE\nyHnpvDjsTD8h85B53dFLYyhLOh9ReYie3ozZxGOQJIftAICVQEbh2HaqsN1t\nlJlE6UN4t5jIPG8FP1XAVKPfyKAmrJkI+6b+WPcaoj6FcUU64Jfl4CThDah4\nt/iF\r\n=C7hm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"7860344eca83449170bafd03fd288e1a3deebacf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.22.1-alpha.5_1623949500146_0.4948666682388285","host":"s3://npm-registry-packages"}},"0.22.0":{"name":"@opentelemetry/semantic-conventions","version":"0.22.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.22.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e91751bd2eb4f49344172bac62ba87c9390f93e9","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.22.0.tgz","fileCount":39,"integrity":"sha512-t4fKikazahwNKmwD+CE/icHyuZldWvNMupJhjxdk9T/KxHFx3zCGjHT3MKavwYP6abzgAAm5WwzD1oHlmj7dyg==","signatures":[{"sig":"MEUCICossl83CaepV92AvOiNnkde+XOdqoU/Ki/wnTArpbkLAiEAoEHJHlHyUZB15r6CVyvxcIfoDTmY2KhcwIuVFuQ76Go=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy41GCRA9TVsSAnZWagAAGrkP/3X4sVItW9R1DNGlLQFq\nuxvO0PEpqNf2W4epnXZoHyTF80IawK5fkdW6AMChLe4MaMJ9OwjCyOBFnYLg\nL2bG+4BR4Paj7HZhQZ5rymMUt7LPyp5Sau86R4euPajXXpO8KX6Y9d6CNDsH\naCy6ElQKGj+Dyq9kb1kHPlqqrvPxuaYMLn1eySMtDYKppWznlHAmsF0kC+QE\n2qWojct6zrz6skVA1Ot6Y4xer4qtGnP4/+ugcrbTGx4XEO4KjnXpET+su6iJ\nzJ1hjaNJWx/mgLVQsQZ3jt3uLp8kO/wHaSxd3ZkGPzP/DLwSgQjN1NKW4x7d\nA6qqc87w91SJFjaiQRYG1BxX5AggUZ5t8MXJLKW8j3UB1E9bnQZ2/a1EEXp8\nFzN3xxiRGKdSd3XUrGiuFJDy2wungU/FKxjjJo+N3O0oATZE0sT9Uw2m6hEz\nqZJuN4Y3t4laZx7ORaEqer5PlcfBIdBsruX5Y2SPeLzvDgUQ41Uy+yGhzYyS\naks5LgaPEbD1V7j1qH/Ws//6UCh0/vMVvJV7FCHZoAcbu0Z7FwQ7o8iNCTNk\nl7UyTzn2iS1DrIy+0gFoprsPeNtUAzviFKAYvPcQOfkPX6dmkdkBjBxa+On0\nybR6GEAk0kLvx+d3I2i0v37sPyhffgplr4NpaJf82A4w4PJtzGgLgLDM0Y5O\nLN6d\r\n=cl0Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"7860344eca83449170bafd03fd288e1a3deebacf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.2","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.22.0_1623952710086_0.7082446603241999","host":"s3://npm-registry-packages"}},"0.22.1-alpha.13":{"name":"@opentelemetry/semantic-conventions","version":"0.22.1-alpha.13","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.22.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ff230d7ea317470fa8047f8c9c8eef3cc334ce21","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.22.1-alpha.13.tgz","fileCount":39,"integrity":"sha512-+R0ByDf17VorBR/XoYQ/ICMf8Si7DAc7fAa0G207ErLpn3n4IS4lDRz8/lUXNvBTZntUvYzabIg/OhlwKMijSg==","signatures":[{"sig":"MEUCIA/Fojy8BPmkQVM2Hi/akUMn1y3YyfL7dUeTpcZNWSg5AiEA0sj6w74riBgHqR0ANX2r7g1aABgThi+8hEoQXbpKkKk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3LqOCRA9TVsSAnZWagAAbbcP+wT/+Eydd5tJZUxjBCfb\nEsoQPBQvhyeOTz/CTsQ3/V50a7cmOz8iSnogupYdBRLhl9WgeY57FJ4hn6qd\n5PB22c4Wxb36+FzLD6EJQ3Z63LDwM+dl4k0dvINptSxyKXc5KmIOfjy1z8Uf\nvuozDD4vGA7V6ih4FMlzuz/3N5Sd7RCUm6/b2kxpL351jaMcanriUaoWjcXV\nUoBN+mASfuwRZZrO7p54HmZFVVZbkCNkGAhgRrGuOys3RX1TyOXgVXgZ+jzc\ngkxCN3ezN9qv+D7e4WyctjbbCKXG6kvRYvjPsADbsYbzFhseDbj3adAxx/+E\nWjHiIi430OkQlUuus2yi+sIOyxGKwanmtGEFtkr5OwdqEuJm0gWhOlHv2k3q\n74ge6Ngw50MXmg+yCw5aQ4ducKJYNxaNqaoxKFoZvFrdveHvdVnOKWampJZp\nSrWoycczQck7btbVeZvBSzSFO6ffRc31Z3XXGnbYOesSNGBmmFnFcMH21jTb\n9ycwsrngq+t52kuT62kdGiGaFmKCZqEKtxXq7nAWmQjr9NK8oix1gdWeQrM5\nuQ3VIoxGMSCTQZ6PluO55p4uCxCYbW/6ue3cuy7UDVLaYrLLS/YQ7m97a87A\naa0SNOsgiZxJFSIm2NALdP9NQcVTCkoSlVJYj+o6Zn4aU5YDym4ZxheHjgDq\nX/hl\r\n=Tn2N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"01418978e5cc15b5ec4d5283ec48910799fe2f06","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"9.0.11"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.22.1-alpha.13_1625078413575_0.49275408553265065","host":"s3://npm-registry-packages"}},"0.22.1-alpha.15":{"name":"@opentelemetry/semantic-conventions","version":"0.22.1-alpha.15","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.22.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"155c7a4d73691b48f659bb52cce68e1bd3cf0e90","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.22.1-alpha.15.tgz","fileCount":39,"integrity":"sha512-WWR9+RsRsI1oKPJ1sYiQBq+QYS9JfCWjjYyhNQkUd3C7dQh0zXpdoN4QBV8NhWd9JgVvqWuVr7OXZpnSLZ5ltw==","signatures":[{"sig":"MEUCIQDiZTEiAqzo6AwKkPRWkC2m0zLFn4tPda6qelbPUVdQTwIgB+SOTpQj+94ztdVyZgBCBuSWhevF0jzIYay0u3Kl1BU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3MEzCRA9TVsSAnZWagAAatMP/3yNHVSPDq7ROa2Wow5k\nytvODlQteuvJY8xtCP7AukHhp7G5rWvsRtuDiADAPHPJde1KElA1g8cPQaVc\nwGiB7iQzpy3TjMr6f5OJ1CChUICuaHIqodUxf6QFiSnT1/SxJAhki2mKFAT5\nQgMgjruluJY4uD2lkzoqRJKd3X+oK78BoZx16CnExwJ96evTzbFFkIAra3sG\nlNqi4Jqkv+Lo1l8xKt7ztAvdt1XUVoGYGLAbhLc0SMrB5jvmsopsMxrDVjHh\nf8KU/Ro2s1M4+qNfP4eu8xARYfOqEk+yvgygh5xVV7Jg+J4flgQMynp3zzD5\nwBnzZbXGIz3OB+rOEUVXq+vlHIs5x0W8/P1O9UzrrEsHO3lrNtdn8YgEd5Hc\n1Ohhn5f6xJLMv3VKtv4T5G4rmrJ1ow7jR/9NMuk6OHuMTGpFQmO1O57xBRJq\nLDnXmUfYeqIrh6AgrvV7i5X+DBqj+4VEYzz7CWpkHUpwLA+39IKSgbuWvJWp\nhkZUP9jxYb18tne4RuLz5uk2hBaHe78kubOCTH7I1V/puwx4QjOZ8kFgo9fr\nfyf0TcjSbr+1ohtSFsWkyuVGkvqGqgfwJrkLfIr4B34hmkDQEvTKKKYpIZ35\nCbhgN/GFP10rhvRs8rYTO3v/MS/f6jxX/VBMKdx9ZdRsI6JSoTq84qaDz1OT\n4TNR\r\n=vViG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"c3ff9d1a6b599f01634ed2479183aca2c6d57337","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.22.1-alpha.15_1625080114654_0.23134827564296012","host":"s3://npm-registry-packages"}},"0.22.1-alpha.16":{"name":"@opentelemetry/semantic-conventions","version":"0.22.1-alpha.16","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.22.1-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3693164a78d991648584fa379e5174ff3a6bc945","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.22.1-alpha.16.tgz","fileCount":39,"integrity":"sha512-hxjHyquc/WymubE4RKhaa23+wbhGrGW+/s0SLXtpLr9D+CILcv/Bwyt1ikPSoxs+/H233EsOLqp3DgujoR1K6w==","signatures":[{"sig":"MEYCIQDr+6uRotv0TMktkndYIk97R6/BbET5KRZ2bgxq/2LjzwIhAO1Y5fwIE18M9eqOoTcitZPQFEtTWPoZPVqn9GlOKv+P","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3MqVCRA9TVsSAnZWagAAg0cP/2xJKUBm5+8knlXh4b2S\n2ecEbHLezorlwZYebFwKBcsnBTWWx3bzF2C9EvIWvXBLKzO7arYoY/g65Bfe\n4RyMqRjjfK3+F/YftA0uPuuqppA/ZoEjry5GjD4CL4QKlslpMU2tYxgEXbLX\nN/FCk6rgYFuQgOaC7iS71NzUuebh1O6QvOn2zXpg3ya69xmf1QMONWf681zN\nRIG7jQhAhg/3RyB8PPZ+eYghFSxEHsP0QyFwOKwBMvssBseFYrC4ktXmTAaE\noXbQAv40q3tKHyZowp0o1uuh8MBnXoXs0A2Xuzhqio30FkgH3N5DPwCeHI26\nr3pZvMmJ5FAVVeRn/k10/5mOsPqF2laUHp+jvkc+JnIdoyoT3mqb6L+FpnVu\nM3VSD/s59M3WVVsMzLLu1DjU3Eypi/VMORj2Xfg3Jjlb6KkdP9x66WdcP1GG\nxze4LVah0R9gKYSrS/8QeG+9DJNAz5+Zhtm6o73eId4EbD8utKt6tTZ4UIwc\ntageYAGw3SKAhikjuxvziYkWl32CgOO7RBkyfnjY/4gCXVsmKdni8ruoKK13\npnpxZCWqD1TebGygfK+cv7jC7zvG5MWvGY8bAIiKYs23ryyA7y7rd0FS2EyU\nBDiT66uR9aecrozx0gsF7Po6fnpqYaVh7cC9mNl8nDkz2J3Vl8Sf53cjo6S2\n1E6a\r\n=VWHX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"5af147b159c9dfad8d00a20a3b140d55736f1919","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.22.1-alpha.16_1625082517010_0.21881760114862603","host":"s3://npm-registry-packages"}},"0.23.1-alpha.17":{"name":"@opentelemetry/semantic-conventions","version":"0.23.1-alpha.17","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.23.1-alpha.17","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f7e36ca3356ee53b417b11177f32e557aacb6cf3","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.23.1-alpha.17.tgz","fileCount":39,"integrity":"sha512-pq7Ca/aY7YbaDIebMl62bmY0H7XQO8eP9tmK1GnECq99jTUIfJO1gUd7d22266w81bk0VchXIaG8qXJC+KjlQg==","signatures":[{"sig":"MEYCIQCWwB7UYO9tLb2KzNJbOvu55Jkr2N6diw2b2to2X9tJVQIhALCMwfvbVHGW2RiP5BM2Q7Lh7DVqev+XQaTvIG1FwEsq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3M7+CRA9TVsSAnZWagAAaqYP/10o5HpdHQNh1aFxCK8y\nAD0oQgPOGuwc8dREUumadpPzzGANkgS3qcCcO2o1deCUo+2Kk7Y7pHKbZRRe\nbpymSqSL6p8HPrMKIA8dZj+1MyOpsqTvec9SV8a6JPH1Uhyz51Pv1W0IuZYj\nZMypWTWGm3t56QXcu9RQfQi+ng4cluqcQCod6LXLWWkEFOFQ/YfpXXrsRlZh\nx3L+9DgKlynJ5L3k7eEgeXBaAqTk/L9FTSZY5pSgZyOlgMY3jif8Zo01we0E\nRU0rQv290f2/l1OPTkwtK/oDDn7AJuDKSlPIW8i7aCTCPriXG6nLXsthLXZR\nYVkeTNal63qVR29K3f4ghtI9E8B6zkUwAFPvPeKuk6sEwdsU2jmHQc75sqHC\n1pCecwg9w/FWfKZqHBql2Iv4SE2t2yOLqqdg3hqmrYzfBnK+957h+j/ZrWZ3\neugmP44+h3bWcuR4yMwroIEEszvoiYlNYG1+VcDjtC50rm4X6Od7yM2005/2\ntoxkHBFhf4vgo+4mwHu0duBF0va3U0wh4SUPaXCIJCg6PLblpFudkq+1wuiJ\nYrRlW7YUX3PBknBigoxu7rftiTjeSCuz/EAWDK0oP2r5H8FNO0i+sOMZHGxQ\ntOuxlGBdIxF0MCnEj3GuApYR3cVu82Sh2NwtuMIP2B1WfNeIb58njxNko/6n\naIMv\r\n=6/Xb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"f2a958dfeead4f6ae20901ab3fac04e4fc424a3f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.23.1-alpha.17_1625083645604_0.6341839144580665","host":"s3://npm-registry-packages"}},"0.23.0":{"name":"@opentelemetry/semantic-conventions","version":"0.23.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.23.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ec1467fd71f6551628b60cd2107acc923b9b77cc","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.23.0.tgz","fileCount":39,"integrity":"sha512-Tzo+VGR1zlzLbjVI+7mlDJ2xuaUsue4scWvFlK+fzcUfn9siF4NWbxoC2X6Br2B/g4dsq1OAwAYsPVYIEoY2rQ==","signatures":[{"sig":"MEQCIFpOK++ToxvQPFRTCg8nmw0jlFXyiaIK9C2cTchHpalkAiAQibo3Z8NUaI+pIcAe3OXvM3yHu81cP/v7NRJOGBtsmA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3NC0CRA9TVsSAnZWagAAV8cP/02qr1YU5HDYz3rut4d0\nAig0ZGTUWbmnRYOxDqmM3mNais6m8ZTOkAoQ6XDVrfMVqrd887oeaT0jwa5S\nHya9RY4iDAKmczBoykF14t76R/btY8HmYLXywkqDZCoa3dJnQGqMlCBkqg27\nyGRDGMqhN8IV30IRtsbb3jghHcZ8u6e67uLzwZV0DHGmDNG2ipzhS0xh6Se1\n48EuXOnU4iabecUljeqVZubE7iFXTdcLhetPr8UNf3EcXOCWGKuO4Cw3dgOV\nXsdTdqkWjctG3Wmhfwdhax12j9zt7zeb2rDf0HHVrCXXzUNloyLtRHWG/Rym\nQomEmbzeZG1BErTMA0ilgCBsQSjfbcmvrJEMFDvHMluL5xU7/P+l/fiZgQfm\n7AhVP/taBYZrpu6SnarVYQ2w28pEQpLzPYZDZePCQECb0bnHsDajRxANRy27\ntzxx9FyInQIPcrNOR4NXNju7UqrwAz5DU0lL3TmXfNJ94i71A3xnPwxeDD/t\n8GU36LSaQkcJolKSkKvw28SGByQoNn2ofIuv6yTClE1jyuckbPS3YVGji48S\n9CfRsW+JWM/nEHiJa1wUa8tvtewq+Cg8WbgeT2ffXZfXH/RcPzigvM6XRUkM\nzXxY6yi045fBUcpmqMTIRc2vxEEZc4IWnvUkAieBGOYabr4sfhP7Zg3syApl\nnEcY\r\n=d1dQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"f2a958dfeead4f6ae20901ab3fac04e4fc424a3f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","typescript":"4.3.4","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.23.0_1625084084162_0.7341663002118268","host":"s3://npm-registry-packages"}},"0.23.1-alpha.18":{"name":"@opentelemetry/semantic-conventions","version":"0.23.1-alpha.18","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.23.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7a84f49c29a629486a7ffdde0e13d72339fbad31","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.23.1-alpha.18.tgz","fileCount":39,"integrity":"sha512-cXLAzAZ8H/zYtiMtSpkbSbniIzY5mkdstM3oNWCYe9UZqaL2liLxcE5dc7CV9g1DmAPdbiPwYMkxFFBL+aBycA==","signatures":[{"sig":"MEUCIQDqxldEcatGf/ei1E5R7Cv1jH4d0hXydOqUsmIJWRdF8QIgWj4VclkIIrYZPPE/ispdd1arDprE2SlJdOSSz+/BTgA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3yTCCRA9TVsSAnZWagAAS4cP/32mSRaxTf2pEf+2gvq7\ntZmE1moZxouXJ6VIjx1jkKdF8Qvq8I7kShHXKtqi/JbAHDGbqyHzn4tNJ6HC\nLkEPSVzE7VuQJsAhhFOC1bgQ1KZqy6CylSXMH3T6bvTltB+J/1jOnl7XciAV\nA5yKswCuK+7vm8M43CFK0Zn2NRiCd7N64ZKPNIWXykcPEYtGEn6T6xPJjRVn\nrsapuciwCisaCcQ8jEFnV1MRv1GD0XX3pLYXitZOL/u15UkJwhfuMPslYtpd\nFNeOakZBPRQ8WEAutGOlu/g06jDUucPMLG0oz/tIYYjjeeRgbtOE9CEpVFaU\nr4uALDY+xYzuzo4Cr/XAoPD86PntxJpB+0UEvzlPGXysrEcPgOUST4zGhy+3\njOZPclJJvO92auJTgZP9TpWgZ5THP50zcfAshAvOah6K2r+OoCk7PHwUDGxq\n522IyYyAPfu533ZDcZrGiH6Q+19UDGZgY6c9adZ9MP7bOjuzSkVqshF04bV0\nRKF3lTu5Yy8qzRu19EGVRpGoK4k6rMuIKW4f1R7hIb/hkc8PX1XEd/SyF251\nSeEFVZGflbMJj3ZqLTNnjU4sGizDggWiJDh/3f8VIJw4yB1/4fSSe9wKKCQC\nyPKTvISddkc9q0Ykni4ii07G+7T7HxsRnSgD/iRuQO+dv6evcnhfEciHz2Vr\nzMis\r\n=W427\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"4b3425dd09f0a7087c9d741d25c7a9a0be42770c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.23.1-alpha.18_1625236673919_0.5726549588934098","host":"s3://npm-registry-packages"}},"0.23.1-alpha.3":{"name":"@opentelemetry/semantic-conventions","version":"0.23.1-alpha.3","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.23.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b78926b225698b076d027b8d464726f0702406fb","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.23.1-alpha.3.tgz","fileCount":39,"integrity":"sha512-B+Vo5rC9vXrGAECsU1AJfugLEwiyvUZe5wEPU7DQAxrhUYPWh5nTGwA4pA04SZTJgtxLveYB+420+itUrkEVJQ==","signatures":[{"sig":"MEUCIF6hfqiehpV5oZ6Hh1B8PIDe3KWlFb4z8RO8djWb0wYxAiEA4s//kiIcLtWpO4wcDj2ThZ92oz1BxfSUlL2nrSfqBTk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg44dHCRA9TVsSAnZWagAAvtYP/1gzzT5yi8fE6lNToYYy\nkl23W7TvRIfe1B/goYAHeLqwglfMdsBX8BYbH/h84ee8DzhLTjznlOQYEQoL\nVui1rOhiqyVRutVhxs5sB+vf/oM1M5UIBU8fmNZjJfjnsgcw831+cS5vvGka\nC0zLTQ5DgspzjoifhC9OJXNpu0kx9KXo7A035mHqVdKlnU4FubRHMQB9wAiU\nbzYNwfxeQsQv29jx1ugOcZCLjmtnmyiA3F3atnqJXWe4ATgltKm7bdMPV00G\nhjQ4mprZmey3ush9VtKVoE7JKCC1sR6Hi/Bms6ggY966pwO0aoOKprzcpjdn\nEwRA+4fHDJZkI8SAe/terZctNnnfOG05wPanINELdJVFkn5RtJJDoXckj7M3\nouLcEszZBwS+VVnuAZsdwTRkfLElrsW+ayN1ERQxsEL8dYJy7qjhQMzeZmaL\nL+31WIyUBWm5+PTGE5Yq0IK1jAEZdmUNthuHBzxLrfBxRtXkpU1bIq5kZwwF\nYUc+vRhJ/AE4JlKL08nWsdIFfMT0HsLOYfqdghT+l3y255Zukxeaiwl/A8Zj\ndTN6OcFn33TcnT/w/Nyci7yyB6eIihja1XsyFFjYECdu3aGBy0LUasTxswKQ\n6Uw6LbWLI1BghotRaQ5XWvLEWf2kQZmVJtebii/onJK4EWSIhD6JotM6hegL\nVZLE\r\n=hv9T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"6ed8d92559df68ef1fd3273598a1860ee5197e53","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.23.1-alpha.3_1625524038831_0.5744264108275918","host":"s3://npm-registry-packages"}},"0.23.1-alpha.15":{"name":"@opentelemetry/semantic-conventions","version":"0.23.1-alpha.15","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.23.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4df2fe226eb77b3e2c14e5b0c5f61e811802b5d5","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.23.1-alpha.15.tgz","fileCount":39,"integrity":"sha512-F1Y3YF62RbsdU7og96G3xemdMuBwLE6mCcsQw5QnBPKu5/G3ueImS36A/B3Xba8zKp/KwRJEExk84KuactJflg==","signatures":[{"sig":"MEUCICH919yDXUJ2cj7vNJifRf7s7zmukiFaI6HyWrBHsb+oAiEApc2X9yDadptI0mEZ9C6szAjgKbxb9nEgio37qgDPGCw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8qBCCRA9TVsSAnZWagAACwcP/RrFVqUKUXJz/pqyJXVD\n7S8IKq8xtho/RaZYSvr3C3wIH3D5QCwH1/9hvhRevebJnDpmLb3yCz+U8Pie\nEEwwIZ1/wJVAJqBaIXpw9K2PdXTtd6dqv4o4QRi1joO0UTTUGcpDsj8vF0/n\nBNARHI2HCAtpJsb/G49NoipCMNdnHjN1L75IrWcxdj+7SPgFh6WNRJLwb+gn\ntQP5yKHNFL7ktJZVcs1XBzoazdhU7NB2TqR7KV/g122XmC+R7xk4AjG6/kOv\nnuXGET7OBivCQdHGB2MaLWwJCKGPZ0KaNIILPtCz2gulqJ+EgAdJnrhGdLH/\nkSrHSC6ybs35/Y1EtOKxk1R5DVcyZolsv+ZhY9AJg48kfSt4I14d4Cgr+pTo\nVIoYMWQkSEOtJYliMFbkDDP4Uk7/RJrGb4f+EfHynN0ZvgDxLnym5JLhrsx2\nHz/dZqbteKK0hOMhXtn3+gOiUD2Z72mQ8LigSwT0YKRRR6AhAwfvruzj3K3T\nNziBHwRJQzaN+83dfxMssFYJJA4x1noPHMOT8/CboG2NEfW+lUzQcouPEG7P\nd/hidNjvoPLir9eQui1XkDXltjLoKr2nmqh8eWwJSEcpmlS868gRiD+6Bmvj\n5K7IoTeKgesZCpZrETPWh6Uvm9lIvzEdVtkhZBuTwGrG1JMe60bpk/vArEaJ\nU7jC\r\n=EZ7j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"b67ca0568c333e5d841c9b614ed40b3e107682e9","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.23.1-alpha.15_1626513474569_0.5074668790201604","host":"s3://npm-registry-packages"}},"0.23.1-alpha.23":{"name":"@opentelemetry/semantic-conventions","version":"0.23.1-alpha.23","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.23.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ebde8321134441a760f32ac236ff7d5dc0004ab8","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.23.1-alpha.23.tgz","fileCount":39,"integrity":"sha512-9DgA0yUgjVkV8PEZihQGBqFTcjYSbXHjMhRU1nn9Tdwj5TzCfciZpjOTwnDxLDnwn3QFEuNcyfN0YhjWZ0X5CQ==","signatures":[{"sig":"MEYCIQDSaJkd7Olpvm74TzWFszubXJZANZw5CYZDNiuS0yFnWgIhAKbd+Vbj+xn5xKbzlmvLk8iaNh78CD4GxF/a6Z4Sl++A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+wBXCRA9TVsSAnZWagAALkcP/1Pc/yGQpozoFJhlse0A\nmeT03btkBJ1QKY38tnx5E+CjwGjlOpxUlpohnK23c8u3BH1J7Y4bkSMjhs5p\n7p+pxV8iTKL05sNS+XcQt4HlkcA8uku3QF9IEbIj9UgeUJcJG5vezrcWGH/r\nczjp5vipgVtzuHzj/BO3NpfUJyduwUat96WcfgTMs35lp+VMOWbmTAI86ewT\nyb9UUp2GzQMfxZzZ+cOQm1G6hTqzCuCF8KaBTjj3v+sB17h1AZrA7WsQokwO\nbKi/4GGrdp7torj+lJGfuwjwSNhlTJfOZOS4VozD3rGXNAiNwVWt4ZlVxwtr\n2fuJH5e/OZazw+jHJ3L82qlvZfVhyjsijSM06qttuMwHlB9auzxOQw6KM8eI\nTcYRrtoIjZGq8zScW4INjqOAopxOL805Sbkgnv5ESWCyaQluhbz0RZ4w8mrd\nPgpSA32idkccCplgycCrQ1tpENWF6YnQaTbUYtfnvj+uTCOk3E+3T0oEXYHf\ng2N4CeNBlr+YesnHRioG8T4CXkPVCLgPDnAPpxA7R3lyk3OqIY90vtGhVyxK\nr6ZcX5NUb69umJGWgdVtItUJf0NaGsNU+KmPePq8z/BArx46fd3prLEv2FOq\nxAkywZD+ze5U+IpfF1PjGoGut0epaL2yYFL69GSZRBm2xwhtMOA9RWaMd4Lo\noZCc\r\n=SK1Z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"884d20ab417bf0283ec84a72b9a0fae8ebcb82a1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.23.1-alpha.23_1627062359804_0.3736998766836106","host":"s3://npm-registry-packages"}},"0.23.1-alpha.24":{"name":"@opentelemetry/semantic-conventions","version":"0.23.1-alpha.24","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.23.1-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a043d65cf7af7d851d4257f70b39b682c2f337ab","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.23.1-alpha.24.tgz","fileCount":39,"integrity":"sha512-BSWK6wYtgXW3TcgDiEnoYUg5AIPCi0kf4p5uo4DVg7qPgEHjU8MSpBwPE3lOivsMAyxTbiZYhtqY5y/QYE9WBg==","signatures":[{"sig":"MEUCIQDj5ojXjQvyCIuBnGEsCZdUwYZzaxqISUQ+XzGSUOQKTwIgTnH+5qt/PDSWJ6/MSYjJuxmsW4lGu1/Ko+01QxIZZgA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/QhzCRA9TVsSAnZWagAA3/QP/jMgLsRXiRP5c9ySVIBo\n2oD3FMpPx7iyx/mr6m/UDC3yfXFveUd4ghia8D/Aq9fN/+3Uu8mxDlRR6emo\nwtQPqPTK9BTt4G0C8Qce7BVay2+gQ4eOYi3RjPc6DF8mlJmajszWDbgKWEMk\nwpA5qAvz074XI2RAbUGZZZ5ByV05tTIB1WakcWdING/gCh6xART5e0lrnCo7\nq748ZdwUEV827bvl45lIM/+xHlRmzZK7XENk4E3a3s2KvsIrH2m5sxDxkX34\n2J+MJavXnuP7CAPeiXtOEEwjqNJasXfbLHa1oJ7Dw629DWUk33Wz2xT9Zi2S\n0yt9+nltzsMdQh5eo7rkiTpozwqGPldw8+5fSGF7R/K9MOdOqPawqqOEyTmP\nXv4hA/iFPMAPxXECWnNgzmGjrFL/D2SteXCfNrCROfOPROqibmVgAXNrLva+\nvlg6pu3AWQmkXVsEMnkEJ46OBsHXxCpjZ4HXwp/7z1XOKBCwJKnWj8LNoF8+\nCiB0I9YQ6YFm50SYy3muAyKRBPVAr02QuxVkNjmBQrBAJmmu7FrKqV8EIYrY\nyBOG0A3qhpxGNr2hvknfMci9Q1+wn95guTupN0a7AshsmuA1+7ifWEZZYsyZ\nU94LmeY5KRrdKpR9DYh4FR4sQu+KnpNNvw8cDXNTRmZBDMsNebdlqot9kz31\nSU4b\r\n=IxsD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"3bc3452814e30274d7eea1f3c9da968b88b1a197","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.23.1-alpha.24_1627195507135_0.398552862146101","host":"s3://npm-registry-packages"}},"0.23.1-alpha.28":{"name":"@opentelemetry/semantic-conventions","version":"0.23.1-alpha.28","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.23.1-alpha.28","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"dc12e94ce497f954c03dc7309b392917f01b338e","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.23.1-alpha.28.tgz","fileCount":39,"integrity":"sha512-OeHSC4R7FjIChfB1pVLxT8Mvrru8a+tQDv7RIyfur2TdWtymlIT6n7ojzw8U1u/bW0vs+OAhphhDS5H0jbgSWw==","signatures":[{"sig":"MEUCIQCQlIhYau+EZirdyfhkn8xzeIyFee8vocwrkpEqStRVDwIgMfVAkK6ZjkSQgzFXA/yNFPUhTf5A7B1FrqhxsTKXXsA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAGIFCRA9TVsSAnZWagAAKU4P+gIFCNvOuJ3TfkY/GfEq\nj1hfei4MZOsrAcSiMgbpllmg/TvZzxljHCaLEj6XNeTgfmcT1Eg91tqbyp9D\n/aAKochV9kK/zls6x2/+o5tHs8OB3SPjuuH3ComjATeno1OsUkiDybcJHK/J\nN4je2cdTogOjOpxPAqO51wJuVULyVB04+8p6LDv7cjHT62T7HOM/zUXO8dNa\nqTLpciEShVoS5eGSn55wNO7PoCDAqOef1Td4WnNkYlktwWCL1+XMZIZWX0Y4\nG4PfKmqkhRAk80I+lZsY+7T8T9UKK520ICbLz04+T89K7T1Y1awNQmUA1MMn\n2fQX+DVR8sEedwj503jzFsJnuVRWdmT8Uiitlorq6kfM2DKOQecvm1i17z5k\nXL+YHpKCdye/HwSJDEkfDe/J/ZSOVDNNJh5z78uhyRGU0b74ra98xwv3H7Xy\nXutF9jqX7SNAjEBUtp4aqAALQ+qtne+CChEBfWhBAIXlsLrsWDFzc88agN8K\ndHc+uP1TdnYWV/hIhZ4/KS10Lsc4QHftmLzgn066pJ6WrkOUTDj6K5nFq7LW\n63EqtF6si30v7Wg6FNnbaw4jCCbt7w3Rg3yumNgamFMrRo3j3vIacBgwuXgz\nVWy3WDATsjteisAhQQUqJ5eV43wjGkaF/CnnpMQHPFdKfx68IWSvTI0qZRv4\nG4NA\r\n=TEqV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"d8fbeddacce3e27aab40b24c2ca3c271155e74ea","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.23.1-alpha.28_1627415044861_0.19805459038910578","host":"s3://npm-registry-packages"}},"0.24.1-alpha.31":{"name":"@opentelemetry/semantic-conventions","version":"0.24.1-alpha.31","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.24.1-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7a9a10da1b28aa24968bac90f4bd3e025c46530d","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.24.1-alpha.31.tgz","fileCount":39,"integrity":"sha512-kVdxTt4M+Fe5MwZ3QjAFDoHpiJ0MDh0IbvxQkHODb9EUiZxYICgDXKVUM25z/DDctaiXzlfTtVYOLDpPHGStPA==","signatures":[{"sig":"MEUCIQDc0vtgrTp60py7uHCWObAs0hghLAJGCPfBVQE8IRDIZwIgXeSctrN78Y4haUrlIMnsuMpM2D70wmGsHpALUPD3KK0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWR3CRA9TVsSAnZWagAA1mMP/1cOqg2u+YVSywhhhuCQ\nthOc6aQPXERW2aDAzhCNhIscI4aLYwrdFaQd5hG2veSfhGitw6kYDNj3qcHu\ndjG+TR45WVESKvaqmz9wGpfSSbjK5dGFq32CRCle4SLj7cwazmzGF41rIpQR\n9bSdrlkbS0EZjLCJgXOWCrCSd9uf2w9sgdqRY4CUCNNxABq5gEj8HpWXzfmB\nvQNgDDsUwzXZHiqYoihGA+YOvCaerqxC4Ornv8XlBy70BTLlyaEjXkyz6Thr\nADiu5CnBtEbYvnXsaMO3n+AgY7kAvxWy7Wu4T3VFZ5h/Hakd3HC1qdCZS2T/\nqQ7H8cEVwmzPMFiOIZg/QAV58VzZw3FP0l4cRthZUzwljeCV07CpGeSvwlyc\nkjGA9o0yIif/6z68oblVLEGNNlkOLcMvSlo7ot/u9A83kZJUv7LIfGk+AraP\ngSKYzT20J7eNK46vZYHtwozPieelw76ZYWbFGxXKbqOOQXMz0tJ6vR5Gqmob\nbYVVsdnK2A28EeDs7uDlIOZd06iyULQcLQcyMZs8S5wSEPejgO0adlMDwvgW\nLKVPhz2DPNEqKq1MJwufXxBCMThkPkt3w8MMkFPkxC5udu2eHapdEuYXaA2i\nEolKbkrVA/vGgr6ouVgqcpWAGT5NQAtnq7+nihou+eS7p0yebf58mfOcizeg\nAekm\r\n=5cQ/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"fd2410cc9e8d43210b6ea44b8193fa70ee900499","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.24.1-alpha.31_1627481207497_0.2478579747989651","host":"s3://npm-registry-packages"}},"0.24.0":{"name":"@opentelemetry/semantic-conventions","version":"0.24.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.24.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1028ef0e0923b24916158d80d2ddfd67ea8b6740","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.24.0.tgz","fileCount":45,"integrity":"sha512-a/szuMQV0Quy0/M7kKdglcbRSoorleyyOwbTNNJ32O+RBN766wbQlMTvdimImTmwYWGr+NJOni1EcC242WlRcA==","signatures":[{"sig":"MEUCIQC8TSe68oszT4eAtUNkwNTJLmVlV3l9TxGxC8HxDdmUqgIgJVJ+Y4GJPxeLiwFL/wHxzkYgBsel8RCApBRFJwGHlSA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":349338,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWYhCRA9TVsSAnZWagAAr6wP/3iSX+EIr+ujeSdF+YkP\n2CuRx/KjtQd0jkZeqK6y7+rxl+ySFizs4ylBsTG1VNcLb+LoMS81jYKALacT\na8n24QOb+Rje4dW/oEQj/DCAgLE7sTC4DlESdC6lZoq5r1onR8jM2c4D/Dtm\nzOh8dKhUnkpm/sy8Seb6bieLuXJ1rTOX9iOhgLOtYZTsiLUJZi1q78ugh3y7\ni7xYhsRrwa9YrHIFXLOZhiczj6KCE1XQsAJeguH9pY0xcUobaaGMo1x7B5ip\nwiBc/dQa4nB2tM1l9+akIJk1OI68sSDIUmCIiBS2Ua+SMABaXgyl2jbhkMEN\n3+YDlAZHlbpVove0MFppfM7nyRUn0e/wJX9tP2dSUa2wkNpVZWAMQ5c1nKiJ\n9qc6CHS6JCfA6OhN8duJMqt86G/qqp+AzFQ1MfRh3B0cb7bDHm3Jt37q6HtW\n2sEHbTmwb/Zv8CJ8u4LM528Fya59oSoBS2VEk1LBwNOF5pwhI3hPvvNaG4lm\nHaJP5UjcQTRImipW/9hzOb6fa1w1nGqioWUTg0tgY2e2ZeNoSqYpH0Xe7JvB\nTnKR5MAQKdrvPg7Mfg4/O3Az5sZS+bk85aCZNirs7nPZTklVISPJ4DvrsQW7\ntLb/FsrSUa9hui4FtVTC/upIKITseKIaW5fAi+639Jt6+bCCzEUMOeJJ8gpe\n9gv7\r\n=Zla8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"fd2410cc9e8d43210b6ea44b8193fa70ee900499","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.24.0_1627481633309_0.06732263313288778","host":"s3://npm-registry-packages"}},"0.24.1-alpha.1":{"name":"@opentelemetry/semantic-conventions","version":"0.24.1-alpha.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.24.1-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3e7a2f1778496c330227aaa320be622ee491e7fc","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.24.1-alpha.1.tgz","fileCount":39,"integrity":"sha512-57n6Us8YNuM7qjf2ag5MgcLsxgf0CaVZyoAgGaMTBdX72fMpp5z/0kZ0BFUlC+6nJAbHg0VaFyQo8glSlMe64A==","signatures":[{"sig":"MEYCIQDy8hin+26MxCsZbk4M+NRihpYixHoc0dcvf1/cNacwfQIhALtZYMfhGCLLiDvnUtqWR1tkIpULzoD6zZXfZScz8M2O","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFYeCRA9TVsSAnZWagAALz8P/iT45B0Kif0C86866W4Y\n7OqRs9RJ45iBLO+33EipNDv4iPkc3VD0f4JoBa0OarIetOB1OruGFgld+6aH\ni1CUu5WgPlzp3BCpexHg2BiQje63Im2u5Y9Q4O6EERmEMSNm5/NEJnsyjgSe\nnehSXZ4sJpKOqWpe96CQlMiOhFwfvo8vk8zAAe3sL1odpfWSZqu8ATY4QmBb\nkoo7z3yWqrr5MDI4bQTco8rkSrk26a/et8udhHKHzNn4bvZ2Ub68EWymcNwT\n7vxkBxIJ+XbsmePeNbRhPD4vliWEunWlR/sc9h4sZ1HcJcXqWGkJdRMLXSYp\nYzkY8GEZhWGsk5FOAOFitx9QBtLnRd+Y2LJbUtKUw2CMp3wMzq7jZLad6tGW\ntaVoNwKLQGns25TI2sP4usK9v6kQlMfeKdFmDrtSVoC4nsEwXQIb66UmODyM\nTBsR9oXG9KeATA39pkNgSGwT3HojRd0so0Ty16ZuGLaqXNz+x9YBLbj7aW+Q\nc8w9NHNOwICE/e784fpP08nFzuO01kUSqtHgJlHIfLPrOKHmzUAX1FIpLVdP\ndGTV+KJY5EQfmbBB2GfW6o7AkajsJrPG+QnIq9KsPL07a0URTqSAb7VpSQw+\nGFgJ15c3STRddNRDKyY2Wk4MM5dwuJyO9tI2FfvH6TmLqAzzN6s4Lza4QUXj\nRak8\r\n=KjQa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"3b9cd16a8eeed7a262bdfea4c93098861b4c1ba0","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.6","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.24.1-alpha.1_1627674142124_0.8913889483973665","host":"s3://npm-registry-packages"}},"0.24.1-alpha.5":{"name":"@opentelemetry/semantic-conventions","version":"0.24.1-alpha.5","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.24.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c2dbc244abe38e0a5367b43670b9e45d6df954fb","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.24.1-alpha.5.tgz","fileCount":39,"integrity":"sha512-QV6DBvkSWYb/0LonGPzcnw55BS3AF4nae42GFxzOTxDgBZOq97EV9XkRbn1LC0nVuCdGdj2xCU5A3gp+3f5X+A==","signatures":[{"sig":"MEUCICoWHAMS3sb0V2lzqsTiEZR2hBP2PVWfC84bQ9KpO7K1AiEAzSCBD3a+UkAvZEs2m9vSg9XzPvUZlScEy1mEpEoHAag=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDR2FCRA9TVsSAnZWagAAeawP/RcbuiQeNwsUFwEexedN\nCLYWPQGPPw3kAyWDRzjf0SR0jQehfChDSdgS+M5O6P3AOV3q7ka85INJF7W6\n6TSmQIexVMbZfIzk5TXcUsylpRddBojmWIqvb17BC4HLBxZpONHu7cWMTvR3\nkqnIDluJ17AMPSmIJhsTFM5KGhWfoYWFEHlzs7cqgPLY0fCF6/FDBqPw/XQi\nVTHLD6Coj/2f0DLiaHjcasZeEwQt+0Dyx4SIDoLvejYno2kAeqLNXwVSlaWP\novuPVI2+mEgr0kjP+jK0Ckx2ZRWe7KAl66yVNGFfsTTSPlkqSeYj4d6Ws2xg\nHFPBOR7zZHiC1XK2YVzy2A+9yI+yefnoQ4OkCpV+O6ImSHwRN+tw7L5ianxK\nWhtkVTQT46BHOuRu8uMtDC6TBkLXXnRHF8nwsfFNgPSlZb8iJ+8lSLyfbgkr\nLQhEO+JU91K9tx+wgeYqf0WuaxOeQaH8fZxr+q9IND3b4eCavscGsQZp+tpC\nLtjatXOttIRE0SoiDjm+Fq41WncbPmmGvZuiZFTP9Jh+lPP0xzs7NIef7q97\nqS+kHTTuSvV63cx/78iGp3ftriJgiE6AFbEgcRkQMwxOPwb5eyMNzAxvp73q\nr/woObo3mz+TfyLzL4bnBaApjtDgcEeAzKrnakdcTxctXQtlboMUHrdpSRuM\nPIhu\r\n=BlTR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"b69ff35e90a33d20a0154dcd326f1467dfd39e2a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.24.1-alpha.5_1628249477133_0.5310870184826475","host":"s3://npm-registry-packages"}},"0.24.1-alpha.7":{"name":"@opentelemetry/semantic-conventions","version":"0.24.1-alpha.7","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.24.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9b45471696523de0dcc151b5453b4b146eed0ae7","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.24.1-alpha.7.tgz","fileCount":39,"integrity":"sha512-ZzyoJqY6cIGntwUpVqgH7WHfuwnduRrEx8e+T4zko4HTq12fwj5a28fp3TRRfw9KxqGrC5ZI4wuzmDXiP52j/w==","signatures":[{"sig":"MEQCIE66g4xSb1Z78DaDcsjg5ZyJeXAYkE1H0N5RYGFAFvNyAiBE35rgX77ljlQmaeXfo1gdPhUdwqAhN/zAaWll10hdPQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDot7CRA9TVsSAnZWagAAjqoP/indTJ+J0JoTPVL5iRHx\nANpe9gKHYdBfB7FPim12EEBBpq0169PC1lZWvL0c0pTqSB0F1GN5vaW59yoC\nVGLMffOfMafX6rwqgz6TQlpvBUpCLjeHqzWmcnjw73g/J2ODcxwMr5b5kjad\nL5YTzkWy8VnE8HZX3fFDd9EVNsYifZmXsuh1ROXx3GHWtS16eMzcfZwDPoGQ\nXfKA72U40cxHlEItx90xTG9ge62vYycEi2SILQjE5BQcm5xUcoKr1YMINelv\nCkyDg+8iEaOcahCcsSFlVutIUU2BdW2er24oHOi94jNWF01sCeDGDjgma8p9\noe8mw50RQQjZ28UoOyi5kmr8lMNsMC30V0ThJBVvgZqZcx61GoYxT/98OuXn\n1LV/rm8B8rLpYPztbywNmeIFzJhq0o1YXkajy1cO3BSl9m3seAqgTGlqv+dC\nsLCcBFi77mWtS/oyeaspT0BZozd0pGVxbCnZz7QMIsMPF0YDfl6b1CHh/1sa\nq52uaeRi5vLB0v1F3CieXRwXFjgQ8tydTq4Qcbd0sYVBAT37Y2R7BGfbITvq\nE/rMiLQTVa+5OteiB3IMme/bfgv6I0inZNMjj6tV3aBTucva6to7BrGmNOIi\nxQuqv5i/stDUoDkCjvN7xZQ6tZ5COQfOMu+McJD74erj1hpOPBe4SuyEaghA\nfnNr\r\n=iOeQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"365d502eaa0ba1f9799998f050d36073e943032e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.24.1-alpha.7_1628343163618_0.6578252594833227","host":"s3://npm-registry-packages"}},"0.25.1-alpha.21":{"name":"@opentelemetry/semantic-conventions","version":"0.25.1-alpha.21","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.25.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b5621270ca5b05b1092d6d39947257488f0ebff2","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.25.1-alpha.21.tgz","fileCount":39,"integrity":"sha512-8PMq80sCMeIk6JnfBjf1bUYbXB3wLyugfOw4RGUO+eDxaHD1JkGfc1QHX6n8OrppxfWwcGcvRMYsJfX4b2bnrA==","signatures":[{"sig":"MEYCIQCSNjuGXsfSg3aEEh+hi1L9/GYttKLDXId0nS9/DdFYJQIhAMpJKONb035DaxLdhg1Ac2yOg+SHDhB70eifHL/GgCEu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHWqYCRA9TVsSAnZWagAASbUP/1eIWgf/L16aIrrXfDgb\nG66bf238Efbyty1SxOybAFyg8g+2eEavF9/LW7GFGexhpb+29SHvTMj2B4Ft\nsz/bP7cNExn5/M02fuksSE0NELEeSXC9xj+EVgi0dhchAKE5hnAesOW2FG65\nPwiUd2fAgC3gDfAVlT5Xv/503k1B9EsZIajBL0F1DYOv6jbUdv30TjYdOhJL\nwII8J6whfw4eJ/tFZxXFw4prTnIjoHWRdlWTdWRMPeGdWRNdCIu0I3RYt73f\n0NG8eANrNYApyV/dOtUMXY3M5oCLFftlpyY9T3nddCuM+iZeIbwLy6vrL+Vs\nVIUx3aEBOqB3Iw+juQgcrh2QmCGUwJWY/7eba58YX65WbQkjC8Bhci8LrjJa\nIT11dgc+ZJu6mCpxnAGp1t62m1SJf99p5FGBi5bYHKEJq407+HeZeUAcuIDy\nZjp0dA3SHcwgSFlEudjgRM/Ko/JyN7L8cTuaKxRKnTQIBAXkAnFJUXf/XyY4\nfdgztH8vkSY8UNwkxZ71BKwovYix8JVtRpVr4bR6D4QQntxmzCgOf7wWXWV+\nNzUMYfaOUvb04aaPcoHgfLJbz/0q41Qv5GcLI2igBdeToylH2eBfxd/4/ocr\nTGcp6jpgQtJT4Z6YD27fe73QHvzKWO7xWlkpCuWSq++M02zX8RKNR5JJGmMe\n/XU1\r\n=KV6L\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.25.1-alpha.21_1629317783816_0.9421911243055225","host":"s3://npm-registry-packages"}},"0.25.0":{"name":"@opentelemetry/semantic-conventions","version":"0.25.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.25.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c100d146957949608c6b9614267ae044cdcb5315","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.25.0.tgz","fileCount":39,"integrity":"sha512-V3N+MDBiv0TUlorbgiSqk6CvcP876CYUk/41Tg6s8OIyvniTwprE6vPvFQayuABiVkGlHOxv1Mlvp0w4qNdnVg==","signatures":[{"sig":"MEUCIEv2SJM8mJwAqAC+lLegYmKAi9izZXZktf8hWVhvzqaKAiEAjRuKcb7GlS6FNNdGQhfX5AoyxBBY6AsayDGBx5pxIRU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263256,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHXi0CRA9TVsSAnZWagAAHLIQAJB9h517aStV4VMNXk1G\nRRAcBXNw++Aoe6Fxw/ATTRvEPH+2zWH1Cz0LI/9p/2qRUehFS74GO8zWe1ub\n7UvRdo1YpE+dCtHDbSHDDgwg8nDUn9Rl0tgknktsxkqb3qp3+FP7r8oTA0bY\n2xULpQRTKT9t+EVvAkZvryjNDsX7gcbUmy5ExqtrhboQe8btE6lTA+EVc6qK\noXTXCLbR+kdC6ejuBoaC6Epn9mN8WA6YHBHeGVRCtS7f6KVWThU7F1EYYx+l\nzJjz6+rkWx5QDDHnCGNonyTzGzih8kru2ri8+kebdBVkH595Uxw5hgcKnJzj\nlYQYDlLrGx4rDaNeYQ2ZQJVfYssVgms6dFmfoMb5vs/hInkQR+nIzpE+W2b2\nCXTLaFxAHiK+34cbBgWpV/JzyCiV4rJNS5uxjdvJi2mFrC3VPteKgIDMW67L\nPAUI5zBg6QUmQSe/cy6i1LmmHSkZYSsyNnrQJHA7OlMWown8GTaTJrQDkt/D\n4PUmlQ3CcrkUlt0hNfDhleT8EgLiWHLx5W4QeL68KXt1jh38hbqhHGXa3M/2\ngYV1dLQAeI4pfS1soYxr4vgK8LBCUITA05tBQpaFh04B0LIoYxcStFty9H8o\nT/9ek4e/k0bqhJ5LJlZWY48QSYIh5kh6EZhjaiGXP/i1Ceqg5MmKjKXsSDK6\nHIk8\r\n=j4SJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.25.0_1629321396734_0.4249537253322564","host":"s3://npm-registry-packages"}},"0.25.1-alpha.4":{"name":"@opentelemetry/semantic-conventions","version":"0.25.1-alpha.4","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.25.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5a7a35986977a42a7bf0f7629417cae29a507c4a","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.25.1-alpha.4.tgz","fileCount":39,"integrity":"sha512-WIZV01jAgn8N+SxdKbAEB7NwI7QERrVGMsHtx9rDjTkI4lJMQHKHvGNy9fsrvKNjw2ZvOn6OBcTtLzzN3icvgQ==","signatures":[{"sig":"MEUCICV8tkuImrjHhSrFWuMF9HYkLa0UCsg4P5mAfY/gkbmEAiEAoehxECdXr+Cq9RuCVKGCEOjalulHxd+JZ4WOA+E/KDw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJUlqCRA9TVsSAnZWagAAkq4P/AsXgVSUbvrqzE8UoZ6j\nqESO31KC+jKue/F953JxsZGrUFH8ODE5B3X1eYnUWqj5ZDU9wnlYZ82s5JLz\n3+g1e/zJRvqOakrSwq3Kz6NIFoDqfyH4jwm+2IuHNHBeyrzz6/WEjcwops/e\nmEBFlc/1j/AK98sQVS/Kkf7zEAJ+cMye0zouMYSADsrH3slYtNo0MyjCHcPS\nhDF7k4WSreLiuFzbDZacueqq/NCmiwlK7I4cYfexKW931krWpYMQ22LHzIuU\nX21bSr4GI90pi1MevJ+4FV+ayAvGY5fyVdhtwb0da+Ltu1Y61N2xCSh+TlTM\nm1k281BQ1VYdOxsnA0zjxQsgdJRlEqfn4siTYKTyHt6Pl/M4jYBPyyebb/ys\n8Gn/MXQ5zTfdHN4RyMLWHXGtnRPh/JjTEWXS9DhEplz7BXZSQdyO7ApAlZjy\nwjoPSd6+ch2nbexOAgm7RAMDP72PQktMRwk6PCvvJIrg3IUY5flqgT4aMITu\nbTPCACLMu2XaeqW6q0XEYYLmO6BN07NyUrCSYeoUs+ooS1DxWiaIXG1QTbH6\nmPXSe42CdxbyUpdKD8Mv76wsBvBEWXh4lBbF+S+GiVY9WL18DjURvj0jgZ1T\nbdHDC0MEYCTFbgZS8xtMMAcglZP3w5J7VqY5fgORFxz8NEfw4MK052VIwO07\nH3uq\r\n=BlNZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"3cbd530f2ee5c06376210402eb87ec9e362853c5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.25.1-alpha.4_1629833578307_0.9182366856666273","host":"s3://npm-registry-packages"}},"0.25.1-alpha.13":{"name":"@opentelemetry/semantic-conventions","version":"0.25.1-alpha.13","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.25.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b7bfba1b8cad3a080cf65f185d959b76a92034e4","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.25.1-alpha.13.tgz","fileCount":39,"integrity":"sha512-z7bhdpr29oM0FK2+Yz7ChAqIH+R2ywkaQkUng6h0STxCxzr7kcjOtcUFUK4g9nw/fTvq8OVtwpmdKnPUQoB6BA==","signatures":[{"sig":"MEYCIQCAfJ+ejvtMQqtmXomfT+bk8a9Xe0Id/2hg2cMP55unSgIhAPYrwg1HURBOaljfjXwSD08h/HCCEwaFg1E26vHQVmxk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLUJoCRA9TVsSAnZWagAATjsP+QCYx7NmnBgJGOZT8dHs\nUSnRZy/LdZDbfkmboDaLl3ILPF20DwLg7bUOXw0OrA1NxYER2ERGZOP+YR1m\nkv+OZZEwCtwLYJq+dq/2aQXnoTnebG8bsdJxmHLvhiN+5Si0YMuImHMleIc1\nRrS32ITLKFpcDYXP22c3ikvAQrx0AyYM0u/A0kY/hbAY9TuRcuuGHj8a6F0/\n+e4i32qvO/fZjzN64lqH+NBquNmLrqrKoTnwlt0I7fAqS8IolMHQ4q9u9/1t\neSGUBCIkocN9o8uI09Jj7DCVp6KF631w0CKyp5SinbG/Z/2WdP2wqNOoPa/V\n3+tsLGVuL7H4SKXi8W1Sv7ByikEhtyeXwN0JBHlKZWk0lt0JtcBk1Z1qF/xN\nWRJspv7V83vHuzG4Oz96Z1ezpu9hTPrMEWFylcwtdUNzIHcXcGPclJoEkZCW\nNo5J/C0pn4TMBvN3D5Jlljmam3kLjuuawUT+5nEGC4uBpibq466dnyRrxeHj\nuRdWhX+w7z0jJDZiJzGZdqhZ34ate2QcIB6Go/fNzVSGTziSZC2A6SJSJ9FM\nL+N19t9R/ocSXojbG/IadeixsKtoK5Df7zuWY49zlgmXcsfBUlSeL2tCt7DB\nrkcwPf3oE7923O0ZmJ736+faOpnBGJE7HnUjteMQ51cUFCkJU836PrBicLjw\nUeVV\r\n=wFxx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"f0caa22ffcb26af2a2f05260f138a494e120a955","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.17.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.25.1-alpha.13_1630356072427_0.07375279716748184","host":"s3://npm-registry-packages"}},"0.26.0":{"name":"@opentelemetry/semantic-conventions","version":"0.26.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@0.26.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"df94120f3a91001a55ed939d2d2a3f8c9148f27b","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.26.0.tgz","fileCount":39,"integrity":"sha512-iO26zEr7GCAG9/yernhSj/LcB4EudVcN8fiI/8B4lVnoqLZQ/qHaOVdyemdeXZ8IkIvoCifoJYPqIARJpqg42w==","signatures":[{"sig":"MEUCIEZzNnePvSJQqhTK/KXzAhJEtZzv6BcONnooMaNrU7ZuAiEA3MkEI2vLI4HwVn6WMweyGKbBd93K5qmVwMY9k5tXzCo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278136},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"fa2e897587a2441205fd085772d80a0a225ee78e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_0.26.0_1633005324817_0.632934116737141","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@opentelemetry/semantic-conventions","version":"1.0.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.0.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2b3aa897adabf8324585a5b9766268f0ceeb9fba","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.0.tgz","fileCount":39,"integrity":"sha512-XCZ6ZSmc8FOspxKUU+Ow9UtJeSSRcS5rFBYGpjzix02U2v+X9ofjOjgNRnpvxlSvkccYIhdTuwcvNskmZ46SeA==","signatures":[{"sig":"MEUCIEE3JbL0WzgObBf8YzADEjDli9gk0m0OvOtyRGs0W0NnAiEAsZwRsotvHXvA19/UyQ4bnwHXwM8XhO7yBecUjApBrP4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278131},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"69b925d142a4405c7c6bec7deadd8b4e96c7d5d6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.0.0_1633035219834_0.44440266010986496","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@opentelemetry/semantic-conventions","version":"1.0.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.0.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9349c3860a53468fa2108b5df09aa843f22dbf94","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz","fileCount":39,"integrity":"sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==","signatures":[{"sig":"MEUCIQDpIdLmlqOcJN/Uv4rNEy7t1KvUUYCx1VQs2jLyusX1WQIgGXm6GJTtneXMmFF8m2j1x/xUx6t6b9U5CuLYRZ1Jtsg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":399543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2UqvCRA9TVsSAnZWagAAjLYP+QDszzC8GJDUgTvtaWpJ\nr+xZCW0IojozhMQBLVJ7p7Z2RVInv+O9rFkImoZO7OS5/A0QXVLciOHLZTr/\n7osvcFQWdKTA8/Yer586/i6RXRsrD/I/VKIJf1TAoPDwss2HNiawxqpGKc9P\n5zb6j3ouMvGckmtUFutmVLrUyJpSL41LriWV0sI/eGbqLZR6egovfKa5Jymb\neu6R0QpkZ2xSp2p4ubpnwvPThFLBLsUUFnPv84vAHsE5klizESKrKZeU1mbs\nMWoSTxqQgvIVp6OMXZnJ4vBVBU4JjclJlKwe4nxepGkIMyZc/UjGYlgFdKcV\n43TJWRbuRCHSTRBH39F6APNzNzgkLU0fHqP4boz6bJa8fvS278AZd954U3LE\ntUyqcL/jOsYVgkfjNErfgdQstsL2XlEbG3WcHyxdsE27hDTuREuGtsfLr/j8\n6p8HBNs5TqBF3dnRtHTxFLFBU8xMQEpGfpCPOy81xEcH5YwHCzmVoQETmtzy\nDhvIRwcIR5cptMWjh8NJvqjiBkl1uVzceaalL/dQ/dcjRp5tQau/QjltMCGw\ndtgDC+z87CBtcM2Hu38DEfJwsshlbV3y9WnOdX4Ezlz3C7iikHWY0mBu66Lw\nMoN4zJhfLLaYUbHYsktgDaaVQwRJPD50OaBgKBN8V/J7N/URV66xv4hp5gIO\n7QaV\r\n=R+MP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"9cf402ee4231ee1446884b5f59958ceafc1b5188","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json","compile":"tsc --build tsconfig.json tsconfig.esm.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"12.0.3","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.3.5","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.0.1_1636642278290_0.718750934722477","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@opentelemetry/semantic-conventions","version":"1.1.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.1.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"43f23a0892affdd4809a1a41396b25be919cc84a","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.1.0.tgz","fileCount":21,"integrity":"sha512-GzmijkVr3T00+VSeKBVK0uoVMSkmxUD6x6GQ3ZTBLDVYc9RCsr40KGdnPWZ5RdKl+/1mfrpthRSrzpfVUikKbA==","signatures":[{"sig":"MEUCICYaOq73N7lGpLqV14Eg4WvqSNZbNW26QIk2+n8/sstkAiEAuDtSQYN2cYitwXAkt2VsrSJXTrn725BKCNfgFf8ZcbA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":208127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiND6SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLLQ/+PFEwWsEw6sNlE6VAvg5JRZ3p04p7qgi+Fi00jFyzKo+N4eRs\r\n8feceuolsdFrzXvZydCS3XROTo3NcD4N98VAxBqxiMCkbl+dmkV9INMHVppH\r\nBCtsqfZN1011lpgrUeQ7ks4uZiCm+DrmkKa3A1Md476KcFGH+UHlA7kjs+Q2\r\n6o3IyjViCTKUXDl9Xr1CzlVVvnncNblO7zhfUhvDsKQAelAn5i4DuzY22w8/\r\nhXM6WMUeoEj13E+dI+Yb4fpCFFBnBL2GCHsHs78Ed/s6PRmyLZBXJ3BMUCxY\r\nPycDOKk1jb/Qbj+O/fUb13q/SKFi/hLoaej/8oExzF7g5snGN1lP+dCx5EyJ\r\nXYIAzfAWySpdz7Sn9Ta/aN26vgynQo+MPX186fdfXfVrakqm7V3StV+yOtul\r\nzRRJSLfScaZBOmGx54ERGK0Vvb58iSHV/FXjXtLmQQkkhWbsYYE+QYta4udW\r\nRwlz7TIGI9cF6rUlTT1AIBYdcWmc/CWTPQ/ioPbQ51WHrF4Xyh4bUWiVZEHq\r\nd2/jcciYYJzwXxzw46Bey4HN54mZaM7+JiC7s52u+5lSfNXkD0amGfrBqsus\r\neIwmBoNJvW5uMLZpZe8E59lwkk9UCztnmjNjfv3dOMgvGP4uk7YXCXY+wkV7\r\nyo2GNGkbV7wKl/qyCnCISlboqyRVvRrAl2c=\r\n=WsYo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"f384303ac469914d0dbafde0758ccdae473f336e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.4.4","@types/node":"14.17.33","@types/mocha":"8.2.3","@types/sinon":"10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.1.0_1647591057845_0.38739990927527024","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@opentelemetry/semantic-conventions","version":"1.1.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.1.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8f09355039cf03ecd7a16b4e309c4a47cb8a8d30","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.1.1.tgz","fileCount":57,"integrity":"sha512-GdTwDHSaZ6iP5LUdvS/SLUjn3067xn1HcBsLZCh8YOsf22d/YWTBcnFl3buieBP4KiajwHLho4I8HSMDKACBSg==","signatures":[{"sig":"MEUCIGfIFyj8UygFDaAh+OCYIuMP3YpAtWge+qu1Mk31lKSsAiEAgGLgk7LPGjguK/i/Xa/N9FEQX+RtpKUySEnyqRW6Hvg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOij7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqvJg//UbOZDWdsvOKwsSDNLTQPJauS/ktQtJxvdbXuyNT8iL9QlgTk\r\ngp0xOMHvp//UgLYtJ3oHgE6HGW3ObdJAeZ9szSTBb4i0mJwyw7iX3KVx1R/s\r\nN9tykAOCMv3+6a1urOAw6DyDAvlBXtIXvVhGdeGQnktnJqpSahtU0lR84KXN\r\nxD8Y7X+hbPn5NwzJqVJX+yEse7Is0rpXBKo8t6mNXxPhfcyZ1dVU6RYgQP71\r\n3b8nIcvQdJa4aYwfCrWPKm0Ho/OflMKkdbrRNiAEwzZIXS7DTkysin9G8PUk\r\nBNHfCMj2AG3Q9JyeXkmzWNdXigqJAB5abRp0IewuNKX1I+DHYyvKfG4LhMOA\r\nyAb2B1IXa7+RyHNzzTrLmODke3VK/akscAh20qM33iz6fWn0GW8iygDgiDDg\r\n2pY1w6tW8ZjvBY+7a2SZ/FfAeE2Ce/Ur4dqaV39vlzkL3fsrI8b8HvRBH7Hx\r\non+AKyIfv4xpHDQhEv5ks7rvO+bsLFqG/dQV7ZrgAjgUoUpWH0CfztguYbZ5\r\nHOww51tdRg9ZPvXT5JYUF2YmbNguZ60gEE4SDF2hKoUB0G5J4TSUoKlHxODf\r\nGwYtMw37lwcRk5HglzmWFxkAg4NVWTxOzNr5DtMbLuEg6HNvTdEzxkhf0yAQ\r\nlzi6UZaZ9okjh1J+4AL8ihhNxhrp/2pgz2c=\r\n=EEL3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=8.0.0"},"gitHead":"b0f8a2d36e6d1d3090c3d2380608d2102c826e0b","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.4.4","@types/node":"14.17.33","@types/mocha":"8.2.3","@types/sinon":"10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.1.1_1647978747425_0.08822007206401539","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@opentelemetry/semantic-conventions","version":"1.2.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.2.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1549c1d88dc45d720b8487e39077eacc69636c73","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.2.0.tgz","fileCount":57,"integrity":"sha512-BNKB9fiYVghALJzCuWO3eNYfdTExPVK4ykrtmfNfy0A6UWYhOYjGMXifUmkunDJNL8ju9tBobo8jF0WR9zGy1Q==","signatures":[{"sig":"MEUCIHEbBBwFyHq/89vMYu+572fG5m12OnFinPjoieek2kn9AiEAgYS61QOAOCzc1BXmFBsPTGxH/8cuUMBvlOwohwTZEMQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYsI7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiCxAApNr4ePbHFopMUGcT4StKJo/Mg3PyK5pwctyWBE9hC8fbm897\r\nDPYOKZijeHaOvsaimqRe3Ub1gjpLEJMIJbdk1LESKErmyTSzY9D/EdwSFFVm\r\nvcBZ+4DD3lOvg11cBzRKH5spaIGBn0rYmwJCoQzSmc/xRo1JFNwJVzUNQPGj\r\nmg+GB/BznDHdllK8AdpvUr9zobaKaXcBweIOddxqMSGUiE54RuNhIVS8s4//\r\nDxkXFj/SA2pl0artOcWGkl2fTveLkt7MhlqMC4QnSVXd9C30idgvwj4BxIEZ\r\nuYCpA1OeNg2JJ7zlYiq/mBNwdEyWMqjnj1rnLhTomlBL4lzqdfsUj/6nbMNy\r\nvPAK2Y6qFEG+RhWIhf5dDFhVloGsa+JOAGh7qyms8EHy05OE2DZrw85D5bmV\r\nII8sMPfJ7g6dASldFDOaA270rhssP4qoyPEcBJUD1lDLbt7Zx3rJRN6AaEvI\r\n9A+ncryOaB3Pzz3XauVbzL7zGVKPHWs2WnV63YTiK2CmRckTLT7jK5QqGxnZ\r\nHKrF7EbvdqrUPSPVIgTbLpmUeFimIqu0BIPJuoXMHj2o6638moJeJYy0k+3A\r\n5Xti3GmeLU0dC6cWDp0dxe/+KsuxQJ147WNpDRxvpK4KGLsAfioJPbj3GdqO\r\nx34SIQVdgT5t2K8NO6Nbg0RyMCzd9PmtkGc=\r\n=FqpL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=8.12.0"},"gitHead":"a0a670a03fd35b0799bee8cc466f79e93b5b6dd2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","typescript":"4.4.4","@types/node":"14.17.33","@types/mocha":"8.2.3","@types/sinon":"10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.2.0_1650639419497_0.41019781162448843","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@opentelemetry/semantic-conventions","version":"1.3.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.3.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0d740709fd65845c9cab215d5581e9fa80c59520","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.0.tgz","fileCount":57,"integrity":"sha512-7lmGpLL/7EHQcLVBxxOesgQQS7JSxzF/Xqx7VNMxAQbo14dzJEX6Ks0hb4LHqEMpCrKpErWXi4JxYCGrRJgx9A==","signatures":[{"sig":"MEUCIBo18Lo14ocO2DMSAReRp4bUYS6z5yInd3+Wgruj10ekAiEAgbHkfLooeAhGQzjZBGwoZ4uKromy+loFYKEV1VhBQLU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikSlZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2PQ//e5tYBKgstsyU/0JWYYFmESj5rE3yW+1B72eZu65L2v48PKXb\r\nKweFmkZzyzqzUGJqCZzzjr+36GZaqtSwZ/ulzXVAqwxo28noVQerJqrmHor8\r\nZftpyrfN+84wKEJbFK96ZaSTv0h1lmrjniVGY6aAXjQe1cfT0wvTkFn16FAJ\r\nye1mtZ+LH0cShbHaQsHhvQwyc4TCnkPKTsMAvWcn6SDBL/fdnAhpO0ZsE3LJ\r\nL6QkRjxsnCauLK0iaULbgvlFToPU9BM/Wsb3pwDlKxa6q69fggRaMuT5Gxi1\r\nc3YLmdDIPUGsKJjqG4XHiyiLXmDYfjMfDhbfaQYWYzweXNlJOKjd5QwMpGcb\r\nMV2clA0Xs7ZbN9sarGTy/M3KuUQ+A+XO52mAHyyOw0EoHe6sJSBc2KUM84yI\r\n2e7WF2XD43nvCMv7R86Ao+wFBd25EQkz/anrpl6GlOxMta3NV1s76vfTXZgS\r\nu5qPWZcWRPhMXUqFbOqF4Py8HWxr7EIlhHF5VhLLp+dcjS06iCdQ3L3BL5N6\r\noLTEWVB6bF6hH1NOUi6SxdN0x8BQZ1XBzVEzJ6rGE5k0TzkY1zBcWtO87sYk\r\nflGoci6KnSIS/6Al3lhsD2Ie4JyjHnkqpNKOjdfkdeo137qkfjVcY4amxF5s\r\nKbOWe/TfuEG8KrZ+P87CW8yHSHPk6GCBP4g=\r\n=s0go\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=8.12.0"},"gitHead":"eda0b092db484855ded8b4837ba7fc19a377c5a7","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"9.0.2","typescript":"4.4.4","@types/node":"14.17.33","@types/mocha":"8.2.3","@types/sinon":"10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.3.0_1653680473637_0.85702507392978","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"@opentelemetry/semantic-conventions","version":"1.3.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.3.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ba07b864a3c955f061aa30ea3ef7f4ae4449794a","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.1.tgz","fileCount":57,"integrity":"sha512-wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA==","signatures":[{"sig":"MEUCIQC1X+9BOJ95MIukizS0O8+oV2D8cZNScNK6vwdDGxIKNwIgEc1YUvzp3kRgSTsJeCs4nsIl0+rpMgWOua2kTCb5yEM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinmLdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMkw//QW9yYPwZF4lrsaddD0PnxJFWaWmC8/Oveg4QGwjW+Z2aI2yg\r\nsQApK/L3SNess7JkOmTCya8m2c1hEZPZVwEJSvJu4QWQOGbfz8eSpagrlnlm\r\nguigz/YGUZcxEZWYX09o1E2YLVFKdj6Jan0NDsB5XF5UbJRD/Z2dcosVVP1g\r\nObiNTckxCHQBo0KmV3VmJsYnciQzfE/T+zABTCkBUCuqlLTppN8QfoBPEAGW\r\nbTMYL3k91o69sQPgrgy6ZPSJIZSV+hMt3VkhbWnxSH9VKoFTmkIIr+zJOPmi\r\ng+IECySK49vEPX24OHwWjOABc8QuiSfJ8R5hEjph7dCywiSDVh1TOn80diJR\r\ntPfbJH5GsTNryfzWDFOIgE0QPLQV0ATcAeeErt9fwbBICYAy5WNydevugY3t\r\nmYj57YUv/svK1Bz7A+8+HFwTiUF6LNU8t+sTZ0JApZ2ie49uACvs6sJHsjEf\r\nJX340FRtPUQKjtYoZoema39Imw8SO330AUXMrpBLMx799QUw/LFeafkCHDpk\r\n4LinOv15aCKFij62oCmj626x/Sit++OGx/6Wh1CJ8zro7zfmb9Q5egD2bXCj\r\nWxq0WA/tPx/YdN9pXfz8qy9WAdj3gxxINqz7Yn7X3bWQTXiqaQAf62QufTK0\r\nirm1f5uTgrn9aLPdQjfrRBlvjnD35uhNIVM=\r\n=EN7q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=8.12.0"},"gitHead":"51afd54bd63e46d5d530266761144c7be2f6b3a7","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"9.0.2","typescript":"4.4.4","@types/node":"14.17.33","@types/mocha":"8.2.3","@types/sinon":"10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.3.1_1654547165611_0.9025819317593919","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@opentelemetry/semantic-conventions","version":"1.4.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.4.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"facf2c67d6063b9918d5a5e3fdf25f3a30d547b6","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.4.0.tgz","fileCount":57,"integrity":"sha512-Hzl8soGpmyzja9w3kiFFcYJ7n5HNETpplY6cb67KR4QPlxp4FTTresO06qXHgHDhyIInmbLJXuwARjjpsKYGuQ==","signatures":[{"sig":"MEQCIEHKgNa3L4qJAo3KAN3DGNjhfoj/aVI/uKodpaco4dd2AiBK1xG32tZU1jRLDPcSudOpIhNdhPITTWeXpeuSFzAj/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixe1kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5LBAApGaSxyOV2mE1MSgBaDSHyoVgf7XxMsI4naNKSPJWEOf7eX7X\r\nirbCuGrZiila67yIcpazFWUBTmmmZZuPWW7rrChpDQWB6sLvXMlVhgxnoSTX\r\nh+qrrU8XF/j7cIFbJtqsSpivTUmI4N/eF6J4ONxtRveoIbbao/5IMsUHlu0n\r\nXZIIPG+b7ouB2dIBx74TqNP0YqERnj6NONtgpYxD7yBaWbPv5b1DqIhOMKuJ\r\n2LrSi6aYgWakGUlD+jpf0cjIcLREUdTR1wom2zfr+ZL8A6EpZIwamxRBCtyF\r\nK5JDvgri/w+5XFLMxB0K6PZLETs2vVlU91zAnvLbuQqmnOXKA5JvW9Kgv21X\r\nPXQFeE1SYd6/w7Q3xQzcMqAsWJT9lLTsRSci2vJ1OiOJ3kVWcHO9DlOoSk8B\r\nTqu058qxnO+Rt7rwNylRKIugIYFJbdzgdKwo2+hTOFshq0+8sWMQqY1mP8Ho\r\ny6GtzD7+902tBbuTdIymcY1clHcrP9n9Cc350HbalvDrCD4QjOQAltyPBKan\r\nT09a9rhHn7iHsFvh2HzpwiJJKDt7jluFc6lXSL+criM5Pi6Ajl6J85Dluyqf\r\namJk1cEsP38mK74YT3dY6WMZly1FbKmzhwsHVjMWDHIbTtjyViNqo4DfCxcF\r\nNWBT29B6vb3HraLnunGjw8D4z2r1cJYrt4A=\r\n=dwhs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"e39ab883b18636238ef0fd741df4ce5ed53e8d04","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"9.0.2","typescript":"4.4.4","@types/node":"14.17.33","@types/mocha":"8.2.3","@types/sinon":"10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.4.0_1657138532773_0.9541252335511041","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@opentelemetry/semantic-conventions","version":"1.5.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.5.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cea9792bfcf556c87ded17c6ac729348697bb632","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.5.0.tgz","fileCount":57,"integrity":"sha512-wlYG/U6ddW1ilXslnDLLQYJ8nd97W8JJTTfwkGhubx6dzW6SUkd+N4/MzTjjyZlrHQunxHtkHFvVpUKiROvFDw==","signatures":[{"sig":"MEYCIQDzttY3YetkHgB05+OwvO+fBB59Eq7EhczVkfGrCDXfugIhAN061k8N4u9sRU/hT5MOg8wVfLjmF++/1kxJ0K/vKJwi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4FP2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpg6w//UTMj8DBAPCMG2pFlOo1Kcy+ADy6LlwioLyKD75qaDKmTNNdw\r\n3Yn2PhePUqbOw6rxjVeIIC87AWHlFmEzcJm0Hj+OA8LmUKIHodBiS817JgXr\r\nezxNQquhkF7reIg52foL1s3qMe0sOpY/C/TcTxuqpbaUMdhjbCmiAscgRdfI\r\nglRpJZxPgyyrblbshvD27h/XtdUawZEmXwr7wp4ApGUfD37quGpZ0v29wno/\r\nrrO2a1sPAyjkqYDwehiGXAj0f4dbigfc5Azw0TlDrER41VH5LDUluf4mq5Sd\r\nBvphClYTVhLqCaPgOTekkz3uJEVUi+Q4rSYxcqlh2eIayZKuPtwWHXJk7c1F\r\na4PHnR9OoCrDSIv9BFxY4JgrCUOOyLp0Hw8AN7m2RaYQs1hZQs+Xi4z9qXMQ\r\nQLKIxCumCJEu4SO/y20UA6f2JJUg1erWPsAuhJtBNFRCzl+oWujKnYQz/eTo\r\nVZ8qaHGrEhP/70g7U/8mzwt1qDe6dnJhUuatix4i/Py5YsdY+zYU+BTBjKDH\r\nYVzxVeLZC00k6sfLkmGGlBoXQs8YTqLeqep/n2CMj+SQr6qjzFKEgjjVTJMD\r\niben6G938LWPSOlrdK1oYF17L9Pr1BvNaAN3UA5awt64KI4GYv9Db02uuTI9\r\nl8L0d4QMiZ+ginevN1tjGNN2sqSerRaMpzE=\r\n=5gAh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"776656b6e0cd0fc49a52b734702bc77110e483f1","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"7.2.0","sinon":"12.0.1","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"9.0.2","typescript":"4.4.4","@types/node":"14.17.33","@types/mocha":"8.2.3","@types/sinon":"10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.5.0_1658868725880_0.954744829950793","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@opentelemetry/semantic-conventions","version":"1.6.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.6.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ed410c9eb0070491cff9fe914246ce41f88d6f74","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.6.0.tgz","fileCount":57,"integrity":"sha512-aPfcBeLErM/PPiAuAbNFLN5sNbZLc3KZlar27uohllN8Zs6jJbHyJU1y7cMA6W/zuq+thkaG8mujiS+3iD/FWQ==","signatures":[{"sig":"MEUCIQDGTKvws33g2xGZPLBiiEo6KIsUNxHGab5gjS+xstfy2AIgZXDOqCjuveWh4aCnCpS7Qz9UjMZYLrWNTqlVrjO0Lac=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBmN+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7axAAmxqhuxCT5aT/A2OOQD7k+3durUuzQLfWZKiSlE4x9vjoxN7a\r\nQ5j3UkQSw7lpxfOyLBSDMqo1vRTa+bSvOagyksfldQKc8iyBeq8oXOzvvJpe\r\nAi3K4PPsBaHaB6wDz/EnmEmQ/bvqWWlAR20oYSgd82x962iuR4PCCsTHYJL+\r\nKhP8DcZkp76DqBvizBuTUr31Yd2AEBdN5dq68s27Ba7OM33Tti8VacMAzu1N\r\nSa0rfL+HXM2Cx7M83hVG/JhN7eL1VFX72D3MYia2vmDapRKf+dsc8KmZ79Pc\r\nhylAU6Kr5FwAXDSuB5aDIHL3lEUYEQnMNKTHDAZ0p1qZO5vm3gXdpsJfH6Fo\r\n8W2k/lSlpZgx0mbmSBqmD3fJcoLvQrJGZlzDpXvJtQYKXeFPPEUQifcPszer\r\najJHuh8f+LHaFIru2WknjU2apMONC3Sn3CG8sNzSIeDDpAS4VDv+yEi9V+4m\r\nCG59rl2ajo0y9YrMSX15ja89mrlEttSHPJGdZyx6ss0lVDQHR4VGD80Qkd7k\r\nBzoDHSE6vjZE6cqP7XlxQZv40mgLMJsWCKAmTzuVnwkk6k3aiuhjBgn6UwI5\r\niqJPPEf0nvWqXmkw1lYyR4AMGHWjrri6Rtv15lqQRBclzwbo6xNkQ4yKZOO6\r\n2tbquwvKlt2wz8+XruisTXr82qRNoXh4crc=\r\n=jrdx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"a5abee69119cc41d9d34f6beb5c1826eef1ac0dd","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"9.1.1","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.6.0_1661363070136_0.8745857523875822","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@opentelemetry/semantic-conventions","version":"1.7.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.7.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"af80a1ef7cf110ea3a68242acd95648991bcd763","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.7.0.tgz","fileCount":57,"integrity":"sha512-FGBx/Qd09lMaqQcogCHyYrFEpTx4cAjeS+48lMIR12z7LdH+zofGDVQSubN59nL6IpubfKqTeIDu9rNO28iHVA==","signatures":[{"sig":"MEUCIA44HKIkAon7GsXk12H7mHspUzjiZZJSAUL7k7Kl/SXnAiEAs7ayPcExvUqx+PVbKKsN0wQ5A8WvMCYwp/lPuOcKV3M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJGi+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDFA//QtPObWYyw8FB8kiul51fIQpkiCGJ9FM+IEF1q6vk5J+ja7Wk\r\n8mfjMYOr36EBI+BC+5yNaYM0kKwvn/0441ZSPIPjTWCYYV+VBwMNp4jKui6k\r\nv4hlyu9gkQdbF3T3WrW95ZX3dYn/4LzkDsMEhMRpS/3NTOAASIkrOEhEXiqF\r\nB8T6YSE2OCxkDMIzPqXKbl60mkU3pPR4wOB8YPbPqokUeZ21EidaCweFbvcM\r\nUvLd/RwmFPtOt6gtkAmBPX1BWw2cfByUFNzgrrHri8bI5UelpO+kcErXi4Bg\r\nFcAihcA1ysSkvveBMgB2yxvUI6+4PBxigyxBHpdl5LT0+aVy+oRsz3OxcZdT\r\nqKw9GeAXrNIsUCPQGSqE/OPpjjLeq4lGrZoV8O0Xog1NZgdA36TssE5M01XD\r\ncNS94pui9OnVMmTjZ7goQZCO/i+hafN1Uc6qZCCBG//1SmkB4en2XT2u9nIB\r\nsrcIz0IcsTxQt7pBCyyddzXEkcQDzorlpF9G6TVY8ltTXokNTHnjkpR3JkaE\r\n99AO6XEcg7bsBri3pZ34x6oMDReXKeXqFAkdQLIKqQjzNiI0V2kkTOLFZHvZ\r\nJm4RYABW1bSmYSCByOICc0Mwh4hwvXnikq+nsxi4DA9BZYNkD/2ZQ1rcchW2\r\n240ojIOCPGreWfoIm1boXCbPFiefA08rolY=\r\n=zzML\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"ad88c3d9aa0100fe259b93f4b660e84417b757ac","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"9.1.1","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.7.0_1663330493875_0.2079332807892087","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@opentelemetry/semantic-conventions","version":"1.8.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.8.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fe2aa90e6df050a11cd57f5c0f47b0641fd2cad3","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz","fileCount":57,"integrity":"sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==","signatures":[{"sig":"MEUCIQDYuQD3kmG8fUOHCXMwCKSmQLtxh/bbqtlJhGNae8D9ZwIgWVWrxVsahlqRCOgmBWU9d8IWadZBK1H1XMe3Rr3Dk38=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbANYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoneA//Y4LiXLT6lPchgZDC/+4RWAnN04DTHaVOHKy/tM7/Zsd431F6\r\neJTEL35Nng62PI4xkP0IEVYvWadDBA6yG4wEtPBBeTD7OLrjib76+GnZ1uBS\r\nW3awsZUAZl/TGUYZZ8o2OpO+G6D4cZW/r5jvjPsSyogvYFq00pSARerg7OF1\r\nGQM5doHN98ZBE4KTTpwHeai+zDW/AKvHshPM43Tre8OgpRhCrMTDmcNSO+vW\r\nZ9XuPxK1YIicYv3VlBvVJAK8ff+GBAEuZVWU2GD58/VfTZtH0+j63QDYNOPf\r\nkI6GkURawL5GKAEnrI/K+kISNkp7JnnRtV7vAP57aU0+x9ja53XyH0CAHApZ\r\n3GeTCqRzSxVZRu7/aQYmia0jLbT1ju/jpJAFZBmPoxowOqVQrVrYz1B+HOKv\r\nWeyLonTAyr+0VpXYfhzBOVOwgTWTsRq8R1WbedFE0Ml37WEeT8XfYKiV/Wmc\r\nDIlyQot7j/7jLZmlV71zMtmD4Dr/nOZz+o/6NIlwgZd8YQIgpHnap66HL9Mn\r\nNlaGNe0FTCmpoPZKdZ2jP8Fj8HQBcQTmCPmH5gI35qgMLFCiysVKtJjjCXRX\r\nn1v/k5SoT4OGMHuui2pIxMmnTM0PSNq7oVAdCxCThhlJEl0P9Tvx/sN3YWH2\r\nVNg7eMV5x1rSms2vPdMwGd7i05P38J3J59g=\r\n=KAXN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"7972edf6659fb6e0d5928a5cf7a35f26683e168f","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.all.json","watch":"tsc --build --watch tsconfig.all.json","compile":"tsc --build tsconfig.all.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/5.4.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"14.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.8.0_1668023127838_0.08639594877714041","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@opentelemetry/semantic-conventions","version":"1.9.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.9.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"461a6061bc14922bb6ef268f883ac1afacc17e04","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.9.0.tgz","fileCount":57,"integrity":"sha512-po7penSfQ/Z8352lRVDpaBrd9znwA5mHGqXR7nDEiVnxkDFkBIhVf/tKeAJDIq/erFpcRowKFeCsr5eqqcSyFQ==","signatures":[{"sig":"MEQCIAHKpgFXFTKLXztoQsrW/ZDv/aH5srvkOLueAOPTTkAJAiB8yKVAHoOztBtQ+N9ORm6cbnCDUrKtRYadk0KMeeqgKg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvy4iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpynA/8C2URQYe2kl++SNFqjWXYt0MQILSeNbLifkgIr2+gx51sdiDV\r\nHs/3hYaEn8/XsZFNmi6VnWjmy+C4G7smAVTEwFDOaCM+WKjqExPRUEcTgBHl\r\nWnDSgoeLx3uBwVzvQr8jBFXsn6nCtdnwXf4OfHDCIiG2MHLSaCbiHFwQdVdq\r\n74Fdhzaf21u2aDLYQbng2WDwxaVF/KQRAW8btuyqKQmXUVdvKrBi8R64xNIx\r\nVyy+MspT7OUcsJKcFts0nH3kuDwKhEbc/zlhAyBhtAacouNBC2Oygn6pmUoy\r\nAxN5yvt4s/8bhIEU0P11Q3rHZUj+MzRiWVqs1uKNTT93SYHqxRdG7BxI3VOl\r\nttCRkJVhiLeWwLzjzVmUQzU7dwrg++/j3IEuAxVyPjJ8ITYK6XYPSSetrbm9\r\nWU1IlIavEyz5J/e5yXiENDH6mMZE4a3PYbzq6ZtPvVcMC9yzYOmfikQREJcL\r\nsLbzVtrVQRsIQR0q0XL0+J42yEnIjaE0wjY1NbnosVu7uI6z5lGvHqck/RW1\r\nAc7/A0pKPUO6g5WfPf3fTYgK9nZQLHt4BEWcyfruJED5A2zouYpD46eIReOu\r\nCZwE+0cq+4LW/4oynPewn1amQyn/Vq9EIWOaFjFQDwupQNtdLvPgtkb93MF/\r\nYRTwTIfnOLDVn5YHck4nngMtEGfu7XDNaAU=\r\n=nRLy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"08f597f3a3d71a4852b0afbba120af15ca038121","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"15.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.9.0_1673473570204_0.31266048799532054","host":"s3://npm-registry-packages"}},"1.9.1":{"name":"@opentelemetry/semantic-conventions","version":"1.9.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.9.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ad3367684a57879392513479e0a436cb2ac46dad","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.9.1.tgz","fileCount":57,"integrity":"sha512-oPQdbFDmZvjXk5ZDoBGXG8B4tSB/qW5vQunJWQMFUBp7Xe8O1ByPANueJ+Jzg58esEBegyyxZ7LRmfJr7kFcFg==","signatures":[{"sig":"MEYCIQCFwnqFGNixxZh+lT1zf4lZB/fmgEWvXYy70MjuO7+lAAIhAL08m6X4ssZUpWJTSs6HNuF1A5DOS0PZ+tuuSR+NYZkc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1+J7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmruzA//RaBlYe9JUGjERkeSjuoSG8YgHDGEyl4g7glNvFBDjvWEh2FL\r\n6FMOi16Kwp3HRzqphfE77McEPQKDir7xlBKQp1D4QGFdGAc5tQ3Oxc8V8hRX\r\n12vBhIwQpLjrCCCThVPbRD2cs3Br4/UwB+LQZvtb+6ddYFcHtGfV17u3+2Ju\r\nMF6zvQ2ZXaPlr2xOWYUNh03Q1HG/AOEp1hu9i2IuISkS65cGGMc4/5sugqZJ\r\nph28PuA4wPs0eA0SPodELsHQz41zVsmNOaDOJ0G45lkioLZrz3Y/udHnAL7N\r\ny53nkNiKAdESK+Fs7Y58rUtPUsmIyVHLibhTq7sEXzQMTyjcaS0Zg1lfFYfX\r\nsaSxxdDmooBz4AxlbB5hl6zYXfLypz1zFTVTOSAbIpJkHXex14iJruRZg2dG\r\nMCRFo+y9IxRNI/waPmqno+xppy48VMhJclBM2tskhsuB8zYhJYBkq9qrhDKD\r\nxYkSRZcg1SRfqVqQXivLRgrhvMM5BYZrx0TDBwVh0a969rZ+ok8EkXBqaxpr\r\n7AJ5BuCLSSH+2H0q8JapwNTcKa0r5LMGd65DkKHm/y7Gu2dwxiHo7Wvlla/4\r\nqQHVOqOF26q5aSXqwFvgDji8tsN9WZH91aI58hmJbYWzITfADFn+e9OgVS9M\r\nAUAvgYbtTeLcH5iY9/naDzZEofvPOQpWtrI=\r\n=a0S8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"279458e7ddf16f7ddca5fe60c78672e05fafce66","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.9.1_1675092603206_0.694926289979769","host":"s3://npm-registry-packages"}},"1.10.0":{"name":"@opentelemetry/semantic-conventions","version":"1.10.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.10.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2addef53b595c687c133922ecad0e850b9287fc9","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.10.0.tgz","fileCount":57,"integrity":"sha512-Mzo5IyrI59YuYWeNoOZRXfUCc3upjmxCmczSm+pUgWprvSNfdOX70SVde84UxmuzU7MF1MEkPXKXTYG3ymRw2w==","signatures":[{"sig":"MEUCIQD8nTmRqBkx1GIYZ1g9ErR5tqReizhiwDDo7M8NCzjRxQIgfv1mEiJYnHiUCvXktWHtGv2bUyJ3GyKw+ljCKHH88/M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkD0b0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGJQ//WzfrJf7FaNt8Mb/zBXkXHhHI7csGvNO8TIFpgR22U8subLBb\r\nRJ8wYpboIHHP7v73uahnDKiotIvnLiXFcB7exHKxbeCQFGXgTyEX9vJCQkrJ\r\n6bkpkYX5IaS0U/39sTzTYQd9dyAV/UO6asdG0q43d/a699Sh/18KVbP4HApw\r\nCAIAKLleFW+d/ccdcQ2KRSz0Adnxl9d/9fJ1t/mvdzjm1ewieZvUHbq3SPuW\r\nFHKGjDMY/ukq2OPM5WUde7xpMjW4qpoESGsdGjwoEJBeBbEBmggm4HfZ36UU\r\nTfMfsFyVjTuUodhBPJ555bjeXZ/380r6S+c7qltgHO3Hupdgj7ghRDvRxmMI\r\npHLOux5VUXqljovWcneYGJwQHW7ZveE1BsujbZHZ2G1P/Qn/p7J4eaJvIsdO\r\nX9XoeEaZ6juu5sD3n3mJhOUFxyGtvec3og16N4rFRQdXkWb8HhX8nf8lTO97\r\nrA7pmbLXUIkFrjcjE1lDnyN3kBtfSoQU8SNKZcn9PYq4XnKExENFr+5L3T+a\r\nTcsn4mCwAAq/tuCo29RgIPa/i7nX5FRJYkFts7UE1vV8f/bilidzSuLgN3dE\r\nk+4UyndmLgqQDDd+4S5obxzvEPJAnqmye6BVhe6ec6xh9wUE+sxnPJVbL6bo\r\nl03/GBmsGmh/wJ/VpX4Hz/bRejb3I1yh6H4=\r\n=UVna\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"56e6b1bb890f844b8963a146780d0b9cfa8abd0d","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.10.0_1678722804197_0.717334361825287","host":"s3://npm-registry-packages"}},"1.10.1":{"name":"@opentelemetry/semantic-conventions","version":"1.10.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.10.1","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b7a0f16d4131aee598e55814efea0ff11d99ef34","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.10.1.tgz","fileCount":57,"integrity":"sha512-qiAueuCoN+1YEuHNXnsct9bkbroZBPd7QwQgd56YURG0LBRVHwE/lF6FOprfUvp1n1tu0O6+E3s6x+dmUndXFQ==","signatures":[{"sig":"MEQCIEf57PzvW0MU8bJc1oIEpIGKGRoOvxikDInhlg8yhUqAAiAmDF5uh7yTv0wJ0PfZlJjRSYZJqf2b4A0+zrQwi0EtHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGIV1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3oQ//VNHmHIJzA26p9dARRBhg6Bm3xfJVVjS2fSxYAiMqGQ+t1ox5\r\nbJBhgd33RzK7QfkLow7LgIsldST6UETCfpl3dEgddHxl1DCUpJWJIEpf8nL7\r\nCAaEwIn4RJvblIX3o3SwgZj5aEp+zN1VtBkmLRP2c46XAgboGYDZPBOIVFq1\r\nytA0AlaZbzd2DaHGPdzmOqJcuG2FAyi0FVd+AHiInRPj5qJ02ZOx8g9vj9v7\r\n313SQrU4NiOcgKIm9HUV6nLc5HaAnJsbQtAagBfxAad/o0TpHqKJZkbFJTVH\r\npFtB6WOPYrqJgaGbqTsa9RluUv6NmX4rpI9v0PTqLXm1THb+SYWL3CRYp0RF\r\nmkfONrsEg6mjP3KA52cBKPo3qUjK1dfIJpIQsTBNfuWYinELOc6kf4E5dBhX\r\ntSh7cgTOM7EEq/WOWQdIOgK+hyrWCFby+oQjcHEr/Ol6Az1Sd4XjvljNt4Ak\r\nl9Bs5/jeph/wsGpjicn8AHxEeh17dvhmqQ7USLxtimo3z5gFzxIwN9BlivJC\r\nvzHVY0QWwnWePKr2GYkpvo5yklix1W4tts0eFDDcrSsWMKZO/RNZwYfSopdT\r\njynPht8Jn3SZYtOYpFT4St0MTQNd4qtXCXrnAyEe9F0VJqcs/V4Gmkn5RZLS\r\nbur+dWlvx0kimtlE+nxc1Dpu0OB5ROnvlto=\r\n=jKmJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"486df99906958de9b8b666839785b00160a6a229","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.10.1_1679328629483_0.18880410539910875","host":"s3://npm-registry-packages"}},"1.11.0":{"name":"@opentelemetry/semantic-conventions","version":"1.11.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.11.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b7ed9a601acb6e0aef67564b37e4f9abad449170","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.11.0.tgz","fileCount":57,"integrity":"sha512-fG4D0AktoHyHwGhFGv+PzKrZjxbKJfckJauTJdq2A+ej5cTazmNYjJVAODXXkYyrsI10muMl+B1iO2q1R6Lp+w==","signatures":[{"sig":"MEUCIQCMR5+oZCUuTCr3a4R1a0A+PWx6KDHJ8NJ/17K9XocnjgIgMJA9iNe4rJF0pbc9RVniHfSipgk/C6gHQKCu1Z/W65U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJasrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqDLw//fD7RM1roP11Vk9vF4oNvYqp3zZPg9wnQUS17SFJ5831/xOr3\r\nGupySmf3R9sulU72i9aSKcQ2UWRM0nGSVzVfzvtxlmAg7pbZIfvL/Do0sqNc\r\nAaSDNwrEeqMBhec82VHFBwr5DM6ub6Cd6FQQTv50uIc1NRRsgw07riJ4COjn\r\nogIWThaJBNkRcUUh81PBQIzlZ1WjACut3Z81ThdKsS2VGBlkhBFNgGNOyEVp\r\ng/wg2uUiIfWPRNxh2kt1JZakHDnBTbvGy3RD032jo3pUbxA8TjMvU4fezsKm\r\njX6/Tm1fYU7+fFcHwC3U0ko/997WGqwIlcB9g2yVG7h7FgUt5Jj1bJUI8Nui\r\n8EUBgQgeM56Qoa7cS6/20ZuoFP8PegdRbuPF1lq6TXZGK+DVyKnEuFX3IlEa\r\nHmJZTEtBZQ5qhC0yc6/4Bd2fAOVN5Lnl7TEnNkaLhDlzk58WGRrDr7zki7P+\r\ntwSPlPENTJLL2Eugo+k3UFZttbdHO0yry8tgEaqQE+JqQ08E29UUlf1xborW\r\nQ3x2MXVOzqkXouszjsGvI/X9HIoXgpny/FWxfG1NZ8XnStF7OOOOmiGavbpx\r\nOw7uManTUluUbQbn3ltd9Hq2ESOME2BJuua0MYaXEkLhyBYvhX6sbgzdSTHG\r\nhctk2Yes40Adeg93Yo5p6WPC+DRJofNA+4w=\r\n=Tj+h\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"1328ee04ae78f9f6cf143af7050c00aaa6d2eb3b","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.11.0_1680190250751_0.8705637185785111","host":"s3://npm-registry-packages"}},"1.12.0":{"name":"@opentelemetry/semantic-conventions","version":"1.12.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.12.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"19c959bdb900986e74939d4227e757aa16936b91","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.12.0.tgz","fileCount":57,"integrity":"sha512-hO+bdeGOlJwqowUBoZF5LyP3ORUFOP1G0GRv8N45W/cztXbT2ZEXaAzfokRS9Xc9FWmYrDj32mF6SzH6wuoIyA==","signatures":[{"sig":"MEUCIQDhsBbJfrZQ59cXGW3zGoubfy4m6jJamQcV6y0VEA2UrgIgL2b7zM4uv0a4+VOBLgDFjbRpAATkVilc5jqgTfT0dNU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOEYWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmppMw/8DX8NOGOLk5F3/QLk4Lsw/DjXs61lUjDPnUaiU/ZGUKblHPPC\r\nAVdD/ciguL7EaJAC4ocXPdGZ7PLWM9KVFtmAigl+au2Zhgcae2wxW+co1pb+\r\nsa/KjbfsfCGJ6bFmVSf4VhwobXNzI7h0FBz6hDuiiwSH9YiRsy5CGiIy0F9j\r\nr9IDnxouChuzjo7U5u2txrv7zlQUg/fYjzdt0PwKq08W+UG2rDCgbIcIqWRN\r\nM9iB+GIlF4NtZU7OmnyboBSDdWFtqtE7J3HdO9eRvCn9wL+9vxl/zK9DYCjt\r\np6/llQm6pEke1sO8QRSC479VO89SlHUXMhNVZYobMHZlqxj2fg4x4M03nAro\r\n94t3L7/LBvhGqpEiBwDzccAG+5M2oEJ+Zj8h9KLzfysd9QF/UQQi3ps9WDN8\r\nzYK/s3pfdJtBPg44IZWViQK8U/nlzt3DBlnxNTpHAf8CuA1sHc7k+f0jbDz8\r\nTemZOLpf7tNL4xkrIisnoe79+Heh80nacAM3FxX5iIn12njQCkArzoyDKEa2\r\nHUl/e8nW7KQrAyC8YfwmVkJ9t051oXkw/ov2UljPKUGssFj53Aw737tVI2XD\r\nKZqXLJOwLU9zdtQ688qGqVPL+6S6wQeCjSfWvWWWtU/pdSDfGys8gYn3ZsaN\r\nJRyoKqk1XH85MQOZqRLTnrkrYUgVqnRU5Gs=\r\n=2pnD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"a04090010ee18e17487b449984807cc2b7b6e3e6","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v14.18.1+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"14.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"15.0.0","rimraf":"4.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.12.0_1681409558496_0.34960947909528417","host":"s3://npm-registry-packages"}},"1.13.0":{"name":"@opentelemetry/semantic-conventions","version":"1.13.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.13.0","maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0290398b3eaebc6029c348988a78c3b688fe9219","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.13.0.tgz","fileCount":57,"integrity":"sha512-LMGqfSZkaMQXqewO0o1wvWr/2fQdCh4a3Sqlxka/UsJCe0cfLulh6x2aqnKLnsrSGiCq5rSCwvINd152i0nCqw==","signatures":[{"sig":"MEYCIQCGiUmxUUPNeyeGVpxWyc5nLxvuwz3YLtIlWo+f8psHbQIhAOV9DnnPVl5cttoBwdTJX2CBPJESpYoV6sBKyMBUlb8D","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594470},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"8fc76896595aac912bf9e15d4f19c167317844c8","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v18.12.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.13.0_1683811800508_0.9751412645899713","host":"s3://npm-registry-packages"}},"1.14.0":{"name":"@opentelemetry/semantic-conventions","version":"1.14.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.14.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6a729b7f372ce30f77a3f217c09bc216f863fccb","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.14.0.tgz","fileCount":57,"integrity":"sha512-rJfCY8rCWz3cb4KI6pEofnytvMPuj3YLQwoscCCYZ5DkdiPjo15IQ0US7+mjcWy9H3fcZIzf2pbJZ7ck/h4tug==","signatures":[{"sig":"MEYCIQCBwFrhFL5ID+Y1b3Whu2742CHOYi4+mUnO0zl53Sm0pQIhAO0xUxaXybUqjdLzBiZMxIDXQvE+g4Z1iuM/wgq2y+F8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594461},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"edebbcc757535bc88f01340409dbbecc0bb6ccf8","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"lerna run version --scope $(npm pkg get name) --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.0.3/node@v18.12.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.0.11","mocha":"10.0.0","sinon":"15.0.0","codecov":"3.8.3","ts-mocha":"10.0.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.0","@types/sinon":"10.0.13"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.14.0_1686031249657_0.48171035305839105","host":"s3://npm-registry-packages"}},"1.15.0":{"name":"@opentelemetry/semantic-conventions","version":"1.15.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.15.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e6173daa5fd61f353b02c858001388bf26e9d059","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.15.0.tgz","fileCount":57,"integrity":"sha512-f3wwFrFyCpGrFBrFs7lCUJSCSCGyeKG52c+EKeobs3Dd29M75yO6GYkt6PkYPfDawxSlV5p+4yJPPk8tPObzTQ==","signatures":[{"sig":"MEUCIGEeB9bFbmOzFB8rVpYcoWC/c6XMwB53AB8AEVFhSXHtAiEA/HPfRSFpC1+B9uI+TrB7RI7HuHcCuvniAoxqliqzPlw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":593400},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"06e919d6c909e8cc8e28b6624d9843f401d9b059","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.1/node@v18.12.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","dependencies":{"tslib":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.1","lerna":"7.1.1","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.1","@types/sinon":"10.0.15"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.15.0_1688642823414_0.5620833094747975","host":"s3://npm-registry-packages"}},"1.15.1":{"name":"@opentelemetry/semantic-conventions","version":"1.15.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.15.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3d745996b2bd11095b515515fd3d68d46092a02d","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.15.1.tgz","fileCount":57,"integrity":"sha512-n8Kur1/CZlYG32YCEj30CoUqA8R7UyDVZzoEU6SDP+13+kXDT2kFVu6MpcnEUTyGP3i058ID6Qjp5h6IJxdPPQ==","signatures":[{"sig":"MEUCIF+L4UE156TlCnnWUUGWyRVijEE6mhjUsE7f60cDgtoaAiEA5/WjFlP495rQYQi0gcSYahp5U6FsUrRVErDjMqmhM38=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"9f71800fdc2a5ee5055684037a12498af71955f2","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.3/node@v18.4.0+x64 (darwin)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.2","lerna":"7.1.3","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.1","@types/sinon":"10.0.15"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.15.1_1690209161930_0.5118401980611305","host":"s3://npm-registry-packages"}},"1.15.2":{"name":"@opentelemetry/semantic-conventions","version":"1.15.2","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.15.2","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3bafb5de3e20e841dff6cb3c66f4d6e9694c4241","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.15.2.tgz","fileCount":57,"integrity":"sha512-CjbOKwk2s+3xPIMcd5UNYQzsf+v94RczbdNix9/kQh38WiQkM90sUOi3if8eyHFgiBjBjhwXrA7W3ydiSQP9mw==","signatures":[{"sig":"MEQCIDrGBIXy4O/MFUsjS4KRGO7ix+9Z6K2KiJDffxKpG2ovAiBICik2+ac9RAlYociP8PkfbIXQQStF6dv0s9Sg6yDoEw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"48fb15862e801b742059a3e39dbcc8ef4c10b2e2","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.4/node@v18.12.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.2","lerna":"7.1.4","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.1","@types/sinon":"10.0.16"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.15.2_1691500860254_0.3518645289242708","host":"s3://npm-registry-packages"}},"1.16.0":{"name":"@opentelemetry/semantic-conventions","version":"1.16.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.16.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"40b8261802ba76174100bdc3f04761c27b817b6b","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.16.0.tgz","fileCount":57,"integrity":"sha512-jpbpOY0ahD/uTF16h4/NkFatwlulCpkvecK8zVJgHRfjK/ymJAw1Cg45KXiVSJML8uiMmRBciea/+gebrD398g==","signatures":[{"sig":"MEUCIQCr28IfT47zOw2Ut90hdIxUVRkA4NmI1W07Z66AlG8ApwIgcTv1HAInEkP9ppwF3yBYy/NankdEcHcAiQRLN8lIE1Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"5fcd8cf136e2235903dde3df9ba03ced594f0e95","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.3","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.1","@types/sinon":"10.0.16"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.16.0_1694434462622_0.4698292953236438","host":"s3://npm-registry-packages"}},"1.17.0":{"name":"@opentelemetry/semantic-conventions","version":"1.17.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.17.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"af10baa9f05ce1e64a14065fc138b5739bfb65f6","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.17.0.tgz","fileCount":57,"integrity":"sha512-+fguCd2d8d2qruk0H0DsCEy2CTK3t0Tugg7MhZ/UQMvmewbZLNnJ6heSYyzIZWG5IPfAXzoj4f4F/qpM7l4VBA==","signatures":[{"sig":"MEUCIQD64H9jJonD8amcpmhB1peurgyIJubdgk7FXo3ztfvezAIgPOj43JujAySvZRTXjYYpiHOaiypMS+fUBrIrLz6d6Ak=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"faf939c77591f709afbc23fadbe629c9d3607ef6","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.3","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.1","@types/sinon":"10.0.16"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.17.0_1694524345236_0.8714125524536143","host":"s3://npm-registry-packages"}},"1.17.1":{"name":"@opentelemetry/semantic-conventions","version":"1.17.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.17.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"93d219935e967fbb9aa0592cc96b2c0ec817a56f","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.17.1.tgz","fileCount":57,"integrity":"sha512-xbR2U+2YjauIuo42qmE8XyJK6dYeRMLJuOlUP5SO4auET4VtOHOzgkRVOq+Ik18N+Xf3YPcqJs9dZMiDddz1eQ==","signatures":[{"sig":"MEUCIQC1KVv1+JdWnLRx/aW4O7YE72PMeVAwkgRFv12Dhh/g/gIgNnuoH27oX53HP80ia6C0M9rq8I0J01EzGDbifBqDCp4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"f8e187b473274cc2011e7385992f07d319d667dc","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/7.1.5/node@v18.12.1+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.3","lerna":"7.1.5","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.2","@types/sinon":"10.0.18"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.17.1_1696947487358_0.38016956677620306","host":"s3://npm-registry-packages"}},"1.18.0":{"name":"@opentelemetry/semantic-conventions","version":"1.18.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.18.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f38f457922f6e112569561c4515797a70eb5f9dd","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.0.tgz","fileCount":57,"integrity":"sha512-Bxtd+h2+rBv3XBHZaoXq133/hzgAQvbl2Kg5a9cG4ozfiUJHC9Xkblt7PrLc9CbzwWQpSxUxWoZJHXT3lUlkOw==","signatures":[{"sig":"MEUCIAm9DgtTXz6a4ZscFX8D0RQLhe0i/xYmua9uJtrjjVeCAiEAoIyBfPLFypal9NW4tPuu88V0QEIomOtWnJojq89TdaE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"73b446688f10fd8dc4cf403a085f0a39070df7b4","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.3","@types/sinon":"10.0.20"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.18.0_1699353880577_0.27442579359423624","host":"s3://npm-registry-packages"}},"1.18.1":{"name":"@opentelemetry/semantic-conventions","version":"1.18.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.18.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8e47caf57a84b1dcc1722b2025693348cdf443b4","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz","fileCount":57,"integrity":"sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA==","signatures":[{"sig":"MEUCIQC49w8od6zYVO7hoPk4XB2VZoRiNycvsrYiIlntEF6dYQIgC1zq0oNPLcPmkhURiFBVW0BeSejpJ1abXaEoCHHBfqs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"f665499096189390e691cf1a772e677fa67812d7","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.3","@types/sinon":"10.0.20"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.18.1_1699466940920_0.27246916449489755","host":"s3://npm-registry-packages"}},"1.19.0":{"name":"@opentelemetry/semantic-conventions","version":"1.19.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.19.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0c17f80b45de1c8778dfdf17acb1e9d4c4aa4ba8","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.19.0.tgz","fileCount":57,"integrity":"sha512-14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==","signatures":[{"sig":"MEYCIQCeUhClXy+y7AOwZLH86IG2SKWfiZfU1p1Yh8tqETILDgIhANqoL+4pQmzlxA5sZaPkEnniOruHgXIVIaBtAVOjRQov","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"d3c311aec24137084dc820805a2597e120335672","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.18.2+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"10.0.20"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.19.0_1702557320060_0.753853088301319","host":"s3://npm-registry-packages"}},"1.20.0":{"name":"@opentelemetry/semantic-conventions","version":"1.20.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.20.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4d9b88188e18056a218644ea30fae130a7857766","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.20.0.tgz","fileCount":57,"integrity":"sha512-3zLJJCgTKYpbqFX8drl8hOCHtdchELC+kGqlVcV4mHW1DiElTtv1Nt9EKBptTd1IfL56QkuYnWJ3DeHd2Gtu/A==","signatures":[{"sig":"MEUCIQCiRzsgIrIPn5hF+h2QfJpxXxBJMJxcmcw4CaDhcqjEbAIgAn6oJpIEcOHTdA5lj3oPdIGo7znfW8KjjlxFFZQ4tv0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"57008533aba7ccd51ea80f38ff4f29404d47eb9c","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"10.0.20"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.20.0_1705313739676_0.2669163245036539","host":"s3://npm-registry-packages"}},"1.21.0":{"name":"@opentelemetry/semantic-conventions","version":"1.21.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.21.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"83f7479c524ab523ac2df702ade30b9724476c72","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz","fileCount":57,"integrity":"sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g==","signatures":[{"sig":"MEYCIQD0X1TIchgEsPyGGBDeqVOyrwtTR0BPhOuI7gBOO45OkQIhALCZpW03Ox9SodUza+1Lg9XnyYF4+1IoOhDfx0I22qZj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":594762},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"828f2ed730e4d26d71f92e220f96b60a552a673a","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-mocha":"10.0.0","cross-var":"1.1.0","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"10.0.20"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.21.0_1706249463896_0.28284895115647846","host":"s3://npm-registry-packages"}},"1.22.0":{"name":"@opentelemetry/semantic-conventions","version":"1.22.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.22.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d7502533a7c96e25baab86bac965468e0703a8b4","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.22.0.tgz","fileCount":66,"integrity":"sha512-CAOgFOKLybd02uj/GhCdEeeBjOS0yeoDeo/CA7ASBSmenpZHAKGB3iDm/rv3BQLcabb/OprDEsSQ1y0P8A7Siw==","signatures":[{"sig":"MEUCICXZu/6qodw3Ub1yy+pudl+FjT2/We3reCCNBbEdBs76AiEA/HIbgRdO8vVqP6hjNvK3hzdQGr99KGbqe0F47w28un8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1657719},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"7be35c7845e206b27b682e8ce1cee850b09cec04","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","size-check":"npm run compile && ts-mocha -p tsconfig.json 'test/**/*.test.ts'","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-node":"10.9.2","ts-mocha":"10.0.0","cross-var":"1.1.0","size-limit":"^11.0.1","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"10.0.20","@size-limit/file":"^11.0.1","@size-limit/time":"^11.0.1","@size-limit/webpack":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.22.0_1709198285010_0.13864475637089568","host":"s3://npm-registry-packages"}},"1.23.0":{"name":"@opentelemetry/semantic-conventions","version":"1.23.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.23.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"627f2721b960fe586b7f72a07912cb7699f06eef","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.23.0.tgz","fileCount":66,"integrity":"sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg==","signatures":[{"sig":"MEUCIQDV8EgfRIK1KYuXoWe5vOIMwrLihfF+jEpl9FbBBudwmwIgNs/1rt0y4Oux/cmKOKJNdrVxEHFbYLLb8EJI+iLh6YQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1657719},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"5231aa255047fbc6ee3d6a299f4423ab2f8a5fbc","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","size-check":"npm run compile && ts-mocha -p tsconfig.json 'test/**/*.test.ts'","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-node":"10.9.2","ts-mocha":"10.0.0","cross-var":"1.1.0","size-limit":"^11.0.1","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"10.0.20","@size-limit/file":"^11.0.1","@size-limit/time":"^11.0.1","@size-limit/webpack":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.23.0_1712131798776_0.07862848771110786","host":"s3://npm-registry-packages"}},"1.24.0":{"name":"@opentelemetry/semantic-conventions","version":"1.24.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.24.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f074db930a7feb4d64103a9a576c5fbad046fcac","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.0.tgz","fileCount":66,"integrity":"sha512-yL0jI6Ltuz8R+Opj7jClGrul6pOoYrdfVmzQS4SITXRPH7I5IRZbrwe/6/v8v4WYMa6MYZG480S1+uc/IGfqsA==","signatures":[{"sig":"MEUCIG5LZVmlmcAihJ85nbRhMO5e1Dpg6EsQO8Lx2pcUz2TLAiEAuJErOf33ClvHqy0LZItbOXxBJrTPuYdEi4hQ03kza4o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1657719},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"3ab4f765d8d696327b7d139ae6a45e7bd7edd924","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","size-check":"npm run compile && ts-mocha -p tsconfig.json 'test/**/*.test.ts'","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-node":"10.9.2","ts-mocha":"10.0.0","cross-var":"1.1.0","size-limit":"^11.0.1","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"10.0.20","@size-limit/file":"^11.0.1","@size-limit/time":"^11.0.1","@size-limit/webpack":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.24.0_1713968895543_0.04714739399092549","host":"s3://npm-registry-packages"}},"1.24.1":{"name":"@opentelemetry/semantic-conventions","version":"1.24.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.24.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d4bcebda1cb5146d47a2a53daaa7922f8e084dfb","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz","fileCount":66,"integrity":"sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==","signatures":[{"sig":"MEYCIQCAJ/ejvHKWeiiVUSnPPje0c3eU1OWM93DXedC864v6hAIhAIq3i6iJ4u9M7LZp9oqRoffAs6scAbJlQ+swpPYjw/aD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1657719},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"41c2626fe0ed03e2e83bd79ee43c9bdf0ffd80d8","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","size-check":"npm run compile && ts-mocha -p tsconfig.json 'test/**/*.test.ts'","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-node":"10.9.2","ts-mocha":"10.0.0","cross-var":"1.1.0","size-limit":"^11.0.1","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"10.0.20","@size-limit/file":"^11.0.1","@size-limit/time":"^11.0.1","@size-limit/webpack":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.24.1_1715093551809_0.9803329268688605","host":"s3://npm-registry-packages"}},"1.25.0":{"name":"@opentelemetry/semantic-conventions","version":"1.25.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.25.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"390eb4d42a29c66bdc30066af9035645e9bb7270","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.0.tgz","fileCount":66,"integrity":"sha512-M+kkXKRAIAiAP6qYyesfrC5TOmDpDVtsxuGfPcqd9B/iBrac+E14jYwrgm0yZBUIbIP2OnqC3j+UgkXLm1vxUQ==","signatures":[{"sig":"MEQCIF9x0cPiI0aRboVgh/CEFHM+JFdJrpCqvQsyge+LZL0sAiAv9cKUsh31tuAi1YeO42pbNW+CbAPCrbXW/MNPzvBTEQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1657780},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"c4d3351b6b3f5593c8d7cbfec97b45cea9fe1511","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","size-check":"npm run compile && ts-mocha -p tsconfig.json 'test/**/*.test.ts'","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-node":"10.9.2","ts-mocha":"10.0.0","cross-var":"1.1.0","size-limit":"^11.0.1","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"17.0.3","@size-limit/file":"^11.0.1","@size-limit/time":"^11.0.1","@size-limit/webpack":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.25.0_1717607727021_0.21878207211412048","host":"s3://npm-registry-packages"}},"1.25.1":{"name":"@opentelemetry/semantic-conventions","version":"1.25.1","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.25.1","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0deecb386197c5e9c2c28f2f89f51fb8ae9f145e","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz","fileCount":66,"integrity":"sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==","signatures":[{"sig":"MEYCIQCwSWxdrbVYBBv5VFr3wOnGdT7cmcw8Zxbwc5i+efGPhQIhAK4v2VNhci/XFEbXAjCdeZukyrqUbX44tFIgGu0ovUvu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1657780},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"gitHead":"0608f405573901e54db01e44c533009cf28be262","scripts":{"lint":"eslint . --ext .ts","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","size-check":"npm run compile && ts-mocha -p tsconfig.json 'test/**/*.test.ts'","align-api-deps":"node ../../scripts/align-api-deps.js","peer-api-check":"node ../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.19.0+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.2.0","sinon":"15.1.2","codecov":"3.8.3","ts-node":"10.9.2","ts-mocha":"10.0.0","cross-var":"1.1.0","size-limit":"^11.0.1","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.6","@types/sinon":"17.0.3","@size-limit/file":"^11.0.1","@size-limit/time":"^11.0.1","@size-limit/webpack":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.25.1_1718875143959_0.351076030367109","host":"s3://npm-registry-packages"}},"1.26.0":{"name":"@opentelemetry/semantic-conventions","version":"1.26.0","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/semantic-conventions@1.26.0","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"42da14476529ca86d0af4c11f58910f242a0a232","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.26.0.tgz","fileCount":111,"integrity":"sha512-U9PJlOswJPSgQVPI+XEuNLElyFWkb0hAiMg+DExD9V0St03X2lPHGMdxMY/LrVmoukuIpXJ12oyrOtEZ4uXFkw==","signatures":[{"sig":"MEQCIEiI+l7l5H/KRCiiRwA2G89MxzwbGfPt7ansJp9Jj1N2AiB7Yaz/LbxFT7ghCVufa236xLl5MHp4DOlLssRzytacqw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5335726},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","engines":{"node":">=14"},"exports":{".":{"types":"./build/src/index.d.ts","esnext":"./build/esnext/index.js","module":"./build/esm/index.js","default":"./build/src/index.js"},"./incubating":{"types":"./build/src/index-incubating.d.ts","esnext":"./build/esnext/index-incubating.js","module":"./build/esm/index-incubating.js","default":"./build/src/index-incubating.js"}},"gitHead":"3cf1c5215f2656ccb82e6a73cd9e6f2782f8d1cc","scripts":{"clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../scripts/version-update.js","prewatch":"npm run precompile","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","size-check":"npm run compile && mocha 'test/**/*.test.ts'","align-api-deps":"node ../scripts/align-api-deps.js","peer-api-check":"node ../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","description":"OpenTelemetry semantic conventions","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./build/src/index.d.ts"],"incubating":["./build/src/index-incubating.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","nock":"13.3.8","lerna":"6.6.2","mocha":"10.7.3","sinon":"15.1.2","codecov":"3.8.3","ts-node":"10.9.2","cross-var":"1.1.0","size-limit":"^11.0.1","typescript":"4.4.4","@types/node":"18.6.5","@types/mocha":"10.0.7","@types/sinon":"17.0.3","@size-limit/file":"^11.0.1","@size-limit/time":"^11.0.1","@size-limit/webpack":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/semantic-conventions_1.26.0_1724340582148_0.3437603752469778","host":"s3://npm-registry-packages"}},"1.27.0":{"name":"@opentelemetry/semantic-conventions","version":"1.27.0","description":"OpenTelemetry semantic conventions","main":"build/src/index.js","module":"build/esm/index.js","esnext":"build/esnext/index.js","types":"build/src/index.d.ts","exports":{".":{"module":"./build/esm/index.js","esnext":"./build/esnext/index.js","types":"./build/src/index.d.ts","default":"./build/src/index.js"},"./incubating":{"module":"./build/esm/index-incubating.js","esnext":"./build/esnext/index-incubating.js","types":"./build/src/index-incubating.d.ts","default":"./build/src/index-incubating.js"}},"typesVersions":{"*":{"*":["./build/src/index.d.ts"],"incubating":["./build/src/index-incubating.d.ts"]}},"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"scripts":{"prepublishOnly":"npm run compile","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../scripts/version-update.js","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","precompile":"cross-var lerna run version --scope $npm_package_name --include-dependencies","prewatch":"npm run precompile","peer-api-check":"node ../scripts/peer-api-check.js","size-check":"npm run compile && mocha 'test/**/*.test.ts'","align-api-deps":"node ../scripts/align-api-deps.js"},"keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","engines":{"node":">=14"},"publishConfig":{"access":"public"},"devDependencies":{"@size-limit/file":"^11.0.1","@size-limit/time":"^11.0.1","@size-limit/webpack":"^11.0.1","@types/mocha":"10.0.7","@types/node":"18.6.5","@types/sinon":"17.0.3","codecov":"3.8.3","cross-var":"1.1.0","lerna":"6.6.2","mocha":"10.7.3","nock":"13.3.8","nyc":"15.1.0","sinon":"15.1.2","size-limit":"^11.0.1","ts-node":"10.9.2","typescript":"4.4.4"},"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions","sideEffects":false,"gitHead":"720bc8c70d47029cb6b41a34ffdc3d25cbaa2f80","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"_id":"@opentelemetry/semantic-conventions@1.27.0","_nodeVersion":"18.20.4","_npmVersion":"lerna/6.6.2/node@v18.20.4+x64 (linux)","dist":{"integrity":"sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==","shasum":"1a857dcc95a5ab30122e04417148211e6f945e6c","tarball":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz","fileCount":111,"unpackedSize":5335726,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmJFQaTgkN6XUuG93tb9a5AQ+WJnqCazn6YAQVayoymAIhALqM916mf7GjwncZAHyYNu5DI/mf4u7eu65AQXeF4l2X"}]},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"directories":{},"maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-conventions_1.27.0_1724836620193_0.9558738333064525"},"_hasShrinkwrap":false}},"time":{"created":"2020-06-18T21:25:38.852Z","modified":"2024-08-28T09:17:00.614Z","0.9.0":"2020-06-18T21:25:39.243Z","0.10.0":"2020-07-27T20:58:54.467Z","0.10.1":"2020-07-28T15:12:20.779Z","0.10.2":"2020-08-03T23:25:26.246Z","0.10.3-canary.0":"2020-08-07T16:47:09.383Z","0.10.3-alpha.35":"2020-08-24T22:45:12.321Z","0.11.1-alpha.48":"2020-09-01T19:24:05.370Z","0.11.0":"2020-09-01T19:32:09.889Z","0.11.1-alpha.36":"2020-09-30T12:38:27.170Z","0.12.1-alpha.54":"2020-10-19T12:49:41.843Z","0.12.0":"2020-10-19T12:53:33.495Z","0.13.0":"2020-12-04T21:26:08.207Z","0.14.0":"2020-12-17T20:52:35.101Z","0.15.0":"2021-01-21T22:19:49.358Z","0.16.0":"2021-02-01T22:33:10.350Z","0.17.0":"2021-02-17T21:15:51.972Z","0.17.1-alpha.21":"2021-02-17T21:16:27.650Z","0.17.1-alpha.11":"2021-03-02T13:31:38.301Z","0.18.1-alpha.12":"2021-03-02T13:53:48.085Z","0.18.0":"2021-03-02T14:00:58.575Z","0.18.1-alpha.13":"2021-03-18T16:25:46.754Z","0.18.1-alpha.20":"2021-03-24T13:10:44.832Z","0.18.1-alpha.24":"2021-03-24T19:38:31.807Z","0.18.2-alpha.81":"2021-03-29T19:51:52.872Z","0.18.1":"2021-03-29T20:03:51.263Z","0.18.3-alpha.2":"2021-03-30T15:26:55.560Z","0.18.2":"2021-03-30T16:15:41.714Z","0.18.3-alpha.1":"2021-03-30T17:29:24.841Z","0.18.3-alpha.16":"2021-04-09T20:07:40.049Z","0.18.3-alpha.17":"2021-04-10T09:33:36.092Z","0.18.3-alpha.25":"2021-04-12T19:42:23.089Z","0.18.3-alpha.30":"2021-04-19T17:01:28.689Z","0.19.1-alpha.36":"2021-04-22T12:19:39.704Z","0.19.0":"2021-04-22T12:28:41.238Z","0.19.1-alpha.37":"2021-04-22T18:15:46.682Z","0.19.1-alpha.39":"2021-04-22T18:44:58.299Z","0.19.1-alpha.11":"2021-04-29T21:06:59.986Z","0.19.1-alpha.14":"2021-05-01T07:37:54.302Z","0.19.1-alpha.31":"2021-05-19T18:06:48.176Z","0.19.1-alpha.43":"2021-06-01T19:45:41.649Z","0.20.1-alpha.49":"2021-06-03T17:09:41.078Z","0.20.0":"2021-06-03T18:28:25.466Z","0.20.1-alpha.4":"2021-06-08T13:27:37.784Z","0.21.1-alpha.7":"2021-06-10T17:25:52.499Z","0.21.0":"2021-06-10T18:29:39.474Z","0.21.1-alpha.2":"2021-06-12T08:35:07.634Z","0.22.1-alpha.5":"2021-06-17T17:05:00.249Z","0.22.0":"2021-06-17T17:58:30.221Z","0.22.1-alpha.13":"2021-06-30T18:40:13.714Z","0.22.1-alpha.15":"2021-06-30T19:08:34.882Z","0.22.1-alpha.16":"2021-06-30T19:48:37.174Z","0.23.1-alpha.17":"2021-06-30T20:07:25.819Z","0.23.0":"2021-06-30T20:14:44.289Z","0.23.1-alpha.18":"2021-07-02T14:37:54.015Z","0.23.1-alpha.3":"2021-07-05T22:27:18.990Z","0.23.1-alpha.15":"2021-07-17T09:17:54.717Z","0.23.1-alpha.23":"2021-07-23T17:45:59.976Z","0.23.1-alpha.24":"2021-07-25T06:45:07.340Z","0.23.1-alpha.28":"2021-07-27T19:44:05.047Z","0.24.1-alpha.31":"2021-07-28T14:06:47.681Z","0.24.0":"2021-07-28T14:13:53.456Z","0.24.1-alpha.1":"2021-07-30T19:42:22.241Z","0.24.1-alpha.5":"2021-08-06T11:31:17.278Z","0.24.1-alpha.7":"2021-08-07T13:32:43.884Z","0.25.1-alpha.21":"2021-08-18T20:16:24.028Z","0.25.0":"2021-08-18T21:16:36.895Z","0.25.1-alpha.4":"2021-08-24T19:32:58.459Z","0.25.1-alpha.13":"2021-08-30T20:41:12.547Z","0.26.0":"2021-09-30T12:35:24.982Z","1.0.0":"2021-09-30T20:53:40.028Z","1.0.1":"2021-11-11T14:51:18.434Z","1.1.0":"2022-03-18T08:10:58.010Z","1.1.1":"2022-03-22T19:52:27.586Z","1.2.0":"2022-04-22T14:56:59.653Z","1.3.0":"2022-05-27T19:41:13.827Z","1.3.1":"2022-06-06T20:26:05.752Z","1.4.0":"2022-07-06T20:15:32.962Z","1.5.0":"2022-07-26T20:52:06.048Z","1.6.0":"2022-08-24T17:44:30.328Z","1.7.0":"2022-09-16T12:14:54.048Z","1.8.0":"2022-11-09T19:45:27.990Z","1.9.0":"2023-01-11T21:46:10.405Z","1.9.1":"2023-01-30T15:30:03.540Z","1.10.0":"2023-03-13T15:53:24.349Z","1.10.1":"2023-03-20T16:10:29.648Z","1.11.0":"2023-03-30T15:30:50.999Z","1.12.0":"2023-04-13T18:12:38.735Z","1.13.0":"2023-05-11T13:30:00.697Z","1.14.0":"2023-06-06T06:00:49.841Z","1.15.0":"2023-07-06T11:27:03.667Z","1.15.1":"2023-07-24T14:32:42.149Z","1.15.2":"2023-08-08T13:21:00.426Z","1.16.0":"2023-09-11T12:14:22.773Z","1.17.0":"2023-09-12T13:12:25.486Z","1.17.1":"2023-10-10T14:18:07.604Z","1.18.0":"2023-11-07T10:44:40.780Z","1.18.1":"2023-11-08T18:09:01.271Z","1.19.0":"2023-12-14T12:35:20.274Z","1.20.0":"2024-01-15T10:15:39.903Z","1.21.0":"2024-01-26T06:11:04.075Z","1.22.0":"2024-02-29T09:18:05.200Z","1.23.0":"2024-04-03T08:09:59.022Z","1.24.0":"2024-04-24T14:28:15.843Z","1.24.1":"2024-05-07T14:52:31.963Z","1.25.0":"2024-06-05T17:15:27.230Z","1.25.1":"2024-06-20T09:19:04.195Z","1.26.0":"2024-08-22T15:29:42.410Z","1.27.0":"2024-08-28T09:17:00.414Z"},"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions","keywords":["opentelemetry","nodejs","tracing","attributes","semantic conventions"],"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-js.git"},"description":"OpenTelemetry semantic conventions","maintainers":[{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"}],"readme":"# OpenTelemetry Semantic Conventions\n\n[![NPM Published Version][npm-img]][npm-url]\n[![Apache License][license-image]][license-image]\n\nSemantic Convention constants for use with the OpenTelemetry SDK/APIs. [This document][trace-semantic_conventions] defines standard attributes for traces.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/semantic-conventions\n```\n\n## Import Structure\n\nThis package has 2 separate exports.\nThe main export (`@opentelemetry/semantic-conventions`) includes only stable semantic conventions.\nIt is subject to the restrictions of semantic versioning 2.0.\nThe `/incubating` export (`@opentelemetry/semantic-conventions/incubating`) contains all stable and unstable semantic conventions.\nIt is _NOT_ subject to the restrictions of semantic versioning and _MAY_ contain breaking changes in minor releases.\n\n## Usage\n\n### Stable SemConv\n\n```ts\nimport { \n ATTR_NETWORK_PEER_ADDRESS,\n ATTR_NETWORK_PEER_PORT,\n ATTR_NETWORK_PROTOCOL_NAME,\n ATTR_NETWORK_PROTOCOL_VERSION,\n NETWORK_TRANSPORT_VALUE_TCP,\n} from '@opentelemetry/semantic-conventions';\n\nconst span = tracer.startSpan(spanName, spanOptions)\n .setAttributes({\n [ATTR_NETWORK_PEER_ADDRESS]: 'localhost',\n [ATTR_NETWORK_PEER_PORT]: 8080,\n [ATTR_NETWORK_PROTOCOL_NAME]: 'http',\n [ATTR_NETWORK_PROTOCOL_VERSION]: '1.1',\n [ATTR_NETWORK_TRANSPORT]: NETWORK_TRANSPORT_VALUE_TCP,\n });\n```\n\n### Unstable SemConv\n\n```ts\nimport { \n ATTR_PROCESS_COMMAND,\n ATTR_PROCESS_COMMAND_ARGS,\n ATTR_PROCESS_COMMAND_LINE,\n} from '@opentelemetry/semantic-conventions/incubating';\n\nconst span = tracer.startSpan(spanName, spanOptions)\n .setAttributes({\n [ATTR_PROCESS_COMMAND]: 'cat',\n [ATTR_PROCESS_COMMAND_ARGS]: ['file1', 'file2'],\n [ATTR_CONTAINER_COMMAND_LINE]: 'cat file1 file2',\n });\n```\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: \n- For more about OpenTelemetry JavaScript: \n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/semantic-conventions\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fsemantic-conventions.svg\n\n[trace-semantic_conventions]: https://github.com/open-telemetry/semantic-conventions/tree/main/specification/trace/semantic_conventions\n","readmeFilename":"README.md"} \ No newline at end of file diff --git a/tests/registry/npm/cli.ts/registry.json b/tests/registry/npm/cli.ts/registry.json new file mode 100644 index 00000000000000..d58dc8537820a5 --- /dev/null +++ b/tests/registry/npm/cli.ts/registry.json @@ -0,0 +1,32 @@ +{ + "name": "cli.ts", + "description": "Package with name like a file path", + "dist-tags": { + "latest": "2.2.0" + }, + "versions": { + "2.2.0": { + "name": "cli.ts", + "version": "2.2.0", + "description": "Package with name like a file path", + "license": "MIT", + "author": {}, + "engines": { + "node": ">=6" + }, + "gitHead": "91440c5a1615354fb9419354650937c434eb9f49", + "_id": "cli.ts@2.2.0", + "_nodeVersion": "10.16.0", + "_npmVersion": "6.9.0", + "dist": { + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "shasum": "ee8472dbb129e727b31e8a10a427dee9dfe4008b", + "tarball": "http://localhost:4260/cli.ts/cli.ts-2.2.0.tgz", + "fileCount": 5, + "unpackedSize": 5508 + }, + "directories": {}, + "_hasShrinkwrap": false + } + } +} diff --git a/tests/specs/check/wasm/__test__.jsonc b/tests/specs/check/wasm/__test__.jsonc new file mode 100644 index 00000000000000..cb11ce33bd7aca --- /dev/null +++ b/tests/specs/check/wasm/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "check --allow-import main.ts", + "output": "check.out", + "exitCode": 1 +} diff --git a/tests/specs/check/wasm/check.out b/tests/specs/check/wasm/check.out new file mode 100644 index 00000000000000..b3a23646db8645 --- /dev/null +++ b/tests/specs/check/wasm/check.out @@ -0,0 +1,6 @@ +Download http://localhost:4545/wasm/math.wasm +Check file:///[WILDLINE]/main.ts +error: TS2345 [ERROR]: Argument of type 'string' is not assignable to parameter of type 'number'. +console.log(add(1, "")); + ~~ + at file:///[WILDLINE]/main.ts:3:20 diff --git a/tests/specs/check/wasm/main.ts b/tests/specs/check/wasm/main.ts new file mode 100644 index 00000000000000..64a8f64d8dd010 --- /dev/null +++ b/tests/specs/check/wasm/main.ts @@ -0,0 +1,3 @@ +import { add } from "http://localhost:4545/wasm/math.wasm"; + +console.log(add(1, "")); diff --git a/tests/specs/cli/otel_basic/__test__.jsonc b/tests/specs/cli/otel_basic/__test__.jsonc new file mode 100644 index 00000000000000..5a27e92625307b --- /dev/null +++ b/tests/specs/cli/otel_basic/__test__.jsonc @@ -0,0 +1,32 @@ +{ + "steps": [ + { + "args": "run -A main.ts basic.ts", + "envs": { + "DENO_UNSTABLE_OTEL_DETERMINISTIC": "1" + }, + "output": "basic.out" + }, + { + "args": "run -A main.ts natural_exit.ts", + "envs": { + "DENO_UNSTABLE_OTEL_DETERMINISTIC": "1" + }, + "output": "natural_exit.out" + }, + { + "args": "run -A main.ts deno_dot_exit.ts", + "envs": { + "DENO_UNSTABLE_OTEL_DETERMINISTIC": "1" + }, + "output": "deno_dot_exit.out" + }, + { + "args": "run -A main.ts uncaught.ts", + "envs": { + "DENO_UNSTABLE_OTEL_DETERMINISTIC": "1" + }, + "output": "uncaught.out" + } + ] +} diff --git a/tests/specs/cli/otel_basic/basic.out b/tests/specs/cli/otel_basic/basic.out new file mode 100644 index 00000000000000..3745cb7f359929 --- /dev/null +++ b/tests/specs/cli/otel_basic/basic.out @@ -0,0 +1,76 @@ +{ + "spans": [ + { + "traceId": "10000000000000000000000000000002", + "spanId": "1000000000000003", + "traceState": "", + "parentSpanId": "1000000000000001", + "flags": 1, + "name": "inner span", + "kind": 1, + "startTimeUnixNano": "[WILDCARD]", + "endTimeUnixNano": "[WILDCARD]", + "attributes": [], + "droppedAttributesCount": 0, + "events": [], + "droppedEventsCount": 0, + "links": [], + "droppedLinksCount": 0, + "status": { + "message": "", + "code": 0 + } + }, + { + "traceId": "10000000000000000000000000000002", + "spanId": "1000000000000001", + "traceState": "", + "parentSpanId": "", + "flags": 1, + "name": "outer span", + "kind": 1, + "startTimeUnixNano": "[WILDCARD]", + "endTimeUnixNano": "[WILDCARD]", + "attributes": [], + "droppedAttributesCount": 0, + "events": [], + "droppedEventsCount": 0, + "links": [], + "droppedLinksCount": 0, + "status": { + "message": "", + "code": 0 + } + } + ], + "logs": [ + { + "timeUnixNano": "0", + "observedTimeUnixNano": "[WILDCARD]", + "severityNumber": 9, + "severityText": "INFO", + "body": { + "stringValue": "log 1\n" + }, + "attributes": [], + "droppedAttributesCount": 0, + "flags": 1, + "traceId": "10000000000000000000000000000002", + "spanId": "1000000000000003" + }, + { + "timeUnixNano": "0", + "observedTimeUnixNano": "[WILDCARD]", + "severityNumber": 9, + "severityText": "INFO", + "body": { + "stringValue": "log 2\n" + }, + "attributes": [], + "droppedAttributesCount": 0, + "flags": 1, + "traceId": "10000000000000000000000000000002", + "spanId": "1000000000000003" + } + ] +} diff --git a/tests/specs/cli/otel_basic/basic.ts b/tests/specs/cli/otel_basic/basic.ts new file mode 100644 index 00000000000000..5c4ae43cd8298e --- /dev/null +++ b/tests/specs/cli/otel_basic/basic.ts @@ -0,0 +1,34 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +import { trace } from "npm:@opentelemetry/api@1.9.0"; +import "jsr:@deno/otel@0.0.2/register"; + +const tracer = trace.getTracer("example-tracer"); + +async function inner() { + await tracer.startActiveSpan("inner span", async (span) => { + console.log("log 1"); + await 1; + console.log("log 2"); + span.end(); + }); +} + +const server = Deno.serve({ + port: 0, + async onListen({ port }) { + try { + await fetch(`http://localhost:${port}`); + } finally { + server.shutdown(); + } + }, + handler: async (_req) => { + return await tracer.startActiveSpan("outer span", async (span) => { + await inner(); + const resp = new Response(null, { status: 200 }); + span.end(); + return resp; + }); + }, +}); diff --git a/tests/specs/cli/otel_basic/deno.json b/tests/specs/cli/otel_basic/deno.json new file mode 100644 index 00000000000000..105514e133fb25 --- /dev/null +++ b/tests/specs/cli/otel_basic/deno.json @@ -0,0 +1,4 @@ +{ + "lock": false, + "importMap": "../../../../import_map.json" +} diff --git a/tests/specs/cli/otel_basic/deno_dot_exit.out b/tests/specs/cli/otel_basic/deno_dot_exit.out new file mode 100644 index 00000000000000..98a41cf6061f35 --- /dev/null +++ b/tests/specs/cli/otel_basic/deno_dot_exit.out @@ -0,0 +1,19 @@ +{ + "spans": [], + "logs": [ + { + "timeUnixNano": "0", + "observedTimeUnixNano": "[WILDCARD]", + "severityNumber": 9, + "severityText": "INFO", + "body": { + "stringValue": "log 1\n" + }, + "attributes": [], + "droppedAttributesCount": 0, + "flags": 0, + "traceId": "", + "spanId": "" + } + ] +} diff --git a/tests/specs/cli/otel_basic/deno_dot_exit.ts b/tests/specs/cli/otel_basic/deno_dot_exit.ts new file mode 100644 index 00000000000000..73540fd9e8e35d --- /dev/null +++ b/tests/specs/cli/otel_basic/deno_dot_exit.ts @@ -0,0 +1,2 @@ +console.log("log 1"); +Deno.exit(0); diff --git a/tests/specs/cli/otel_basic/main.ts b/tests/specs/cli/otel_basic/main.ts new file mode 100644 index 00000000000000..5415a7437d1054 --- /dev/null +++ b/tests/specs/cli/otel_basic/main.ts @@ -0,0 +1,38 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +const data = { + spans: [], + logs: [], +}; + +const server = Deno.serve( + { + port: 0, + onListen({ port }) { + const command = new Deno.Command(Deno.execPath(), { + args: ["run", "-A", "-q", "--unstable-otel", Deno.args[0]], + env: { + OTEL_EXPORTER_OTLP_PROTOCOL: "http/json", + OTEL_EXPORTER_OTLP_ENDPOINT: `http://localhost:${port}`, + }, + stdout: "null", + }); + const child = command.spawn(); + child.output().then(() => { + server.shutdown(); + + console.log(JSON.stringify(data, null, 2)); + }); + }, + async handler(req) { + const body = await req.json(); + if (body.resourceLogs) { + data.logs.push(...body.resourceLogs[0].scopeLogs[0].logRecords); + } + if (body.resourceSpans) { + data.spans.push(...body.resourceSpans[0].scopeSpans[0].spans); + } + return Response.json({ partialSuccess: {} }, { status: 200 }); + }, + }, +); diff --git a/tests/specs/cli/otel_basic/natural_exit.out b/tests/specs/cli/otel_basic/natural_exit.out new file mode 100644 index 00000000000000..98a41cf6061f35 --- /dev/null +++ b/tests/specs/cli/otel_basic/natural_exit.out @@ -0,0 +1,19 @@ +{ + "spans": [], + "logs": [ + { + "timeUnixNano": "0", + "observedTimeUnixNano": "[WILDCARD]", + "severityNumber": 9, + "severityText": "INFO", + "body": { + "stringValue": "log 1\n" + }, + "attributes": [], + "droppedAttributesCount": 0, + "flags": 0, + "traceId": "", + "spanId": "" + } + ] +} diff --git a/tests/specs/cli/otel_basic/natural_exit.ts b/tests/specs/cli/otel_basic/natural_exit.ts new file mode 100644 index 00000000000000..d4047825246368 --- /dev/null +++ b/tests/specs/cli/otel_basic/natural_exit.ts @@ -0,0 +1 @@ +console.log("log 1"); diff --git a/tests/specs/cli/otel_basic/uncaught.out b/tests/specs/cli/otel_basic/uncaught.out new file mode 100644 index 00000000000000..a5a886bfeb8b01 --- /dev/null +++ b/tests/specs/cli/otel_basic/uncaught.out @@ -0,0 +1,37 @@ +error: Uncaught (in promise) Error: uncaught +throw new Error("uncaught"); + ^ + at file:///[WILDCARD]/tests/specs/cli/otel_basic/uncaught.ts:2:7 +{ + "spans": [], + "logs": [ + { + "timeUnixNano": "0", + "observedTimeUnixNano": "[WILDCARD]", + "severityNumber": 9, + "severityText": "INFO", + "body": { + "stringValue": "log 1\n" + }, + "attributes": [], + "droppedAttributesCount": 0, + "flags": 0, + "traceId": "", + "spanId": "" + }, + { + "timeUnixNano": "0", + "observedTimeUnixNano": "[WILDCARD]", + "severityNumber": 17, + "severityText": "ERROR", + "body": { + "stringValue": "error: Uncaught (in promise) Error: uncaught\nthrow new Error(\"uncaught\");\n ^\n at file:///[WILDCARD]/tests/specs/cli/otel_basic/uncaught.ts:2:7" + }, + "attributes": [], + "droppedAttributesCount": 0, + "flags": 0, + "traceId": "", + "spanId": "" + } + ] +} diff --git a/tests/specs/cli/otel_basic/uncaught.ts b/tests/specs/cli/otel_basic/uncaught.ts new file mode 100644 index 00000000000000..eca7c05cb2d761 --- /dev/null +++ b/tests/specs/cli/otel_basic/uncaught.ts @@ -0,0 +1,2 @@ +console.log("log 1"); +throw new Error("uncaught"); diff --git a/tests/specs/compile/code_cache/__test__.jsonc b/tests/specs/compile/code_cache/__test__.jsonc new file mode 100644 index 00000000000000..72353e27daeb52 --- /dev/null +++ b/tests/specs/compile/code_cache/__test__.jsonc @@ -0,0 +1,32 @@ +{ + "tempDir": true, + "steps": [{ + "if": "unix", + "args": "compile --output using_code_cache --log-level=debug main.ts", + "output": "[WILDCARD]" + }, { + "if": "unix", + "commandName": "./using_code_cache", + "args": [], + "output": "first_run.out" + }, { + "if": "unix", + "commandName": "./using_code_cache", + "args": [], + "output": "second_run.out" + }, { + "if": "windows", + "args": "compile --output using_code_cache.exe --log-level=debug main.ts", + "output": "[WILDCARD]" + }, { + "if": "windows", + "commandName": "./using_code_cache.exe", + "args": [], + "output": "first_run.out" + }, { + "if": "windows", + "commandName": "./using_code_cache.exe", + "args": [], + "output": "second_run.out" + }] +} diff --git a/tests/specs/compile/code_cache/first_run.out b/tests/specs/compile/code_cache/first_run.out new file mode 100644 index 00000000000000..ca13e088f04428 --- /dev/null +++ b/tests/specs/compile/code_cache/first_run.out @@ -0,0 +1 @@ +[WILDCARD]Serialized 9 code cache entries[WILDCARD] \ No newline at end of file diff --git a/tests/specs/compile/code_cache/main.ts b/tests/specs/compile/code_cache/main.ts new file mode 100644 index 00000000000000..b1d552d30a9e03 --- /dev/null +++ b/tests/specs/compile/code_cache/main.ts @@ -0,0 +1,3 @@ +import { join } from "jsr:@std/url@0.220/join"; + +console.log(join); diff --git a/tests/specs/compile/code_cache/second_run.out b/tests/specs/compile/code_cache/second_run.out new file mode 100644 index 00000000000000..5f6afcf7e6f75e --- /dev/null +++ b/tests/specs/compile/code_cache/second_run.out @@ -0,0 +1 @@ +[WILDCARD]Loaded 9 code cache entries[WILDCARD][Function: join][WILDCARD] \ No newline at end of file diff --git a/tests/specs/compile/detect_cjs/deno.json b/tests/specs/compile/detect_cjs/deno.json deleted file mode 100644 index 35f64c86f49a8f..00000000000000 --- a/tests/specs/compile/detect_cjs/deno.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "unstable": [ - "detect-cjs" - ] -} diff --git a/tests/specs/compile/include/buffered_reads/__test__.jsonc b/tests/specs/compile/include/buffered_reads/__test__.jsonc new file mode 100644 index 00000000000000..7640fed56b4565 --- /dev/null +++ b/tests/specs/compile/include/buffered_reads/__test__.jsonc @@ -0,0 +1,27 @@ +{ + "tempDir": true, + "steps": [{ + "args": "run -A setup.js", + "output": "[WILDCARD]" + }, { + "if": "unix", + "args": "compile --allow-read=data --include data --output main main.ts", + "output": "[WILDCARD]" + }, { + "if": "unix", + "commandName": "./main", + "args": [], + "output": "[WILDCARD]", + "exitCode": 0 + }, { + "if": "windows", + "args": "compile --allow-read=data --include data --output main.exe main.ts", + "output": "[WILDCARD]" + }, { + "if": "windows", + "commandName": "./main.exe", + "args": [], + "output": "[WILDCARD]", + "exitCode": 0 + }] +} diff --git a/tests/specs/compile/include/buffered_reads/main.ts b/tests/specs/compile/include/buffered_reads/main.ts new file mode 100644 index 00000000000000..7f78eab612ddeb --- /dev/null +++ b/tests/specs/compile/include/buffered_reads/main.ts @@ -0,0 +1,57 @@ +// buffer larger than file +{ + using file = Deno.openSync(import.meta.dirname + "/data/1.txt"); + const data = new Uint8Array(13); + const len = file.readSync(data); + if (len !== 13) { + throw new Error("Unexpected read length"); + } + if (file.readSync(new Uint8Array(1024)) !== null) { + throw new Error("Unexpected."); + } + const textData = new TextDecoder().decode(data); + if (textData !== "Hello, world!") { + throw new Error("Unexpected file data (1): " + textData); + } +} + +// buffer smaller than file +{ + using file = Deno.openSync(import.meta.dirname + "/data/1.txt"); + const finalData = new Uint8Array(13); + const data = new Uint8Array(2); + let pos = 0; + while (true) { + const len = file.readSync(data); + if (len === 0 || len == null) { + break; + } + finalData.set(data.subarray(0, len), pos); + pos += len; + } + const textData = new TextDecoder().decode(finalData); + if (textData !== "Hello, world!") { + throw new Error("Unexpected file data (2): " + textData); + } +} + +// large amount of data, small reads +{ + const bytes = new Uint8Array((1024 ** 2) * 20); + using file = Deno.openSync(import.meta.dirname + "/data/2.dat"); + const buffer = new Uint8Array(2); + let pos = 0; + while (true) { + const len = file.readSync(buffer); + if (len === 0 || len == null) { + break; + } + bytes.set(buffer.subarray(0, len), pos); + pos += len; + } + for (let i = 0; i < bytes.length; i++) { + if (bytes[i] !== i % 256) { + throw new Error("Unexpected data."); + } + } +} diff --git a/tests/specs/compile/include/buffered_reads/setup.js b/tests/specs/compile/include/buffered_reads/setup.js new file mode 100644 index 00000000000000..39cd5cb8b0d058 --- /dev/null +++ b/tests/specs/compile/include/buffered_reads/setup.js @@ -0,0 +1,7 @@ +Deno.mkdirSync("data"); +Deno.writeTextFileSync("data/1.txt", "Hello, world!"); +const bytes = new Uint8Array((1024 ** 2) * 20); +for (let i = 0; i < bytes.length; i++) { + bytes[i] = i % 256; +} +Deno.writeFileSync("data/2.dat", bytes); diff --git a/tests/specs/compile/include/data_files/__test__.jsonc b/tests/specs/compile/include/data_files/__test__.jsonc new file mode 100644 index 00000000000000..5d5d967ca2c308 --- /dev/null +++ b/tests/specs/compile/include/data_files/__test__.jsonc @@ -0,0 +1,41 @@ +{ + "tempDir": true, + "tests": { + "success": { + "steps": [{ + "if": "unix", + "args": "compile --allow-read=data-file.txt --include data-file.txt --output main main.js", + "output": "[WILDCARD]" + }, { + "if": "unix", + "commandName": "./main", + "args": [], + "output": "output.out", + "exitCode": 0 + }, { + "if": "windows", + "args": "compile --allow-read=data-file.txt --include data-file.txt --output main.exe main.js", + "output": "[WILDCARD]" + }, { + "if": "windows", + "commandName": "./main.exe", + "args": [], + "output": "output.out", + "exitCode": 0 + }] + }, + "non_existent": { + "steps": [{ + "if": "unix", + "args": "compile --include does_not_exist.txt --output main main.js", + "output": "non_existent.out", + "exitCode": 1 + }, { + "if": "windows", + "args": "compile --include does_not_exist.txt --output main.exe main.js", + "output": "non_existent.out", + "exitCode": 1 + }] + } + } +} diff --git a/tests/specs/compile/include/data_files/data-file.txt b/tests/specs/compile/include/data_files/data-file.txt new file mode 100644 index 00000000000000..b14df6442ea5a1 --- /dev/null +++ b/tests/specs/compile/include/data_files/data-file.txt @@ -0,0 +1 @@ +Hi diff --git a/tests/specs/compile/include/data_files/main.js b/tests/specs/compile/include/data_files/main.js new file mode 100644 index 00000000000000..4c1f1e98d5fa5f --- /dev/null +++ b/tests/specs/compile/include/data_files/main.js @@ -0,0 +1 @@ +console.log(Deno.readTextFileSync("./data-file.txt").trim()); diff --git a/tests/specs/compile/include/data_files/non_existent.out b/tests/specs/compile/include/data_files/non_existent.out new file mode 100644 index 00000000000000..a88b441ba8cd3b --- /dev/null +++ b/tests/specs/compile/include/data_files/non_existent.out @@ -0,0 +1,6 @@ +Compile file:///[WILDLINE]/main.js to [WILDLINE] +error: Writing deno compile executable to temporary file 'main[WILDLINE]' + +Caused by: + 0: Including [WILDLINE]does_not_exist.txt + 1: [WILDLINE] diff --git a/tests/specs/compile/include/data_files/output.out b/tests/specs/compile/include/data_files/output.out new file mode 100644 index 00000000000000..b14df6442ea5a1 --- /dev/null +++ b/tests/specs/compile/include/data_files/output.out @@ -0,0 +1 @@ +Hi diff --git a/tests/specs/compile/include/folder/__test__.jsonc b/tests/specs/compile/include/folder/__test__.jsonc new file mode 100644 index 00000000000000..eeaea53b654d3c --- /dev/null +++ b/tests/specs/compile/include/folder/__test__.jsonc @@ -0,0 +1,24 @@ +{ + "tempDir": true, + "steps": [{ + "if": "unix", + "args": "compile --allow-read=data --include data --output main main.js", + "output": "[WILDCARD]" + }, { + "if": "unix", + "commandName": "./main", + "args": [], + "output": "output.out", + "exitCode": 0 + }, { + "if": "windows", + "args": "compile --allow-read=data --include data --output main.exe main.js", + "output": "[WILDCARD]" + }, { + "if": "windows", + "commandName": "./main.exe", + "args": [], + "output": "output.out", + "exitCode": 0 + }] +} diff --git a/tests/specs/compile/include/folder/data/a.txt b/tests/specs/compile/include/folder/data/a.txt new file mode 100644 index 00000000000000..78981922613b2a --- /dev/null +++ b/tests/specs/compile/include/folder/data/a.txt @@ -0,0 +1 @@ +a diff --git a/tests/specs/compile/include/folder/data/b.txt b/tests/specs/compile/include/folder/data/b.txt new file mode 100644 index 00000000000000..61780798228d17 --- /dev/null +++ b/tests/specs/compile/include/folder/data/b.txt @@ -0,0 +1 @@ +b diff --git a/tests/specs/compile/include/folder/main.js b/tests/specs/compile/include/folder/main.js new file mode 100644 index 00000000000000..831d26167f2070 --- /dev/null +++ b/tests/specs/compile/include/folder/main.js @@ -0,0 +1,8 @@ +const dataDir = import.meta.dirname + "/data"; +const files = Array.from( + Deno.readDirSync(dataDir).map((entry) => dataDir + "/" + entry.name), +); +files.sort(); +for (const file of files) { + console.log(Deno.readTextFileSync(file).trim()); +} diff --git a/tests/specs/compile/include/folder/output.out b/tests/specs/compile/include/folder/output.out new file mode 100644 index 00000000000000..422c2b7ab3b3c6 --- /dev/null +++ b/tests/specs/compile/include/folder/output.out @@ -0,0 +1,2 @@ +a +b diff --git a/tests/specs/compile/no_code_cache/__test__.jsonc b/tests/specs/compile/no_code_cache/__test__.jsonc new file mode 100644 index 00000000000000..2589054ecb6739 --- /dev/null +++ b/tests/specs/compile/no_code_cache/__test__.jsonc @@ -0,0 +1,22 @@ +{ + "tempDir": true, + "steps": [{ + "if": "unix", + "args": "compile --output no_code_cache --no-code-cache --log-level=debug main.ts", + "output": "[WILDCARD]" + }, { + "if": "unix", + "commandName": "./no_code_cache", + "args": [], + "output": "main.out" + }, { + "if": "windows", + "args": "compile --output no_code_cache.exe --no-code-cache --log-level=debug main.ts", + "output": "[WILDCARD]" + }, { + "if": "windows", + "commandName": "./no_code_cache.exe", + "args": [], + "output": "main.out" + }] +} diff --git a/tests/specs/compile/no_code_cache/main.out b/tests/specs/compile/no_code_cache/main.out new file mode 100644 index 00000000000000..e91f132825e050 --- /dev/null +++ b/tests/specs/compile/no_code_cache/main.out @@ -0,0 +1 @@ +[WILDCARD]Code cache disabled.[WILDCARD] \ No newline at end of file diff --git a/tests/specs/compile/no_code_cache/main.ts b/tests/specs/compile/no_code_cache/main.ts new file mode 100644 index 00000000000000..b1d552d30a9e03 --- /dev/null +++ b/tests/specs/compile/no_code_cache/main.ts @@ -0,0 +1,3 @@ +import { join } from "jsr:@std/url@0.220/join"; + +console.log(join); diff --git a/tests/specs/compile/detect_cjs/__test__.jsonc b/tests/specs/compile/package_json_type/__test__.jsonc similarity index 100% rename from tests/specs/compile/detect_cjs/__test__.jsonc rename to tests/specs/compile/package_json_type/__test__.jsonc diff --git a/tests/specs/compile/detect_cjs/add.js b/tests/specs/compile/package_json_type/add.js similarity index 100% rename from tests/specs/compile/detect_cjs/add.js rename to tests/specs/compile/package_json_type/add.js diff --git a/tests/specs/compile/detect_cjs/compile.out b/tests/specs/compile/package_json_type/compile.out similarity index 100% rename from tests/specs/compile/detect_cjs/compile.out rename to tests/specs/compile/package_json_type/compile.out diff --git a/tests/specs/compile/detect_cjs/main.js b/tests/specs/compile/package_json_type/main.js similarity index 100% rename from tests/specs/compile/detect_cjs/main.js rename to tests/specs/compile/package_json_type/main.js diff --git a/tests/specs/compile/detect_cjs/output.out b/tests/specs/compile/package_json_type/output.out similarity index 100% rename from tests/specs/compile/detect_cjs/output.out rename to tests/specs/compile/package_json_type/output.out diff --git a/tests/specs/compile/detect_cjs/package.json b/tests/specs/compile/package_json_type/package.json similarity index 100% rename from tests/specs/compile/detect_cjs/package.json rename to tests/specs/compile/package_json_type/package.json diff --git a/tests/specs/compile/detect_cjs/subtract.ts b/tests/specs/compile/package_json_type/subtract.ts similarity index 100% rename from tests/specs/compile/detect_cjs/subtract.ts rename to tests/specs/compile/package_json_type/subtract.ts diff --git a/tests/specs/doc/invalid_url/invalid_url.out b/tests/specs/doc/invalid_url/invalid_url.out index 038c53177a336c..17974318c7f019 100644 --- a/tests/specs/doc/invalid_url/invalid_url.out +++ b/tests/specs/doc/invalid_url/invalid_url.out @@ -1,4 +1,4 @@ error: Invalid URL 'https://raw.githubusercontent.com%2Fdyedgreen%2Fdeno-sqlite%2Frework_api%2Fmod.ts' Caused by: - invalid domain character + invalid international domain name diff --git a/tests/specs/doc/lint_html_success/lint_success_html.out b/tests/specs/doc/lint_html_success/lint_success_html.out index 783dd5927e269c..57b179e226efef 100644 --- a/tests/specs/doc/lint_html_success/lint_success_html.out +++ b/tests/specs/doc/lint_html_success/lint_success_html.out @@ -1 +1 @@ -Written 12 files to "./docs/" +Written 15 files to "./docs/" diff --git a/tests/specs/doc/wasm/__test__.jsonc b/tests/specs/doc/wasm/__test__.jsonc new file mode 100644 index 00000000000000..967bd08ea30aaa --- /dev/null +++ b/tests/specs/doc/wasm/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "doc http://localhost:4545/wasm/math.wasm", + "output": "doc.out" +} diff --git a/tests/specs/doc/wasm/doc.out b/tests/specs/doc/wasm/doc.out new file mode 100644 index 00000000000000..9e93f1b9389d01 --- /dev/null +++ b/tests/specs/doc/wasm/doc.out @@ -0,0 +1,21 @@ +Download http://localhost:4545/wasm/math.wasm +Defined in http://localhost:4545/wasm/math.wasm:2:1 + +function add(arg0: number, arg1: number): number + +Defined in http://localhost:4545/wasm/math.wasm:3:1 + +function subtract(arg0: number, arg1: number): number + +Defined in http://localhost:4545/wasm/math.wasm:4:22 + +const __data_end: number + +Defined in http://localhost:4545/wasm/math.wasm:5:22 + +const __heap_base: number + +Defined in http://localhost:4545/wasm/math.wasm:1:22 + +const memory: WebAssembly.Memory + diff --git a/tests/specs/eval/pkg_json_type_cjs/__test__.jsonc b/tests/specs/eval/pkg_json_type_cjs/__test__.jsonc new file mode 100644 index 00000000000000..cd3804d773a32c --- /dev/null +++ b/tests/specs/eval/pkg_json_type_cjs/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "eval console.log(1)", + "output": "1\n" +} diff --git a/tests/specs/eval/pkg_json_type_cjs/package.json b/tests/specs/eval/pkg_json_type_cjs/package.json new file mode 100644 index 00000000000000..5bbefffbabee39 --- /dev/null +++ b/tests/specs/eval/pkg_json_type_cjs/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/tests/specs/fmt/gitignore/.gitignore b/tests/specs/fmt/gitignore/.gitignore new file mode 100644 index 00000000000000..838458f209ac53 --- /dev/null +++ b/tests/specs/fmt/gitignore/.gitignore @@ -0,0 +1 @@ +/dist/ \ No newline at end of file diff --git a/tests/specs/fmt/gitignore/__test__.jsonc b/tests/specs/fmt/gitignore/__test__.jsonc new file mode 100644 index 00000000000000..94804c3fe19168 --- /dev/null +++ b/tests/specs/fmt/gitignore/__test__.jsonc @@ -0,0 +1,6 @@ +{ + "tempDir": true, + "args": "fmt --check", + "output": "expected.out", + "exitCode": 1 +} diff --git a/tests/specs/fmt/gitignore/dist/file1.js b/tests/specs/fmt/gitignore/dist/file1.js new file mode 100644 index 00000000000000..3ecf5aa6a07b4f --- /dev/null +++ b/tests/specs/fmt/gitignore/dist/file1.js @@ -0,0 +1,6 @@ +// This file is in `.gitignore` simulating that it's generated by a build tool +// and should not be linted +function foo( ) { + console.log( "hello") + } + \ No newline at end of file diff --git a/tests/specs/fmt/gitignore/expected.out b/tests/specs/fmt/gitignore/expected.out new file mode 100644 index 00000000000000..73568ff3a7b289 --- /dev/null +++ b/tests/specs/fmt/gitignore/expected.out @@ -0,0 +1,10 @@ + +from [WILDCARD]file2.ts: +1 | -function foo( ): any { +1 | +function foo(): any { +2 | - console.log( "hello") +2 | + console.log("hello"); +3 | - } +3 | +} + +error: Found 1 not formatted file in 1 file diff --git a/tests/specs/fmt/gitignore/file2.ts b/tests/specs/fmt/gitignore/file2.ts new file mode 100644 index 00000000000000..0e5fdd36d2736e --- /dev/null +++ b/tests/specs/fmt/gitignore/file2.ts @@ -0,0 +1,3 @@ +function foo( ): any { + console.log( "hello") + } diff --git a/tests/specs/fmt/sql/__test__.jsonc b/tests/specs/fmt/sql/__test__.jsonc new file mode 100644 index 00000000000000..27c08abd835346 --- /dev/null +++ b/tests/specs/fmt/sql/__test__.jsonc @@ -0,0 +1,29 @@ +{ + "tempDir": true, + "tests": { + "nothing": { + "args": "fmt", + "output": "Checked 7 files\n" + }, + "flag": { + "args": "fmt --unstable-sql", + "output": "[UNORDERED_START]\n[WILDLINE]badly_formatted.sql\n[WILDLINE]wrong_file_ignore.sql\n[UNORDERED_END]\nChecked 7 files\n" + }, + "config_file": { + "steps": [{ + "args": [ + "eval", + "Deno.writeTextFile('deno.json', '{\\n \"unstable\": [\"fmt-sql\"]\\n}\\n')" + ], + "output": "[WILDCARD]" + }, { + "args": "fmt", + "output": "[UNORDERED_START]\n[WILDLINE]badly_formatted.sql\n[WILDLINE]wrong_file_ignore.sql\n[UNORDERED_END]\nChecked 8 files\n" + }] + }, + "well_formatted_check": { + "args": "fmt --unstable-sql --check well_formatted.sql", + "output": "Checked 1 file\n" + } + } +} diff --git a/tests/specs/fmt/sql/badly_formatted.sql b/tests/specs/fmt/sql/badly_formatted.sql new file mode 100644 index 00000000000000..619fc7afdd20b4 --- /dev/null +++ b/tests/specs/fmt/sql/badly_formatted.sql @@ -0,0 +1 @@ +select *; \ No newline at end of file diff --git a/tests/specs/fmt/sql/ignore_file.sql b/tests/specs/fmt/sql/ignore_file.sql new file mode 100644 index 00000000000000..62418c611b17a9 --- /dev/null +++ b/tests/specs/fmt/sql/ignore_file.sql @@ -0,0 +1,3 @@ +-- deno-fmt-ignore-file + +foo%! diff --git a/tests/specs/fmt/sql/ignore_file2.sql b/tests/specs/fmt/sql/ignore_file2.sql new file mode 100644 index 00000000000000..fe9969f1d3df80 --- /dev/null +++ b/tests/specs/fmt/sql/ignore_file2.sql @@ -0,0 +1,3 @@ +--deno-fmt-ignore-file + +foo%! diff --git a/tests/specs/fmt/sql/ignore_file3.sql b/tests/specs/fmt/sql/ignore_file3.sql new file mode 100644 index 00000000000000..c87da3e591a35f --- /dev/null +++ b/tests/specs/fmt/sql/ignore_file3.sql @@ -0,0 +1,6 @@ +-- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor +-- incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +-- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +-- deno-fmt-ignore-file + + foo%! diff --git a/tests/specs/fmt/sql/ignore_file4.sql b/tests/specs/fmt/sql/ignore_file4.sql new file mode 100644 index 00000000000000..2de65712a54ec7 --- /dev/null +++ b/tests/specs/fmt/sql/ignore_file4.sql @@ -0,0 +1,3 @@ +-- deno-fmt-ignore-file Foo bar biz + + foo%! diff --git a/tests/specs/fmt/sql/well_formatted.sql b/tests/specs/fmt/sql/well_formatted.sql new file mode 100644 index 00000000000000..92ce980185f9ea --- /dev/null +++ b/tests/specs/fmt/sql/well_formatted.sql @@ -0,0 +1,4 @@ +SELECT + * +FROM + foo; diff --git a/tests/specs/fmt/sql/wrong_file_ignore.sql b/tests/specs/fmt/sql/wrong_file_ignore.sql new file mode 100644 index 00000000000000..c124855dc285c1 --- /dev/null +++ b/tests/specs/fmt/sql/wrong_file_ignore.sql @@ -0,0 +1,6 @@ +-- File ignore directive only works if it's in the first cluster +-- of comment, ie. there are no empty lines after the first n-leading lines. + +-- deno-fmt-ignore-file + + foo \ No newline at end of file diff --git a/tests/specs/info/flag/041_info_flag.out b/tests/specs/info/flag/041_info_flag.out index 72a00be303f853..48a08de4d90685 100644 --- a/tests/specs/info/flag/041_info_flag.out +++ b/tests/specs/info/flag/041_info_flag.out @@ -4,3 +4,4 @@ npm modules cache: [WILDCARD]npm Emitted modules cache: [WILDCARD]gen Language server registries cache: [WILDCARD]registries Origin storage: [WILDCARD]location_data +Web cache storage: [WILDCARD]deno_cache diff --git a/tests/specs/info/flag_location/041_info_flag_location.out b/tests/specs/info/flag_location/041_info_flag_location.out index 684db2eec5d062..d3ba01ad3567cc 100644 --- a/tests/specs/info/flag_location/041_info_flag_location.out +++ b/tests/specs/info/flag_location/041_info_flag_location.out @@ -4,4 +4,5 @@ npm modules cache: [WILDCARD]npm Emitted modules cache: [WILDCARD]gen Language server registries cache: [WILDCARD]registries Origin storage: [WILDCARD]location_data[WILDCARD] +Web cache storage: [WILDCARD]deno_cache Local Storage: [WILDCARD]location_data[WILDCARD]local_storage diff --git a/tests/specs/info/json/info_json.out b/tests/specs/info/json/info_json.out index 551f61026dad35..cc43c5f10aa4c0 100644 --- a/tests/specs/info/json/info_json.out +++ b/tests/specs/info/json/info_json.out @@ -5,5 +5,6 @@ "npmCache": "[WILDCARD]npm", "typescriptCache": "[WILDCARD]gen", "registryCache": "[WILDCARD]registries", - "originStorage": "[WILDCARD]location_data" + "originStorage": "[WILDCARD]location_data", + "webCacheStorage": [WILDCARD]deno_cache" } diff --git a/tests/specs/info/wasm_module/__test__.jsonc b/tests/specs/info/wasm_module/__test__.jsonc new file mode 100644 index 00000000000000..37a02b4484e4f8 --- /dev/null +++ b/tests/specs/info/wasm_module/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "info --allow-import main.js", + "output": "main.out" +} diff --git a/tests/specs/info/wasm_module/main.js b/tests/specs/info/wasm_module/main.js new file mode 100644 index 00000000000000..9ad66df35bdb96 --- /dev/null +++ b/tests/specs/info/wasm_module/main.js @@ -0,0 +1,7 @@ +import { + add, + subtract, +} from "http://localhost:4545/wasm/math_with_import.wasm"; + +console.log(add(1, 2)); +console.log(subtract(100, 50)); diff --git a/tests/specs/info/wasm_module/main.out b/tests/specs/info/wasm_module/main.out new file mode 100644 index 00000000000000..d8daf39409e589 --- /dev/null +++ b/tests/specs/info/wasm_module/main.out @@ -0,0 +1,10 @@ +Download http://localhost:4545/wasm/math_with_import.wasm +Download http://localhost:4545/wasm/math.ts +local: [WILDLINE]main.js +type: JavaScript +dependencies: 2 unique +size: [WILDLINE] + +file:///[WILDLINE]/main.js ([WILDLINE]) +└─┬ http://localhost:4545/wasm/math_with_import.wasm ([WILDLINE]) + └── http://localhost:4545/wasm/math.ts ([WILDLINE]) diff --git a/tests/specs/init/npm/__test__.jsonc b/tests/specs/init/npm/__test__.jsonc new file mode 100644 index 00000000000000..ccc9d181ddb6ff --- /dev/null +++ b/tests/specs/init/npm/__test__.jsonc @@ -0,0 +1,6 @@ +{ + "tempDir": true, + "args": "init --npm vite my-project", + "output": "init.out", + "exitCode": 1 +} diff --git a/tests/specs/init/npm/init.out b/tests/specs/init/npm/init.out new file mode 100644 index 00000000000000..f4ba9394375f48 --- /dev/null +++ b/tests/specs/init/npm/init.out @@ -0,0 +1 @@ +You can initialize project manually by running deno run npm:create-vite my-project and applying desired permissions. diff --git a/tests/specs/install/global/pkg_name_same_as_file/__test__.jsonc b/tests/specs/install/global/pkg_name_same_as_file/__test__.jsonc new file mode 100644 index 00000000000000..980361361a8c32 --- /dev/null +++ b/tests/specs/install/global/pkg_name_same_as_file/__test__.jsonc @@ -0,0 +1,20 @@ +{ + "tempDir": true, + "tests": { + "file_exists": { + "steps": [{ + "args": ["eval", "Deno.writeTextFileSync('cli.ts', '')"], + "output": "[WILDCARD]" + }, { + // success + "args": "install --root ./bins -g --name my-cli cli.ts", + "output": "[WILDCARD]" + }] + }, + "file_not_exists": { + "args": "install --root ./bins -g --name my-cli cli.ts", + "output": "file_not_exists.out", + "exitCode": 1 + } + } +} diff --git a/tests/specs/install/global/pkg_name_same_as_file/file_not_exists.out b/tests/specs/install/global/pkg_name_same_as_file/file_not_exists.out new file mode 100644 index 00000000000000..92a0bb8dcd7c62 --- /dev/null +++ b/tests/specs/install/global/pkg_name_same_as_file/file_not_exists.out @@ -0,0 +1 @@ +error: cli.ts is missing a prefix. Did you mean `deno install -g npm:cli.ts`? diff --git a/tests/specs/install/scripts_install_launch_cjs_temp_dir/__test__.jsonc b/tests/specs/install/scripts_install_launch_cjs_temp_dir/__test__.jsonc new file mode 100644 index 00000000000000..087d08eff06892 --- /dev/null +++ b/tests/specs/install/scripts_install_launch_cjs_temp_dir/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "tempDir": true, + "args": "install --allow-scripts", + "output": "output.out" +} diff --git a/tests/specs/install/scripts_install_launch_cjs_temp_dir/output.out b/tests/specs/install/scripts_install_launch_cjs_temp_dir/output.out new file mode 100644 index 00000000000000..d5f06cc6eac75a --- /dev/null +++ b/tests/specs/install/scripts_install_launch_cjs_temp_dir/output.out @@ -0,0 +1,4 @@ +Download http://localhost:4260/@denotest%2finstall-launch-cjs-temp-dir +Download http://localhost:4260/@denotest/install-launch-cjs-temp-dir/1.0.0.tgz +Initialize @denotest/install-launch-cjs-temp-dir@1.0.0 +Initialize @denotest/install-launch-cjs-temp-dir@1.0.0: running 'install' script diff --git a/tests/specs/install/scripts_install_launch_cjs_temp_dir/package.json b/tests/specs/install/scripts_install_launch_cjs_temp_dir/package.json new file mode 100644 index 00000000000000..71672f9bc1b353 --- /dev/null +++ b/tests/specs/install/scripts_install_launch_cjs_temp_dir/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@denotest/install-launch-cjs-temp-dir": "*" + } +} diff --git a/tests/specs/install/scripts_install_no_ext/__test__.jsonc b/tests/specs/install/scripts_install_no_ext/__test__.jsonc new file mode 100644 index 00000000000000..087d08eff06892 --- /dev/null +++ b/tests/specs/install/scripts_install_no_ext/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "tempDir": true, + "args": "install --allow-scripts", + "output": "output.out" +} diff --git a/tests/specs/install/scripts_install_no_ext/output.out b/tests/specs/install/scripts_install_no_ext/output.out new file mode 100644 index 00000000000000..074e9781216645 --- /dev/null +++ b/tests/specs/install/scripts_install_no_ext/output.out @@ -0,0 +1,4 @@ +Download http://localhost:4260/@denotest%2finstall-no-ext +Download http://localhost:4260/@denotest/install-no-ext/1.0.0.tgz +Initialize @denotest/install-no-ext@1.0.0 +Initialize @denotest/install-no-ext@1.0.0: running 'install' script diff --git a/tests/specs/install/scripts_install_no_ext/package.json b/tests/specs/install/scripts_install_no_ext/package.json new file mode 100644 index 00000000000000..7ac9ca6b29fb6d --- /dev/null +++ b/tests/specs/install/scripts_install_no_ext/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@denotest/install-no-ext": "*" + } +} diff --git a/tests/specs/lint/gitignore/.gitignore b/tests/specs/lint/gitignore/.gitignore new file mode 100644 index 00000000000000..838458f209ac53 --- /dev/null +++ b/tests/specs/lint/gitignore/.gitignore @@ -0,0 +1 @@ +/dist/ \ No newline at end of file diff --git a/tests/specs/lint/gitignore/__test__.jsonc b/tests/specs/lint/gitignore/__test__.jsonc new file mode 100644 index 00000000000000..e777fb1c1ee58e --- /dev/null +++ b/tests/specs/lint/gitignore/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "lint", + "output": "expected.out", + "exitCode": 1 +} diff --git a/tests/specs/lint/gitignore/dist/file1.js b/tests/specs/lint/gitignore/dist/file1.js new file mode 100644 index 00000000000000..669c1e2c8c2d64 --- /dev/null +++ b/tests/specs/lint/gitignore/dist/file1.js @@ -0,0 +1,3 @@ +// This file is in `.gitignore` simulating that it's generated by a build tool +// and should not be linted +while (false) {} diff --git a/tests/specs/lint/gitignore/expected.out b/tests/specs/lint/gitignore/expected.out new file mode 100644 index 00000000000000..8024b51d199555 --- /dev/null +++ b/tests/specs/lint/gitignore/expected.out @@ -0,0 +1,12 @@ +error[no-empty]: Empty block statement + --> [WILDCARD]file2.ts:3:14 + | +3 | } catch (_e) {} + | ^^ + = hint: Add code or comment to the empty block + + docs: https://lint.deno.land/rules/no-empty + + +Found 1 problem +Checked 1 file diff --git a/tests/specs/lint/gitignore/file2.ts b/tests/specs/lint/gitignore/file2.ts new file mode 100644 index 00000000000000..73c612c35fb14f --- /dev/null +++ b/tests/specs/lint/gitignore/file2.ts @@ -0,0 +1,6 @@ +try { + await Deno.open("./some/file.txt"); +} catch (_e) {} + +// deno-lint-ignore no-explicit-any +function _foo(): any {} diff --git a/tests/specs/lint/json/expected_json.out b/tests/specs/lint/json/expected_json.out index 6712c891a592dd..242c47cf561cb8 100644 --- a/tests/specs/lint/json/expected_json.out +++ b/tests/specs/lint/json/expected_json.out @@ -61,5 +61,10 @@ "file_path": "[WILDCARD]malformed.js", "message": "Expected '{', got 'B' at [WILDCARD]malformed.js:4:16\n\n export class A B C\n ~" } + ], + "checked_files": [ + "[WILDCARD]file1.js", + "[WILDCARD]file2.ts", + "[WILDCARD]malformed.js" ] } diff --git a/tests/specs/lint/node_globals_no_duplicate_imports/main.out b/tests/specs/lint/node_globals_no_duplicate_imports/main.out index 058b80795d95c2..ce5523f99c6ff8 100644 --- a/tests/specs/lint/node_globals_no_duplicate_imports/main.out +++ b/tests/specs/lint/node_globals_no_duplicate_imports/main.out @@ -4,4 +4,5 @@ const _foo = setImmediate; at [WILDCARD]main.ts:3:14 info: setImmediate is not available in the global scope in Deno. - hint: Import it explicitly with import { setImmediate } from "node:timers";. + hint: Import it explicitly with import { setImmediate } from "node:timers";, + or run again with --unstable-node-globals flag to add this global. diff --git a/tests/specs/lint/stdin_json/expected_from_stdin_json.out b/tests/specs/lint/stdin_json/expected_from_stdin_json.out index 5788248aa217c7..8db157bccbf35b 100644 --- a/tests/specs/lint/stdin_json/expected_from_stdin_json.out +++ b/tests/specs/lint/stdin_json/expected_from_stdin_json.out @@ -20,5 +20,8 @@ "hint": [WILDCARD] } ], - "errors": [] + "errors": [], + "checked_files": [ + "[WILDCARD]main.ts" + ] } diff --git a/tests/specs/lint/with_report_config_override/with_report_config_override.out b/tests/specs/lint/with_report_config_override/with_report_config_override.out index ad32e31236f25f..fb873f187e0c87 100644 --- a/tests/specs/lint/with_report_config_override/with_report_config_override.out +++ b/tests/specs/lint/with_report_config_override/with_report_config_override.out @@ -38,5 +38,8 @@ "hint": "If this is intentional, prefix it with an underscore like `_add`" } ], - "errors": [] + "errors": [], + "checked_files": [ + "[WILDCARD]a.ts" + ] } diff --git a/tests/specs/lockfile/jsx_import_source_and_types/__test__.jsonc b/tests/specs/lockfile/jsx_import_source_and_types/__test__.jsonc new file mode 100644 index 00000000000000..08ab2acf957f84 --- /dev/null +++ b/tests/specs/lockfile/jsx_import_source_and_types/__test__.jsonc @@ -0,0 +1,13 @@ +{ + "tempDir": true, + "steps": [{ + "args": "run index.tsx", + "output": "index.out" + }, { + "args": [ + "eval", + "console.log(Deno.readTextFileSync('deno.lock').trim())" + ], + "output": "deno.lock.out" + }] +} diff --git a/tests/specs/lockfile/jsx_import_source_and_types/deno.json b/tests/specs/lockfile/jsx_import_source_and_types/deno.json new file mode 100644 index 00000000000000..3755934a580804 --- /dev/null +++ b/tests/specs/lockfile/jsx_import_source_and_types/deno.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "jsx": "react-jsx", + "jsxImportSource": "npm:react", + "jsxImportSourceTypes": "npm:@types/react", + "types": [ + "npm:@types/node" + ] + } +} diff --git a/tests/specs/lockfile/jsx_import_source_and_types/deno.lock.out b/tests/specs/lockfile/jsx_import_source_and_types/deno.lock.out new file mode 100644 index 00000000000000..3a933a1aa28b9a --- /dev/null +++ b/tests/specs/lockfile/jsx_import_source_and_types/deno.lock.out @@ -0,0 +1,30 @@ +{ + "version": "4", + "specifiers": { + "npm:react@*": "18.2.0" + }, + "npm": { + "js-tokens@4.0.0": { + "integrity": "[WILDLINE]" + }, + "loose-envify@1.4.0": { + "integrity": "[WILDLINE]", + "dependencies": [ + "js-tokens" + ] + }, + "react@18.2.0": { + "integrity": "[WILDLINE]", + "dependencies": [ + "loose-envify" + ] + } + }, + "workspace": { + "dependencies": [ + "npm:@types/node@*", + "npm:@types/react@*", + "npm:react@*" + ] + } +} diff --git a/tests/specs/lockfile/jsx_import_source_and_types/index.out b/tests/specs/lockfile/jsx_import_source_and_types/index.out new file mode 100644 index 00000000000000..7fc82c71df2f74 --- /dev/null +++ b/tests/specs/lockfile/jsx_import_source_and_types/index.out @@ -0,0 +1,7 @@ +Download http://localhost:4260/react +Download http://localhost:4260/loose-envify +Download http://localhost:4260/js-tokens +Download http://localhost:4260/react/react-18.2.0.tgz +Download http://localhost:4260/loose-envify/loose-envify-1.4.0.tgz +Download http://localhost:4260/js-tokens/js-tokens-4.0.0.tgz +1 diff --git a/tests/specs/lockfile/jsx_import_source_and_types/index.tsx b/tests/specs/lockfile/jsx_import_source_and_types/index.tsx new file mode 100644 index 00000000000000..296d5492b0034a --- /dev/null +++ b/tests/specs/lockfile/jsx_import_source_and_types/index.tsx @@ -0,0 +1 @@ +console.log(1); diff --git a/tests/specs/mod.rs b/tests/specs/mod.rs index 34221dd9da63d1..b4c8781d312caf 100644 --- a/tests/specs/mod.rs +++ b/tests/specs/mod.rs @@ -119,6 +119,9 @@ struct MultiStepMetaData { /// steps. #[serde(default)] pub temp_dir: bool, + /// Whether the temporary directory should be symlinked to another path. + #[serde(default)] + pub symlinked_temp_dir: bool, /// The base environment to use for the test. #[serde(default)] pub base: Option, @@ -142,6 +145,8 @@ struct SingleTestMetaData { #[serde(default)] pub temp_dir: bool, #[serde(default)] + pub symlinked_temp_dir: bool, + #[serde(default)] pub repeat: Option, #[serde(flatten)] pub step: StepMetaData, @@ -155,6 +160,7 @@ impl SingleTestMetaData { base: self.base, cwd: None, temp_dir: self.temp_dir, + symlinked_temp_dir: self.symlinked_temp_dir, repeat: self.repeat, envs: Default::default(), steps: vec![self.step], @@ -330,6 +336,20 @@ fn test_context_from_metadata( builder = builder.cwd(cwd.to_string_lossy()); } + if metadata.symlinked_temp_dir { + // not actually deprecated, we just want to discourage its use + // because it's mostly used for testing purposes locally + #[allow(deprecated)] + { + builder = builder.use_symlinked_temp_dir(); + } + if cfg!(not(debug_assertions)) { + // panic to prevent using this on the CI as CI already uses + // a symlinked temp directory for every test + panic!("Cannot use symlinkedTempDir in release mode"); + } + } + match &metadata.base { // todo(dsherret): add bases in the future as needed Some(base) => panic!("Unknown test base: {}", base), diff --git a/tests/specs/npm/bin_entry_created_by_lifecycle/__test__.jsonc b/tests/specs/npm/bin_entry_created_by_lifecycle/__test__.jsonc new file mode 100644 index 00000000000000..665aec823d0eda --- /dev/null +++ b/tests/specs/npm/bin_entry_created_by_lifecycle/__test__.jsonc @@ -0,0 +1,29 @@ +{ + "tempDir": true, + "tests": { + "all_at_once": { + "steps": [ + { + "args": "install --allow-scripts", + "output": "all_at_once_install.out" + }, + { "args": "task run-testbin", "output": "run_testbin.out" } + ] + }, + "separate_steps": { + "steps": [ + { "if": "unix", "args": "install", "output": "install_warn.out" }, + { + "if": "windows", + "args": "install", + "output": "install_warn_windows.out" + }, + { + "args": "install --allow-scripts", + "output": "Initialize @denotest/bin-created-by-lifecycle@1.0.0: running 'install' script\n" + }, + { "args": "task run-testbin", "output": "run_testbin.out" } + ] + } + } +} diff --git a/tests/specs/npm/bin_entry_created_by_lifecycle/all_at_once_install.out b/tests/specs/npm/bin_entry_created_by_lifecycle/all_at_once_install.out new file mode 100644 index 00000000000000..bfaba3caf29e32 --- /dev/null +++ b/tests/specs/npm/bin_entry_created_by_lifecycle/all_at_once_install.out @@ -0,0 +1,4 @@ +Download http://localhost:4260/@denotest%2fbin-created-by-lifecycle +Download http://localhost:4260/@denotest/bin-created-by-lifecycle/1.0.0.tgz +Initialize @denotest/bin-created-by-lifecycle@1.0.0 +Initialize @denotest/bin-created-by-lifecycle@1.0.0: running 'install' script diff --git a/tests/specs/npm/bin_entry_created_by_lifecycle/install_warn.out b/tests/specs/npm/bin_entry_created_by_lifecycle/install_warn.out new file mode 100644 index 00000000000000..864a3f6f51770f --- /dev/null +++ b/tests/specs/npm/bin_entry_created_by_lifecycle/install_warn.out @@ -0,0 +1,10 @@ +Download http://localhost:4260/@denotest%2fbin-created-by-lifecycle +Download http://localhost:4260/@denotest/bin-created-by-lifecycle/1.0.0.tgz +Initialize @denotest/bin-created-by-lifecycle@1.0.0 +Warning Trying to set up 'testbin' bin for "[WILDCARD]bin-created-by-lifecycle", but the entry point "[WILDCARD]testbin.js" doesn't exist. +Warning The following packages contained npm lifecycle scripts (preinstall/install/postinstall) that were not executed: +┠─ npm:@denotest/bin-created-by-lifecycle@1.0.0 +┃ +┠─ This may cause the packages to not work correctly. +┖─ To run lifecycle scripts, use the `--allow-scripts` flag with `deno install`: + deno install --allow-scripts=npm:@denotest/bin-created-by-lifecycle@1.0.0 diff --git a/tests/specs/npm/bin_entry_created_by_lifecycle/install_warn_windows.out b/tests/specs/npm/bin_entry_created_by_lifecycle/install_warn_windows.out new file mode 100644 index 00000000000000..68380887354933 --- /dev/null +++ b/tests/specs/npm/bin_entry_created_by_lifecycle/install_warn_windows.out @@ -0,0 +1,9 @@ +Download http://localhost:4260/@denotest%2fbin-created-by-lifecycle +Download http://localhost:4260/@denotest/bin-created-by-lifecycle/1.0.0.tgz +Initialize @denotest/bin-created-by-lifecycle@1.0.0 +Warning The following packages contained npm lifecycle scripts (preinstall/install/postinstall) that were not executed: +┠─ npm:@denotest/bin-created-by-lifecycle@1.0.0 +┃ +┠─ This may cause the packages to not work correctly. +┖─ To run lifecycle scripts, use the `--allow-scripts` flag with `deno install`: + deno install --allow-scripts=npm:@denotest/bin-created-by-lifecycle@1.0.0 diff --git a/tests/specs/npm/bin_entry_created_by_lifecycle/package.json b/tests/specs/npm/bin_entry_created_by_lifecycle/package.json new file mode 100644 index 00000000000000..9a8941ed9c5b3e --- /dev/null +++ b/tests/specs/npm/bin_entry_created_by_lifecycle/package.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "@denotest/bin-created-by-lifecycle": "1.0.0" + }, + "scripts": { + "run-testbin": "testbin" + } +} diff --git a/tests/specs/npm/bin_entry_created_by_lifecycle/run_testbin.out b/tests/specs/npm/bin_entry_created_by_lifecycle/run_testbin.out new file mode 100644 index 00000000000000..a03f8bc58edf08 --- /dev/null +++ b/tests/specs/npm/bin_entry_created_by_lifecycle/run_testbin.out @@ -0,0 +1,2 @@ +Task run-testbin testbin +run testbin diff --git a/tests/specs/npm/dual_cjs_esm/__test__.jsonc b/tests/specs/npm/dual_cjs_esm/__test__.jsonc deleted file mode 100644 index f2b0d694e3b559..00000000000000 --- a/tests/specs/npm/dual_cjs_esm/__test__.jsonc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "args": "run -A --quiet dual_cjs_esm/main.ts", - "output": "dual_cjs_esm/main.out" -} diff --git a/tests/specs/npm/dual_cjs_esm/cjs_referrer/__test__.jsonc b/tests/specs/npm/dual_cjs_esm/cjs_referrer/__test__.jsonc new file mode 100644 index 00000000000000..de2c1a0bc5934a --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/cjs_referrer/__test__.jsonc @@ -0,0 +1,14 @@ +{ + "tempDir": true, + "tests": { + "check": { + "args": "check --node-modules-dir=auto main.cts", + "output": "check.out", + "exitCode": 1 + }, + "run": { + "args": "run --node-modules-dir=auto --allow-read main.cts", + "output": "main.out" + } + } +} diff --git a/tests/specs/npm/dual_cjs_esm/cjs_referrer/check.out b/tests/specs/npm/dual_cjs_esm/cjs_referrer/check.out new file mode 100644 index 00000000000000..267d31fb7564a4 --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/cjs_referrer/check.out @@ -0,0 +1,8 @@ +Download http://localhost:4260/@denotest%2fdual-cjs-esm +Download http://localhost:4260/@denotest/dual-cjs-esm/1.0.0.tgz +Initialize @denotest/dual-cjs-esm@1.0.0 +Check file:///[WILDLINE]/main.cts +error: TS2322 [ERROR]: Type '"cjs"' is not assignable to type '"other"'. +const kind: "other" = mod.getKind(); + ~~~~ + at file:///[WILDLINE]/main.cts:3:7 diff --git a/tests/specs/npm/dual_cjs_esm/cjs_referrer/main.cts b/tests/specs/npm/dual_cjs_esm/cjs_referrer/main.cts new file mode 100644 index 00000000000000..b8dd343f8ba4ac --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/cjs_referrer/main.cts @@ -0,0 +1,4 @@ +import mod = require("@denotest/dual-cjs-esm"); + +const kind: "other" = mod.getKind(); +console.log(kind); diff --git a/tests/specs/npm/dual_cjs_esm/cjs_referrer/main.out b/tests/specs/npm/dual_cjs_esm/cjs_referrer/main.out new file mode 100644 index 00000000000000..62ddbf47931db6 --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/cjs_referrer/main.out @@ -0,0 +1,4 @@ +Download http://localhost:4260/@denotest%2fdual-cjs-esm +Download http://localhost:4260/@denotest/dual-cjs-esm/1.0.0.tgz +Initialize @denotest/dual-cjs-esm@1.0.0 +cjs diff --git a/tests/specs/npm/dual_cjs_esm/cjs_referrer/package.json b/tests/specs/npm/dual_cjs_esm/cjs_referrer/package.json new file mode 100644 index 00000000000000..e1b1e1a5f8f1cf --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/cjs_referrer/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@denotest/dual-cjs-esm": "*" + } +} diff --git a/tests/specs/npm/dual_cjs_esm/esm_referrer/__test__.jsonc b/tests/specs/npm/dual_cjs_esm/esm_referrer/__test__.jsonc new file mode 100644 index 00000000000000..0ef147253652df --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/esm_referrer/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run -A --quiet main.ts", + "output": "main.out" +} diff --git a/tests/specs/npm/dual_cjs_esm/dual_cjs_esm/main.out b/tests/specs/npm/dual_cjs_esm/esm_referrer/main.out similarity index 100% rename from tests/specs/npm/dual_cjs_esm/dual_cjs_esm/main.out rename to tests/specs/npm/dual_cjs_esm/esm_referrer/main.out diff --git a/tests/specs/npm/dual_cjs_esm/dual_cjs_esm/main.ts b/tests/specs/npm/dual_cjs_esm/esm_referrer/main.ts similarity index 100% rename from tests/specs/npm/dual_cjs_esm/dual_cjs_esm/main.ts rename to tests/specs/npm/dual_cjs_esm/esm_referrer/main.ts diff --git a/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/__test__.jsonc b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/__test__.jsonc new file mode 100644 index 00000000000000..cf19217d18f200 --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/__test__.jsonc @@ -0,0 +1,14 @@ +{ + "tempDir": true, + "tests": { + "check": { + "args": "check --node-modules-dir=auto main.ts", + "output": "check.out", + "exitCode": 1 + }, + "run": { + "args": "run --node-modules-dir=auto --allow-read main.ts", + "output": "main.out" + } + } +} diff --git a/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/check.out b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/check.out new file mode 100644 index 00000000000000..cbd7740a9f6e90 --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/check.out @@ -0,0 +1,8 @@ +Download http://localhost:4260/@denotest%2fdual-cjs-esm +Download http://localhost:4260/@denotest/dual-cjs-esm/1.0.0.tgz +Initialize @denotest/dual-cjs-esm@1.0.0 +Check file:///[WILDLINE]/main.ts +error: TS2322 [ERROR]: Type '"cjs"' is not assignable to type '"other"'. +const kind: "other" = mod.getKind(); + ~~~~ + at file:///[WILDLINE]/main.ts:3:7 diff --git a/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/main.out b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/main.out new file mode 100644 index 00000000000000..62ddbf47931db6 --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/main.out @@ -0,0 +1,4 @@ +Download http://localhost:4260/@denotest%2fdual-cjs-esm +Download http://localhost:4260/@denotest/dual-cjs-esm/1.0.0.tgz +Initialize @denotest/dual-cjs-esm@1.0.0 +cjs diff --git a/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/main.ts b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/main.ts new file mode 100644 index 00000000000000..b8dd343f8ba4ac --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/main.ts @@ -0,0 +1,4 @@ +import mod = require("@denotest/dual-cjs-esm"); + +const kind: "other" = mod.getKind(); +console.log(kind); diff --git a/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/package.json b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/package.json new file mode 100644 index 00000000000000..419d3d9f11ee25 --- /dev/null +++ b/tests/specs/npm/dual_cjs_esm/ts_referrer_type_cjs/package.json @@ -0,0 +1,6 @@ +{ + "type": "commonjs", + "dependencies": { + "@denotest/dual-cjs-esm": "*" + } +} diff --git a/tests/specs/npm/permissions_outside_package/__test__.jsonc b/tests/specs/npm/permissions_outside_package/__test__.jsonc index 56228296b3ed95..d5f6bf49081153 100644 --- a/tests/specs/npm/permissions_outside_package/__test__.jsonc +++ b/tests/specs/npm/permissions_outside_package/__test__.jsonc @@ -1,4 +1,5 @@ { - "args": "run --allow-read permissions_outside_package/main.ts", - "output": "permissions_outside_package/main.out" + "tempDir": true, + "args": "run --allow-read --node-modules-dir=none main.ts", + "output": "main.out" } diff --git a/tests/specs/npm/permissions_outside_package/permissions_outside_package/foo/config.js b/tests/specs/npm/permissions_outside_package/foo/config.js similarity index 100% rename from tests/specs/npm/permissions_outside_package/permissions_outside_package/foo/config.js rename to tests/specs/npm/permissions_outside_package/foo/config.js diff --git a/tests/specs/npm/permissions_outside_package/foo/package.json b/tests/specs/npm/permissions_outside_package/foo/package.json new file mode 100644 index 00000000000000..95b43077e4ab30 --- /dev/null +++ b/tests/specs/npm/permissions_outside_package/foo/package.json @@ -0,0 +1,5 @@ +{ + "name": "foobar", + "version": "0.0.1", + "type": "commonjs" +} diff --git a/tests/specs/npm/permissions_outside_package/permissions_outside_package/main.out b/tests/specs/npm/permissions_outside_package/main.out similarity index 100% rename from tests/specs/npm/permissions_outside_package/permissions_outside_package/main.out rename to tests/specs/npm/permissions_outside_package/main.out diff --git a/tests/specs/npm/permissions_outside_package/permissions_outside_package/main.ts b/tests/specs/npm/permissions_outside_package/main.ts similarity index 64% rename from tests/specs/npm/permissions_outside_package/permissions_outside_package/main.ts rename to tests/specs/npm/permissions_outside_package/main.ts index 934a3eebcfaf7c..a80713fa7233d7 100644 --- a/tests/specs/npm/permissions_outside_package/permissions_outside_package/main.ts +++ b/tests/specs/npm/permissions_outside_package/main.ts @@ -1,5 +1,5 @@ import { loadConfigFile } from "npm:@denotest/permissions-outside-package"; -const fileName = `${Deno.cwd()}/permissions_outside_package/foo/config.js`; +const fileName = `${Deno.cwd()}/foo/config.js`; const config = loadConfigFile(fileName); console.log(config); diff --git a/tests/specs/npm/permissions_outside_package/package.json b/tests/specs/npm/permissions_outside_package/package.json new file mode 100644 index 00000000000000..2c63c0851048d8 --- /dev/null +++ b/tests/specs/npm/permissions_outside_package/package.json @@ -0,0 +1,2 @@ +{ +} diff --git a/tests/specs/npm/permissions_outside_package/permissions_outside_package/foo/package.json b/tests/specs/npm/permissions_outside_package/permissions_outside_package/foo/package.json deleted file mode 100644 index cc049e6ce909c0..00000000000000 --- a/tests/specs/npm/permissions_outside_package/permissions_outside_package/foo/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "foobar", - "version": "0.0.1" -} diff --git a/tests/specs/npm/pkg_index_ts_and_js/__test__.jsonc b/tests/specs/npm/pkg_index_ts_and_js/__test__.jsonc new file mode 100644 index 00000000000000..689f6e1f41512e --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run index.js", + "output": "Hi\nWasm\nJSON\n" +} diff --git a/tests/specs/npm/pkg_index_ts_and_js/index.js b/tests/specs/npm/pkg_index_ts_and_js/index.js new file mode 100644 index 00000000000000..c6ef1486e6f64b --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/index.js @@ -0,0 +1 @@ +import "package"; diff --git a/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/index.js b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/index.js new file mode 100644 index 00000000000000..4c83afcf50ad8e --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/index.js @@ -0,0 +1,3 @@ +require("./subdir"); +require("./wasm"); +require("./json"); diff --git a/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.js b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.js new file mode 100644 index 00000000000000..e998adfbdcc3b4 --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.js @@ -0,0 +1 @@ +console.log("JSON"); \ No newline at end of file diff --git a/tests/node_compat/test/common/package.json b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.json similarity index 100% rename from tests/node_compat/test/common/package.json rename to tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.json diff --git a/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/package.json b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/package.json new file mode 100644 index 00000000000000..028ddbb95b53eb --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/package.json @@ -0,0 +1,3 @@ +{ + "name": "package" +} \ No newline at end of file diff --git a/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/subdir/index.js b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/subdir/index.js new file mode 100644 index 00000000000000..1b8b5ee92b1f68 --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/subdir/index.js @@ -0,0 +1 @@ +console.log("Hi") \ No newline at end of file diff --git a/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/subdir/index.ts b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/subdir/index.ts new file mode 100644 index 00000000000000..e9cffd2de027b4 --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/subdir/index.ts @@ -0,0 +1 @@ +console.log("No"); \ No newline at end of file diff --git a/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/wasm/index.js b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/wasm/index.js new file mode 100644 index 00000000000000..9174e5fd65b085 --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/wasm/index.js @@ -0,0 +1 @@ +console.log("Wasm"); \ No newline at end of file diff --git a/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/wasm/index.wasm b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/wasm/index.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6b3950fcc5297b78e0cdfddc5b91ac72505c7c94 GIT binary patch literal 318 zcmY+8%}#?r6ov1dfkMHg)tw6ymYPaKn^x-52XNyHj2F1lTK+OKM7yGo=A(%*F>&>s zoRfSxK&D0jKo4KVFyJ7i0B~IF5Yd$g^U1Xw@acU1f^dNU^d8(v&2_6!0wfg$fN%QD zYRWBOpj1JY6gP#$P^mprr!q1uMQ|xRh%kcpaO9YdA*4=2HA671$?lgQKey(;R{WEC zR|qqujHUdjy7tgm*6=*-bX)W}Ya{%MnzE;o(Rt~Og^O{@*%&V3?1Zi!yZmOg+$GB- zx=psLO}cyBrqMcCZ{j44*Q-0YpIOo+TlL0dd(B2HW_52Vt2i#JHlxZcd~+z9m_O|| D`Uz8u literal 0 HcmV?d00001 diff --git a/tests/specs/npm/pkg_index_ts_and_js/package.json b/tests/specs/npm/pkg_index_ts_and_js/package.json new file mode 100644 index 00000000000000..f0b3ee21dd5975 --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "package": "*" + } +} diff --git a/tests/specs/npm/specifier_two_slashes/__test__.jsonc b/tests/specs/npm/specifier_two_slashes/__test__.jsonc new file mode 100644 index 00000000000000..bddbdbc1c8b227 --- /dev/null +++ b/tests/specs/npm/specifier_two_slashes/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --quiet main.ts", + "output": "3\n" +} diff --git a/tests/specs/npm/specifier_two_slashes/main.ts b/tests/specs/npm/specifier_two_slashes/main.ts new file mode 100644 index 00000000000000..ef1adceb5cad48 --- /dev/null +++ b/tests/specs/npm/specifier_two_slashes/main.ts @@ -0,0 +1,3 @@ +import { add } from "npm:@denotest/specifier-two-slashes"; + +console.log(add(1, 2)); diff --git a/tests/specs/npm/typo_in_npm/__test__.jsonc b/tests/specs/npm/typo_in_npm/__test__.jsonc new file mode 100644 index 00000000000000..03023c9e7ad918 --- /dev/null +++ b/tests/specs/npm/typo_in_npm/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "run np:cowsay", + "output": "main.out", + "exitCode": 1 +} diff --git a/tests/specs/npm/typo_in_npm/main.out b/tests/specs/npm/typo_in_npm/main.out new file mode 100644 index 00000000000000..19f17b1d05c5bb --- /dev/null +++ b/tests/specs/npm/typo_in_npm/main.out @@ -0,0 +1,8 @@ +error: Unsupported scheme "np" for module "np:cowsay". Supported schemes: + - "blob" + - "data" + - "file" + - "http" + - "https" + - "jsr" + - "npm" diff --git a/tests/specs/npm/workspace_basic/__test__.jsonc b/tests/specs/npm/workspace_basic/__test__.jsonc index 8ecde6887c6b7e..45e414564b5bfb 100644 --- a/tests/specs/npm/workspace_basic/__test__.jsonc +++ b/tests/specs/npm/workspace_basic/__test__.jsonc @@ -23,18 +23,24 @@ }] }, "exports_sub_path_not_exists": { - // TODO(2.0): this test appears legitimately broken - "ignore": true, - "args": "run b/exports-sub-path-not-exists.ts", - "output": "b/exports-sub-path-not-exists.out", - "exitCode": 1 + "steps": [{ + "args": "install", + "output": "[WILDCARD]" + }, { + "args": "run b/exports-sub-path-not-exists.ts", + "output": "b/exports-sub-path-not-exists.out", + "exitCode": 1 + }] }, "no_exports_sub_path_not_exists": { - // TODO(2.0): this test appears legitimately broken - "ignore": true, - "args": "run b/no-exports-sub-path-not-exists.ts", - "output": "b/no-exports-sub-path-not-exists.out", - "exitCode": 1 + "steps": [{ + "args": "install", + "output": "[WILDCARD]" + }, { + "args": "run b/no-exports-sub-path-not-exists.ts", + "output": "b/no-exports-sub-path-not-exists.out", + "exitCode": 1 + }] } } } diff --git a/tests/specs/npm/workspace_basic/b/no-exports-sub-path-not-exists.out b/tests/specs/npm/workspace_basic/b/no-exports-sub-path-not-exists.out index f98aa34cb405a4..a2ae57dfe63500 100644 --- a/tests/specs/npm/workspace_basic/b/no-exports-sub-path-not-exists.out +++ b/tests/specs/npm/workspace_basic/b/no-exports-sub-path-not-exists.out @@ -1,3 +1,3 @@ [# not the best error, but it did resolve because there was no exports specified] -error: Module not found "file:///[WILDLINE]/c/non-existent". +error: [ERR_MODULE_NOT_FOUND] Cannot find module 'file:///[WILDLINE]/c/non-existent' imported from 'file:///[WILDLINE]/b/no-exports-sub-path-not-exists.ts' at file:///[WILDLINE]/b/no-exports-sub-path-not-exists.ts:1:20 diff --git a/tests/specs/npm/workspace_sub_deno_json/__test__.jsonc b/tests/specs/npm/workspace_sub_deno_json/__test__.jsonc index dbf35dcb0f78e5..03c5669621a3f8 100644 --- a/tests/specs/npm/workspace_sub_deno_json/__test__.jsonc +++ b/tests/specs/npm/workspace_sub_deno_json/__test__.jsonc @@ -2,15 +2,11 @@ "tempDir": true, "tests": { "member": { - // TODO(2.0): this test appears legitimately broken - "ignore": true, - "args": "run --allow-read member/main.ts", + "args": "run --allow-read --node-modules-dir=auto member/main.ts", "output": "member.out" }, "member_with_deno_json": { - // TODO(2.0): this test appears legitimately broken - "ignore": true, - "args": "run --allow-read member_with_deno_json/main.ts", + "args": "run --allow-read --node-modules-dir=auto member_with_deno_json/main.ts", "output": "member.out" }, "non_member": { diff --git a/tests/specs/npm/workspace_sub_deno_json/member_with_deno_json/deno.jsonc b/tests/specs/npm/workspace_sub_deno_json/member_with_deno_json/deno.jsonc index e246bc65df8f44..b80ded2b1efbd8 100644 --- a/tests/specs/npm/workspace_sub_deno_json/member_with_deno_json/deno.jsonc +++ b/tests/specs/npm/workspace_sub_deno_json/member_with_deno_json/deno.jsonc @@ -1,4 +1,4 @@ { // will cause a warning - "nodeModules": "local-auto" + "nodeModulesDir": "auto" } diff --git a/tests/specs/permission/process_env_permissions/__test__.jsonc b/tests/specs/permission/process_env_permissions/__test__.jsonc new file mode 100644 index 00000000000000..d3c756e0dc7570 --- /dev/null +++ b/tests/specs/permission/process_env_permissions/__test__.jsonc @@ -0,0 +1,26 @@ +{ + "tempDir": true, + "tests": { + "deno_env_wildcard_tests": { + "envs": { + "MYAPP_HELLO": "Hello\tworld,", + "MYAPP_GOODBYE": "farewell", + "OTHER_VAR": "ignore" + }, + "steps": [ + { + "args": "run --allow-env=MYAPP_* main.js", + "output": "Hello\tworld,\nfarewell\ndone\n" + }, + { + "args": "run --allow-env main.js", + "output": "Hello\tworld,\nfarewell\ndone\n" + }, + { + "args": "run --allow-env=MYAPP_HELLO,MYAPP_GOODBYE,MYAPP_TEST,MYAPP_DONE main.js", + "output": "Hello\tworld,\nfarewell\ndone\n" + } + ] + } + } +} diff --git a/tests/specs/permission/process_env_permissions/main.js b/tests/specs/permission/process_env_permissions/main.js new file mode 100644 index 00000000000000..7a412659c9a314 --- /dev/null +++ b/tests/specs/permission/process_env_permissions/main.js @@ -0,0 +1,5 @@ +console.log(Deno.env.get("MYAPP_HELLO")); +console.log(Deno.env.get("MYAPP_GOODBYE")); +Deno.env.set("MYAPP_TEST", "done"); +Deno.env.set("MYAPP_DONE", "done"); +console.log(Deno.env.get("MYAPP_DONE")); diff --git a/tests/specs/publish/missing_exports/LICENSE b/tests/specs/publish/missing_exports/LICENSE new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/tests/specs/publish/missing_exports/__test__.jsonc b/tests/specs/publish/missing_exports/__test__.jsonc new file mode 100644 index 00000000000000..241bb87e044023 --- /dev/null +++ b/tests/specs/publish/missing_exports/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "publish --token 'sadfasdf'", + "output": "publish.out", + "exitCode": 1 +} diff --git a/tests/specs/publish/missing_exports/deno.json b/tests/specs/publish/missing_exports/deno.json new file mode 100644 index 00000000000000..4a66546360ceee --- /dev/null +++ b/tests/specs/publish/missing_exports/deno.json @@ -0,0 +1,7 @@ +{ + "name": "@foo/bar", + "version": "1.0.0", + "imports": { + "@std/http": "./std_http.ts" + } +} diff --git a/tests/specs/publish/missing_exports/mod.ts b/tests/specs/publish/missing_exports/mod.ts new file mode 100644 index 00000000000000..8d9b8a22a101a9 --- /dev/null +++ b/tests/specs/publish/missing_exports/mod.ts @@ -0,0 +1,3 @@ +export function add(a: number, b: number): number { + return a + b; +} diff --git a/tests/specs/publish/missing_exports/publish.out b/tests/specs/publish/missing_exports/publish.out new file mode 100644 index 00000000000000..ded06f638baef6 --- /dev/null +++ b/tests/specs/publish/missing_exports/publish.out @@ -0,0 +1,8 @@ +Warning "exports" field should be specified when specifying a "name". + at file:///[WILDLINE]/deno.json +error: You did not specify an entrypoint in file:///[WILDLINE]/deno.json. Add `exports` mapping in the configuration file, eg: +{ + "name": "@foo/bar", + "version": "@foo/bar", + "exports": "mod.ts" +} diff --git a/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/__test__.jsonc b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/__test__.jsonc index cee2fe12d9a4bc..91408a73020a2e 100644 --- a/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/__test__.jsonc +++ b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/__test__.jsonc @@ -1,17 +1,24 @@ { - // TODO(2.0): these tests are actually broken now, some code needs - // to be updated to make them work - "ignore": true, "tests": { "dep_and_workspace_dep": { - "args": "publish --dry-run --no-check --log-level=debug", - "cwd": "subtract", - "output": "publish-subtract.out" + "steps": [{ + "args": "install", + "output": "[WILDCARD]" + }, { + "args": "publish --dry-run --no-check --log-level=debug", + "cwd": "subtract", + "output": "publish-subtract.out" + }] }, "bare_specifier": { - "args": "publish --dry-run --no-check --log-level=debug", - "cwd": "subtract-2", - "output": "publish-subtract2.out" + "steps": [{ + "args": "install", + "output": "[WILDCARD]" + }, { + "args": "publish --dry-run --no-check --log-level=debug", + "cwd": "subtract-2", + "output": "publish-subtract2.out" + }] } } } diff --git a/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.deno.lock b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.deno.lock new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.deno.lock.poll b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.deno.lock.poll new file mode 100644 index 00000000000000..56a6051ca2b02b --- /dev/null +++ b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.deno.lock.poll @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.setup-cache.bin b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/.deno/.setup-cache.bin new file mode 100644 index 0000000000000000000000000000000000000000..4ac5fc6cf890b46738523c4d4d9d964e312f368f GIT binary patch literal 24 KcmZQzzzzTa7ytnP literal 0 HcmV?d00001 diff --git a/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/add b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/add new file mode 120000 index 00000000000000..7b086589dfdbd9 --- /dev/null +++ b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/add @@ -0,0 +1 @@ +../add \ No newline at end of file diff --git a/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/add-dep b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/add-dep new file mode 120000 index 00000000000000..7b086589dfdbd9 --- /dev/null +++ b/tests/specs/publish/npm_workspace_jsr_pkg_with_npm_dep/node_modules/add-dep @@ -0,0 +1 @@ +../add \ No newline at end of file diff --git a/tests/specs/publish/set_version/multiple_packages/LICENSE b/tests/specs/publish/set_version/multiple_packages/LICENSE new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/tests/specs/publish/set_version/multiple_packages/__test__.jsonc b/tests/specs/publish/set_version/multiple_packages/__test__.jsonc new file mode 100644 index 00000000000000..c191386d80fbc3 --- /dev/null +++ b/tests/specs/publish/set_version/multiple_packages/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "publish --set-version 1.1.0 --token 'sadfasdf'", + "output": "error_set_version.out", + "exitCode": 1 +} diff --git a/tests/specs/publish/set_version/multiple_packages/deno.json b/tests/specs/publish/set_version/multiple_packages/deno.json new file mode 100644 index 00000000000000..4b3ffe44da36d4 --- /dev/null +++ b/tests/specs/publish/set_version/multiple_packages/deno.json @@ -0,0 +1,8 @@ +{ + "workspace": { + "members": [ + "packages/package1", + "packages/package2" + ] + } +} diff --git a/tests/specs/publish/set_version/multiple_packages/error_set_version.out b/tests/specs/publish/set_version/multiple_packages/error_set_version.out new file mode 100644 index 00000000000000..098692c4c6256b --- /dev/null +++ b/tests/specs/publish/set_version/multiple_packages/error_set_version.out @@ -0,0 +1 @@ +error: Cannot use --set-version when publishing a workspace. Change your cwd to an individual package instead. diff --git a/tests/specs/publish/set_version/multiple_packages/packages/package1/deno.json b/tests/specs/publish/set_version/multiple_packages/packages/package1/deno.json new file mode 100644 index 00000000000000..737fc9c1393dc7 --- /dev/null +++ b/tests/specs/publish/set_version/multiple_packages/packages/package1/deno.json @@ -0,0 +1,7 @@ +{ + "name": "@foo/package1", + "version": "1.0.0", + "exports": { + ".": "./mod.ts" + } +} diff --git a/tests/specs/publish/set_version/multiple_packages/packages/package1/mod.ts b/tests/specs/publish/set_version/multiple_packages/packages/package1/mod.ts new file mode 100644 index 00000000000000..a2cd81bed7f3ce --- /dev/null +++ b/tests/specs/publish/set_version/multiple_packages/packages/package1/mod.ts @@ -0,0 +1,3 @@ +export function package1() { + return "package1"; +} diff --git a/tests/specs/publish/set_version/multiple_packages/packages/package2/deno.json b/tests/specs/publish/set_version/multiple_packages/packages/package2/deno.json new file mode 100644 index 00000000000000..16987e6194f3e9 --- /dev/null +++ b/tests/specs/publish/set_version/multiple_packages/packages/package2/deno.json @@ -0,0 +1,7 @@ +{ + "name": "@foo/package2", + "version": "1.0.0", + "exports": { + ".": "./mod.ts" + } +} diff --git a/tests/specs/publish/set_version/multiple_packages/packages/package2/mod.ts b/tests/specs/publish/set_version/multiple_packages/packages/package2/mod.ts new file mode 100644 index 00000000000000..6c1361aa42afdb --- /dev/null +++ b/tests/specs/publish/set_version/multiple_packages/packages/package2/mod.ts @@ -0,0 +1,3 @@ +export function package2() { + return "package2"; +} diff --git a/tests/specs/publish/set_version/success/LICENSE b/tests/specs/publish/set_version/success/LICENSE new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/tests/specs/publish/set_version/success/__test__.jsonc b/tests/specs/publish/set_version/success/__test__.jsonc new file mode 100644 index 00000000000000..6f0bf802e7290c --- /dev/null +++ b/tests/specs/publish/set_version/success/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "publish --set-version 1.1.0 --token 'sadfasdf'", + "output": "successful_set_version.out" +} diff --git a/tests/specs/publish/set_version/success/deno.json b/tests/specs/publish/set_version/success/deno.json new file mode 100644 index 00000000000000..fefab899bdbebf --- /dev/null +++ b/tests/specs/publish/set_version/success/deno.json @@ -0,0 +1,10 @@ +{ + "name": "@foo/bar", + "version": "1.0.0", + "exports": { + ".": "./mod.ts" + }, + "imports": { + "@std/http": "./std_http.ts" + } +} diff --git a/tests/specs/publish/set_version/success/mod.ts b/tests/specs/publish/set_version/success/mod.ts new file mode 100644 index 00000000000000..6e8a61bae92273 --- /dev/null +++ b/tests/specs/publish/set_version/success/mod.ts @@ -0,0 +1,7 @@ +import http from "@std/http"; + +export function foobar(): { fileServer(): void } { + return { + fileServer: http.fileServer, + }; +} diff --git a/tests/specs/publish/set_version/success/std_http.ts b/tests/specs/publish/set_version/success/std_http.ts new file mode 100644 index 00000000000000..9d57b36f34eaf9 --- /dev/null +++ b/tests/specs/publish/set_version/success/std_http.ts @@ -0,0 +1,6 @@ +// temp until we get jsr:@std/http in the test server +export default { + fileServer() { + console.log("Hi"); + }, +}; diff --git a/tests/specs/publish/set_version/success/successful_set_version.out b/tests/specs/publish/set_version/success/successful_set_version.out new file mode 100644 index 00000000000000..a5cb9aa821043e --- /dev/null +++ b/tests/specs/publish/set_version/success/successful_set_version.out @@ -0,0 +1,6 @@ +Check file:///[WILDCARD]/success/mod.ts +Checking for slow types in the public API... +Check file:///[WILDCARD]/success/mod.ts +Publishing @foo/bar@1.1.0 ... +Successfully published @foo/bar@1.1.0 +Visit http://127.0.0.1:4250/@foo/bar@1.1.0 for details diff --git a/tests/specs/run/allow_env_wildcard_worker/__test__.jsonc b/tests/specs/run/allow_env_wildcard_worker/__test__.jsonc new file mode 100644 index 00000000000000..6cfde6207f746a --- /dev/null +++ b/tests/specs/run/allow_env_wildcard_worker/__test__.jsonc @@ -0,0 +1,10 @@ +{ + "envs": { + "DENO_HELLO": "hello", + "DENO_BYE": "bye", + "AWS_HELLO": "aws" + }, + "args": "run --allow-env --allow-read --unstable-worker-options main.js", + "output": "main.out", + "exitCode": 1 +} diff --git a/tests/specs/run/allow_env_wildcard_worker/main.js b/tests/specs/run/allow_env_wildcard_worker/main.js new file mode 100644 index 00000000000000..8d1a45fa61fc52 --- /dev/null +++ b/tests/specs/run/allow_env_wildcard_worker/main.js @@ -0,0 +1,12 @@ +console.log("main1", Deno.env.get("DENO_HELLO")); +console.log("main2", Deno.env.get("DENO_BYE")); +console.log("main3", Deno.env.get("AWS_HELLO")); + +new Worker(import.meta.resolve("./worker.js"), { + type: "module", + deno: { + permissions: { + env: ["DENO_*"], + }, + }, +}); diff --git a/tests/specs/run/allow_env_wildcard_worker/main.out b/tests/specs/run/allow_env_wildcard_worker/main.out new file mode 100644 index 00000000000000..01a7c42e398be3 --- /dev/null +++ b/tests/specs/run/allow_env_wildcard_worker/main.out @@ -0,0 +1,11 @@ +main1 hello +main2 bye +main3 aws +worker1 hello +worker2 bye +error: Uncaught (in worker "") (in promise) NotCapable: Requires env access to "AWS_HELLO", run again with the --allow-env flag +console.log("worker3", Deno.env.get("AWS_HELLO")); + ^ +[WILDCARD] +error: Uncaught (in promise) Error: Unhandled error in child worker. +[WILDCARD] diff --git a/tests/specs/run/allow_env_wildcard_worker/worker.js b/tests/specs/run/allow_env_wildcard_worker/worker.js new file mode 100644 index 00000000000000..0238cbf6dc7b2d --- /dev/null +++ b/tests/specs/run/allow_env_wildcard_worker/worker.js @@ -0,0 +1,3 @@ +console.log("worker1", Deno.env.get("DENO_HELLO")); +console.log("worker2", Deno.env.get("DENO_BYE")); +console.log("worker3", Deno.env.get("AWS_HELLO")); diff --git a/tests/specs/run/env_file/__test__.jsonc b/tests/specs/run/env_file/__test__.jsonc new file mode 100644 index 00000000000000..64206216905d9f --- /dev/null +++ b/tests/specs/run/env_file/__test__.jsonc @@ -0,0 +1,20 @@ +{ + "tests": { + "basic": { + "args": "run --env=./env --allow-env env_file.ts", + "output": "env_file.out" + }, + "missing": { + "args": "run --env=./missing --allow-env env_file.ts", + "output": "env_file_missing.out" + }, + "multiple": { + "args": "run --env=./env --env=./env_one --env=./env_two --allow-env env_file.ts", + "output": "multiple_env_file.out" + }, + "unparseable": { + "args": "run --env=./env_unparseable --allow-env env_file.ts", + "output": "env_unparseable.out" + } + } +} diff --git a/tests/specs/run/env_file/env b/tests/specs/run/env_file/env new file mode 100644 index 00000000000000..c41732d30b6722 --- /dev/null +++ b/tests/specs/run/env_file/env @@ -0,0 +1,4 @@ +FOO=BAR +ANOTHER_FOO=ANOTHER_${FOO} +MULTILINE="First Line +Second Line" \ No newline at end of file diff --git a/tests/testdata/run/env_file.out b/tests/specs/run/env_file/env_file.out similarity index 100% rename from tests/testdata/run/env_file.out rename to tests/specs/run/env_file/env_file.out diff --git a/tests/testdata/run/env_file.ts b/tests/specs/run/env_file/env_file.ts similarity index 100% rename from tests/testdata/run/env_file.ts rename to tests/specs/run/env_file/env_file.ts diff --git a/tests/testdata/run/env_file_missing.out b/tests/specs/run/env_file/env_file_missing.out similarity index 71% rename from tests/testdata/run/env_file_missing.out rename to tests/specs/run/env_file/env_file_missing.out index f50c1789ee48e9..34b2bf810eda30 100644 --- a/tests/testdata/run/env_file_missing.out +++ b/tests/specs/run/env_file/env_file_missing.out @@ -1,4 +1,4 @@ -Warning The `--env-file` flag was used, but the environment file specified 'missing' was not found. +Warning The `--env-file` flag was used, but the environment file specified './missing' was not found. undefined undefined undefined diff --git a/tests/specs/run/env_file/env_one b/tests/specs/run/env_file/env_one new file mode 100644 index 00000000000000..c26038a6774243 --- /dev/null +++ b/tests/specs/run/env_file/env_one @@ -0,0 +1,2 @@ +FOO=BARBAR +ANOTHER_FOO=OVERRIDEN_BY_ENV_ONE diff --git a/tests/specs/run/env_file/env_two b/tests/specs/run/env_file/env_two new file mode 100644 index 00000000000000..fe8392c3a5c6db --- /dev/null +++ b/tests/specs/run/env_file/env_two @@ -0,0 +1 @@ +FOO=OVERRIDEN_BY_ENV_TWO diff --git a/tests/testdata/env_unparsable b/tests/specs/run/env_file/env_unparseable similarity index 100% rename from tests/testdata/env_unparsable rename to tests/specs/run/env_file/env_unparseable diff --git a/tests/specs/run/env_file/env_unparseable.out b/tests/specs/run/env_file/env_unparseable.out new file mode 100644 index 00000000000000..0a88d164e3957e --- /dev/null +++ b/tests/specs/run/env_file/env_unparseable.out @@ -0,0 +1,4 @@ +Warning Parsing failed within the specified environment file: ./env_unparseable at index: 3 of the value: c:\path +valid +undefined +undefined diff --git a/tests/specs/run/env_file/multiple_env_file.out b/tests/specs/run/env_file/multiple_env_file.out new file mode 100644 index 00000000000000..3fa97d5994b1d3 --- /dev/null +++ b/tests/specs/run/env_file/multiple_env_file.out @@ -0,0 +1,4 @@ +OVERRIDEN_BY_ENV_TWO +OVERRIDEN_BY_ENV_ONE +First Line +Second Line diff --git a/tests/specs/run/env_unparsable_file/__test__.jsonc b/tests/specs/run/env_unparsable_file/__test__.jsonc deleted file mode 100644 index bed15063565792..00000000000000 --- a/tests/specs/run/env_unparsable_file/__test__.jsonc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "args": "run --env=../../../testdata/env_unparsable --allow-env main.js", - "output": "main.out" -} diff --git a/tests/specs/run/env_unparsable_file/main.js b/tests/specs/run/env_unparsable_file/main.js deleted file mode 100644 index 48488ce72105bc..00000000000000 --- a/tests/specs/run/env_unparsable_file/main.js +++ /dev/null @@ -1,3 +0,0 @@ -console.log(Deno.env.get("FOO")); -console.log(Deno.env.get("ANOTHER_FOO")); -console.log(Deno.env.get("MULTILINE")); diff --git a/tests/specs/run/env_unparsable_file/main.out b/tests/specs/run/env_unparsable_file/main.out deleted file mode 100644 index a19ff4dd6c98c4..00000000000000 --- a/tests/specs/run/env_unparsable_file/main.out +++ /dev/null @@ -1,4 +0,0 @@ -Warning Parsing failed within the specified environment file: ../../../testdata/env_unparsable at index: 3 of the value: c:\path -valid -undefined -undefined diff --git a/tests/specs/run/import_common_js/__test__.jsonc b/tests/specs/run/import_common_js/__test__.jsonc index 6510dbad7bcd80..0602a09baa6d69 100644 --- a/tests/specs/run/import_common_js/__test__.jsonc +++ b/tests/specs/run/import_common_js/__test__.jsonc @@ -1,21 +1,27 @@ { - "steps": [ - { "args": "run -R index.cjs", "output": "index.out" }, - { "args": "run -R main.ts", "output": "main.out" }, - { + "tests": { + "cjs_entrypoint": { + "args": "run -R index.cjs", + "output": "index.out" + }, + "esm_entrypoint": { + "args": "run -R main.ts", + "output": "main.out" + }, + "module_error": { "args": "run module_error.js", "output": "module_error.out", "exitCode": 1 }, - { + "exports_error": { "args": "run exports_error.js", "output": "exports_error.out", "exitCode": 1 }, - { + "require_error": { "args": "run require_error.js", "output": "require_error.out", "exitCode": 1 } - ] + } } diff --git a/tests/specs/run/import_common_js/a.js b/tests/specs/run/import_common_js/a.js deleted file mode 100644 index c465ab588b3a6d..00000000000000 --- a/tests/specs/run/import_common_js/a.js +++ /dev/null @@ -1,7 +0,0 @@ -function foobar() { - console.log("foobar"); -} - -module.exports = { - foobar, -}; diff --git a/tests/specs/run/import_common_js/exports_error.out b/tests/specs/run/import_common_js/exports_error.out index b979cce5c78e65..baa44682be52f6 100644 --- a/tests/specs/run/import_common_js/exports_error.out +++ b/tests/specs/run/import_common_js/exports_error.out @@ -3,10 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); ^ at [WILDCARD]exports_error.js:1:23 - info: Deno supports CommonJS modules in .cjs files, or when there's a package.json - with "type": "commonjs" option and --unstable-detect-cjs flag is used. + info: Deno supports CommonJS modules in .cjs files, or when the closest + package.json has a "type": "commonjs" option. hint: Rewrite this module to ESM, or change the file extension to .cjs, - or add package.json next to the file with "type": "commonjs" option - and pass --unstable-detect-cjs flag. + or add package.json next to the file with "type": "commonjs" option. docs: https://docs.deno.com/go/commonjs diff --git a/tests/specs/run/import_common_js/index.cjs b/tests/specs/run/import_common_js/index.cjs index 18caf81e941ec7..0026e237d1c21a 100644 --- a/tests/specs/run/import_common_js/index.cjs +++ b/tests/specs/run/import_common_js/index.cjs @@ -1,9 +1,7 @@ const process = require("process"); -const a = require("./a"); console.log(process.cwd()); module.exports = { cwd: process.cwd, - foobar: a.foobar, }; diff --git a/tests/specs/run/import_common_js/index.out b/tests/specs/run/import_common_js/index.out index 3650631b7a2320..6a734b9948c861 100644 --- a/tests/specs/run/import_common_js/index.out +++ b/tests/specs/run/import_common_js/index.out @@ -1 +1 @@ -[WILDCARD]import_common_js +[WILDLINE]import_common_js diff --git a/tests/specs/run/import_common_js/main.out b/tests/specs/run/import_common_js/main.out index 03301b36209602..9df31297548e70 100644 --- a/tests/specs/run/import_common_js/main.out +++ b/tests/specs/run/import_common_js/main.out @@ -1,5 +1,3 @@ hello from foo node module [WILDCARD]import_common_js cjsModule.cwd() [WILDCARD]import_common_js -foobar -cjsModule.foobar() undefined diff --git a/tests/specs/run/import_common_js/module_error.out b/tests/specs/run/import_common_js/module_error.out index 654ee838dd13b4..957b19cb1e6857 100644 --- a/tests/specs/run/import_common_js/module_error.out +++ b/tests/specs/run/import_common_js/module_error.out @@ -3,10 +3,9 @@ module.exports = { ^ at [WILDCARD]module_error.js:1:1 - info: Deno supports CommonJS modules in .cjs files, or when there's a package.json - with "type": "commonjs" option and --unstable-detect-cjs flag is used. + info: Deno supports CommonJS modules in .cjs files, or when the closest + package.json has a "type": "commonjs" option. hint: Rewrite this module to ESM, or change the file extension to .cjs, - or add package.json next to the file with "type": "commonjs" option - and pass --unstable-detect-cjs flag. + or add package.json next to the file with "type": "commonjs" option. docs: https://docs.deno.com/go/commonjs diff --git a/tests/specs/run/import_common_js/node_modules/foo/index.mjs b/tests/specs/run/import_common_js/node_modules/foo/index.mjs index cc93554c73c3fd..7a11d39ae60266 100644 --- a/tests/specs/run/import_common_js/node_modules/foo/index.mjs +++ b/tests/specs/run/import_common_js/node_modules/foo/index.mjs @@ -10,5 +10,4 @@ export default async function () { const cjsModule = await import(url.pathToFileURL(cjsFileToImport)); console.log("cjsModule.cwd()", cjsModule.cwd()); - console.log("cjsModule.foobar()", cjsModule.foobar()); } diff --git a/tests/specs/run/import_common_js/require_error.out b/tests/specs/run/import_common_js/require_error.out index 81ffd6591f570e..e13db85e8e85df 100644 --- a/tests/specs/run/import_common_js/require_error.out +++ b/tests/specs/run/import_common_js/require_error.out @@ -3,10 +3,9 @@ const process = require("process"); ^ at [WILDCARD]require_error.js:1:17 - info: Deno supports CommonJS modules in .cjs files, or when there's a package.json - with "type": "commonjs" option and --unstable-detect-cjs flag is used. + info: Deno supports CommonJS modules in .cjs files, or when the closest + package.json has a "type": "commonjs" option. hint: Rewrite this module to ESM, or change the file extension to .cjs, - or add package.json next to the file with "type": "commonjs" option - and pass --unstable-detect-cjs flag. + or add package.json next to the file with "type": "commonjs" option. docs: https://docs.deno.com/go/commonjs diff --git a/tests/specs/run/ld_preload/env_arg.out b/tests/specs/run/ld_preload/env_arg.out index 945737e65bae03..d87a1115c66ea3 100644 --- a/tests/specs/run/ld_preload/env_arg.out +++ b/tests/specs/run/ld_preload/env_arg.out @@ -1,8 +1,8 @@ -NotCapable: Requires --allow-all permissions to spawn subprocess with LD_PRELOAD environment variable. +NotCapable: Requires --allow-run permissions to spawn subprocess with LD_PRELOAD environment variable. Alternatively, spawn with the environment variable unset. [WILDCARD] name: "NotCapable" } -NotCapable: Requires --allow-all permissions to spawn subprocess with LD_PRELOAD environment variable. +NotCapable: Requires --allow-run permissions to spawn subprocess with LD_PRELOAD environment variable. Alternatively, spawn with the environment variable unset. [WILDCARD] name: "NotCapable" } diff --git a/tests/specs/run/ld_preload/env_arg.ts b/tests/specs/run/ld_preload/env_arg.ts index d7ca1073dfa088..fe043d56dcd631 100644 --- a/tests/specs/run/ld_preload/env_arg.ts +++ b/tests/specs/run/ld_preload/env_arg.ts @@ -1,5 +1,5 @@ try { - new Deno.Command("echo", { + new Deno.Command("curl", { env: { "LD_PRELOAD": "./libpreload.so", }, @@ -10,7 +10,7 @@ try { try { Deno.run({ - cmd: ["echo"], + cmd: ["curl"], env: { "LD_PRELOAD": "./libpreload.so", }, diff --git a/tests/specs/run/ld_preload/set_with_allow_env.out b/tests/specs/run/ld_preload/set_with_allow_env.out index f89582d6c8f73a..570515fc00f8cd 100644 --- a/tests/specs/run/ld_preload/set_with_allow_env.out +++ b/tests/specs/run/ld_preload/set_with_allow_env.out @@ -1,8 +1,8 @@ -NotCapable: Requires --allow-all permissions to spawn subprocess with LD_PRELOAD environment variable. +NotCapable: Requires --allow-run permissions to spawn subprocess with LD_PRELOAD environment variable. Alternatively, spawn with the environment variable unset. [WILDCARD] name: "NotCapable" } -NotCapable: Requires --allow-all permissions to spawn subprocess with DYLD_FALLBACK_LIBRARY_PATH, LD_PRELOAD environment variables. +NotCapable: Requires --allow-run permissions to spawn subprocess with DYLD_FALLBACK_LIBRARY_PATH, LD_PRELOAD environment variables. Alternatively, spawn with these environment variables unset. [WILDCARD] name: "NotCapable" } diff --git a/tests/specs/run/node_globals_hints/buffer.out b/tests/specs/run/node_globals_hints/buffer.out index 4980e6d1293c5c..858f404ab59d40 100644 --- a/tests/specs/run/node_globals_hints/buffer.out +++ b/tests/specs/run/node_globals_hints/buffer.out @@ -4,4 +4,5 @@ Buffer; at [WILDCARD]buffer.js:1:1 info: Buffer is not available in the global scope in Deno. - hint: Import it explicitly with import { Buffer } from "node:buffer";. + hint: Import it explicitly with import { Buffer } from "node:buffer";, + or run again with --unstable-node-globals flag to add this global. diff --git a/tests/specs/run/node_globals_hints/clear_immediate.out b/tests/specs/run/node_globals_hints/clear_immediate.out index ecd34babefdcae..a973a317230e75 100644 --- a/tests/specs/run/node_globals_hints/clear_immediate.out +++ b/tests/specs/run/node_globals_hints/clear_immediate.out @@ -4,4 +4,5 @@ clearImmediate; at [WILDCARD]clear_immediate.js:1:1 info: clearImmediate is not available in the global scope in Deno. - hint: Import it explicitly with import { clearImmediate } from "node:timers";. + hint: Import it explicitly with import { clearImmediate } from "node:timers";, + or run again with --unstable-node-globals flag to add this global. diff --git a/tests/specs/run/node_globals_hints/global.out b/tests/specs/run/node_globals_hints/global.out index e090d32e29465d..ad01ac426d8f68 100644 --- a/tests/specs/run/node_globals_hints/global.out +++ b/tests/specs/run/node_globals_hints/global.out @@ -4,4 +4,5 @@ global; at [WILDCARD]global.js:1:1 info: global is not available in the global scope in Deno. - hint: Use globalThis instead, or assign globalThis.global = globalThis. + hint: Use globalThis instead, or assign globalThis.global = globalThis, + or run again with --unstable-node-globals flag to add this global. diff --git a/tests/specs/run/node_globals_hints/set_immediate.out b/tests/specs/run/node_globals_hints/set_immediate.out index 38859ff5d720da..b3feb3127de91d 100644 --- a/tests/specs/run/node_globals_hints/set_immediate.out +++ b/tests/specs/run/node_globals_hints/set_immediate.out @@ -4,4 +4,5 @@ setImmediate; at [WILDCARD]set_immediate.js:1:1 info: setImmediate is not available in the global scope in Deno. - hint: Import it explicitly with import { setImmediate } from "node:timers";. + hint: Import it explicitly with import { setImmediate } from "node:timers";, + or run again with --unstable-node-globals flag to add this global. diff --git a/tests/specs/run/npm_pkg_requires_esm_js/__test__.jsonc b/tests/specs/run/npm_pkg_requires_esm_js/__test__.jsonc new file mode 100644 index 00000000000000..3da8db40485e31 --- /dev/null +++ b/tests/specs/run/npm_pkg_requires_esm_js/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "run -A main.js", + "output": "output.out", + "exitCode": 1 +} diff --git a/tests/specs/run/npm_pkg_requires_esm_js/file.js b/tests/specs/run/npm_pkg_requires_esm_js/file.js new file mode 100644 index 00000000000000..d9536a69b3f87d --- /dev/null +++ b/tests/specs/run/npm_pkg_requires_esm_js/file.js @@ -0,0 +1 @@ +console.log(import.meta.url); diff --git a/tests/specs/run/npm_pkg_requires_esm_js/logs_require.js b/tests/specs/run/npm_pkg_requires_esm_js/logs_require.js new file mode 100644 index 00000000000000..984e1f3e74541b --- /dev/null +++ b/tests/specs/run/npm_pkg_requires_esm_js/logs_require.js @@ -0,0 +1 @@ +console.log(require); diff --git a/tests/specs/run/npm_pkg_requires_esm_js/main.js b/tests/specs/run/npm_pkg_requires_esm_js/main.js new file mode 100644 index 00000000000000..3704c8bf68031f --- /dev/null +++ b/tests/specs/run/npm_pkg_requires_esm_js/main.js @@ -0,0 +1,5 @@ +import doRequire from "package"; +import path from "node:path"; + +doRequire(path.resolve(import.meta.dirname, "file.js")); +doRequire(path.resolve(import.meta.dirname, "logs_require.js")); diff --git a/tests/specs/run/npm_pkg_requires_esm_js/node_modules/package/index.js b/tests/specs/run/npm_pkg_requires_esm_js/node_modules/package/index.js new file mode 100644 index 00000000000000..5d787237139888 --- /dev/null +++ b/tests/specs/run/npm_pkg_requires_esm_js/node_modules/package/index.js @@ -0,0 +1,3 @@ +module.exports = (file) => { + return require(file); +}; diff --git a/tests/specs/run/npm_pkg_requires_esm_js/node_modules/package/package.json b/tests/specs/run/npm_pkg_requires_esm_js/node_modules/package/package.json new file mode 100644 index 00000000000000..5723987e9f4279 --- /dev/null +++ b/tests/specs/run/npm_pkg_requires_esm_js/node_modules/package/package.json @@ -0,0 +1,4 @@ +{ + "name": "package", + "version": "1.0.0" +} \ No newline at end of file diff --git a/tests/specs/run/npm_pkg_requires_esm_js/output.out b/tests/specs/run/npm_pkg_requires_esm_js/output.out new file mode 100644 index 00000000000000..2cae7108b073d8 --- /dev/null +++ b/tests/specs/run/npm_pkg_requires_esm_js/output.out @@ -0,0 +1,12 @@ +file:///[WILDLINE]/file.js +error: Uncaught (in promise) ReferenceError: require is not defined +console.log(require); + ^ + at [WILDCARD] + + info: Deno supports CommonJS modules in .cjs files, or when the closest + package.json has a "type": "commonjs" option. + hint: Rewrite this module to ESM, + or change the file extension to .cjs, + or add package.json next to the file with "type": "commonjs" option. + docs: https://docs.deno.com/go/commonjs diff --git a/tests/specs/run/npm_pkg_requires_esm_js/package.json b/tests/specs/run/npm_pkg_requires_esm_js/package.json new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/tests/specs/run/package_json_type/commonjs/basic/deno.jsonc b/tests/specs/run/package_json_type/commonjs/basic/deno.jsonc deleted file mode 100644 index 35f64c86f49a8f..00000000000000 --- a/tests/specs/run/package_json_type/commonjs/basic/deno.jsonc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "unstable": [ - "detect-cjs" - ] -} diff --git a/tests/specs/run/package_json_type/commonjs/basic/main_mix.out b/tests/specs/run/package_json_type/commonjs/basic/main_mix.out index 78f421644cd519..65671fd618a9a2 100644 --- a/tests/specs/run/package_json_type/commonjs/basic/main_mix.out +++ b/tests/specs/run/package_json_type/commonjs/basic/main_mix.out @@ -4,10 +4,9 @@ console.log(require("./add").add(1, 2)); ^ at file:///[WILDLINE]main_mix.js:[WILDLINE] - info: Deno supports CommonJS modules in .cjs files, or when there's a package.json - with "type": "commonjs" option and --unstable-detect-cjs flag is used. + info: Deno supports CommonJS modules in .cjs files, or when the closest + package.json has a "type": "commonjs" option. hint: Rewrite this module to ESM, or change the file extension to .cjs, - or add package.json next to the file with "type": "commonjs" option - and pass --unstable-detect-cjs flag. + or add package.json next to the file with "type": "commonjs" option. docs: https://docs.deno.com/go/commonjs diff --git a/tests/specs/run/package_json_type/commonjs/jsx/deno.jsonc b/tests/specs/run/package_json_type/commonjs/jsx/deno.jsonc index 192ddb98c4130f..31d05ffb7482e1 100644 --- a/tests/specs/run/package_json_type/commonjs/jsx/deno.jsonc +++ b/tests/specs/run/package_json_type/commonjs/jsx/deno.jsonc @@ -3,8 +3,5 @@ "compilerOptions": { "jsx": "react-jsx", "jsxImportSource": "react" - }, - "unstable": [ - "detect-cjs" - ] + } } diff --git a/tests/specs/run/package_json_type/none/deno.jsonc b/tests/specs/run/package_json_type/none/deno.jsonc deleted file mode 100644 index 35f64c86f49a8f..00000000000000 --- a/tests/specs/run/package_json_type/none/deno.jsonc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "unstable": [ - "detect-cjs" - ] -} diff --git a/tests/specs/run/package_json_type/none/main_cjs.out b/tests/specs/run/package_json_type/none/main_cjs.out index 8d34808fb113f9..afa5028f4f814f 100644 --- a/tests/specs/run/package_json_type/none/main_cjs.out +++ b/tests/specs/run/package_json_type/none/main_cjs.out @@ -3,10 +3,9 @@ const { add } = require("./add"); ^ at file:///[WILDLINE] - info: Deno supports CommonJS modules in .cjs files, or when there's a package.json - with "type": "commonjs" option and --unstable-detect-cjs flag is used. + info: Deno supports CommonJS modules in .cjs files, or when the closest + package.json has a "type": "commonjs" option. hint: Rewrite this module to ESM, or change the file extension to .cjs, - or add package.json next to the file with "type": "commonjs" option - and pass --unstable-detect-cjs flag. + or add package.json next to the file with "type": "commonjs" option. docs: https://docs.deno.com/go/commonjs diff --git a/tests/specs/run/require_esm/main.out b/tests/specs/run/require_esm/main.out index 57b842b345f791..4890e1a492de05 100644 --- a/tests/specs/run/require_esm/main.out +++ b/tests/specs/run/require_esm/main.out @@ -1,13 +1,4 @@ [Module: null prototype] { sync_js: 1 } [Module: null prototype] { sync_mjs: 1 } error: Uncaught (in promise) Error: Top-level await is not allowed in synchronous evaluation - at loadESMFromCJS (node:module:[WILDCARD]) - at Module._compile (node:module:[WILDCARD]) - at Object.Module._extensions..js (node:module:[WILDCARD]) - at Module.load (node:module:[WILDCARD]) - at Function.Module._load (node:module:[WILDCARD]) - at Module.require (node:module:[WILDCARD]) - at require (node:module:[WILDCARD]) - at Object. (file:[WILDCARD]/tests/specs/run/require_esm/main.cjs:[WILDCARD]) - at Object. (file:[WILDCARD]/tests/specs/run/require_esm/main.cjs:[WILDCARD]) - at Module._compile (node:module:[WILDCARD]) + at [WILDCARD] diff --git a/tests/specs/run/stdin_type_cjs/__test__.jsonc b/tests/specs/run/stdin_type_cjs/__test__.jsonc new file mode 100644 index 00000000000000..e60af4a80335c5 --- /dev/null +++ b/tests/specs/run/stdin_type_cjs/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "run --quiet -", + "output": "1\n", + "input": "console.log(1)" +} diff --git a/tests/specs/run/stdin_type_cjs/package.json b/tests/specs/run/stdin_type_cjs/package.json new file mode 100644 index 00000000000000..5bbefffbabee39 --- /dev/null +++ b/tests/specs/run/stdin_type_cjs/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/tests/specs/run/stdin_type_cjs/stdin_read_all.ts b/tests/specs/run/stdin_type_cjs/stdin_read_all.ts new file mode 100644 index 00000000000000..2ecae40b716c3e --- /dev/null +++ b/tests/specs/run/stdin_type_cjs/stdin_read_all.ts @@ -0,0 +1 @@ +Deno.stdin.readable.pipeTo(Deno.stdout.writable); diff --git a/tests/specs/run/unstable/__test__.jsonc b/tests/specs/run/unstable/__test__.jsonc index 3ddcdb583c3da8..bceb2ac12b105e 100644 --- a/tests/specs/run/unstable/__test__.jsonc +++ b/tests/specs/run/unstable/__test__.jsonc @@ -20,6 +20,11 @@ "exitCode": 1, "output": "kv.out" }, + "node_globals": { + "args": "run --unstable-node-globals node_globals.ts", + "exitCode": 0, + "output": "node_globals.out" + }, "temporal": { "args": "run temporal.ts", "exitCode": 1, diff --git a/tests/specs/run/unstable/node_globals.out b/tests/specs/run/unstable/node_globals.out new file mode 100644 index 00000000000000..8262ace2712274 --- /dev/null +++ b/tests/specs/run/unstable/node_globals.out @@ -0,0 +1,10 @@ +global: true +Buffer: function from( + value, + encodingOrOffset, + length, +) { + return _from(value, encodingOrOffset, length); +} +setImmediate: true +clearImmediate: true diff --git a/tests/specs/run/unstable/node_globals.ts b/tests/specs/run/unstable/node_globals.ts new file mode 100644 index 00000000000000..3a000ea3417f61 --- /dev/null +++ b/tests/specs/run/unstable/node_globals.ts @@ -0,0 +1,7 @@ +import * as nodeBuffer from "node:buffer"; +import * as nodeTimers from "node:timers"; + +console.log(`global: ${globalThis === global}`); +console.log(`Buffer: ${Buffer.from}`); +console.log(`setImmediate: ${setImmediate === nodeTimers.setImmediate}`); +console.log(`clearImmediate: ${clearImmediate === nodeTimers.clearImmediate}`); diff --git a/tests/specs/run/unsupported_dynamic_import_scheme/unsupported_dynamic_import_scheme.out b/tests/specs/run/unsupported_dynamic_import_scheme/unsupported_dynamic_import_scheme.out index c708fced493a41..3bff0201f95777 100644 --- a/tests/specs/run/unsupported_dynamic_import_scheme/unsupported_dynamic_import_scheme.out +++ b/tests/specs/run/unsupported_dynamic_import_scheme/unsupported_dynamic_import_scheme.out @@ -1,7 +1,8 @@ -error: Uncaught (in promise) TypeError: Unsupported scheme "xxx" for module "xxx:". Supported schemes: [ - "data", - "blob", - "file", - "http", - "https", -] +error: Uncaught (in promise) TypeError: Unsupported scheme "xxx" for module "xxx:". Supported schemes: + - "blob" + - "data" + - "file" + - "http" + - "https" + - "jsr" + - "npm" diff --git a/tests/specs/run/wasm_module/cjs_importing/__test__.jsonc b/tests/specs/run/wasm_module/cjs_importing/__test__.jsonc new file mode 100644 index 00000000000000..9c91b736925c30 --- /dev/null +++ b/tests/specs/run/wasm_module/cjs_importing/__test__.jsonc @@ -0,0 +1,12 @@ +{ + "steps": [{ + "args": "run -A setup.ts", + "output": "[WILDCARD]" + }, { + "args": "run -A --check main.cts", + "output": "main.out" + }, { + "args": "run -A --check main.cjs", + "output": "main.out" + }] +} diff --git a/tests/specs/run/wasm_module/cjs_importing/main.cjs b/tests/specs/run/wasm_module/cjs_importing/main.cjs new file mode 100644 index 00000000000000..51d253203e735d --- /dev/null +++ b/tests/specs/run/wasm_module/cjs_importing/main.cjs @@ -0,0 +1,5 @@ +// @ts-check +const { add, subtract } = require("./math.wasm"); + +console.log(add(1, 2)); +console.log(subtract(9, 3)); diff --git a/tests/specs/run/wasm_module/cjs_importing/main.cts b/tests/specs/run/wasm_module/cjs_importing/main.cts new file mode 100644 index 00000000000000..2b22d48500aaab --- /dev/null +++ b/tests/specs/run/wasm_module/cjs_importing/main.cts @@ -0,0 +1,4 @@ +import WasmModule = require("./math.wasm"); + +console.log(WasmModule.add(1, 2)); +console.log(WasmModule.subtract(9, 3)); diff --git a/tests/specs/run/wasm_module/cjs_importing/main.out b/tests/specs/run/wasm_module/cjs_importing/main.out new file mode 100644 index 00000000000000..69dbf8112737c5 --- /dev/null +++ b/tests/specs/run/wasm_module/cjs_importing/main.out @@ -0,0 +1,3 @@ +Check file:///[WILDLINE] +3 +6 diff --git a/tests/specs/run/wasm_module/cjs_importing/math.wasm b/tests/specs/run/wasm_module/cjs_importing/math.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6b3950fcc5297b78e0cdfddc5b91ac72505c7c94 GIT binary patch literal 318 zcmY+8%}#?r6ov1dfkMHg)tw6ymYPaKn^x-52XNyHj2F1lTK+OKM7yGo=A(%*F>&>s zoRfSxK&D0jKo4KVFyJ7i0B~IF5Yd$g^U1Xw@acU1f^dNU^d8(v&2_6!0wfg$fN%QD zYRWBOpj1JY6gP#$P^mprr!q1uMQ|xRh%kcpaO9YdA*4=2HA671$?lgQKey(;R{WEC zR|qqujHUdjy7tgm*6=*-bX)W}Ya{%MnzE;o(Rt~Og^O{@*%&V3?1Zi!yZmOg+$GB- zx=psLO}cyBrqMcCZ{j44*Q-0YpIOo+TlL0dd(B2HW_52Vt2i#JHlxZcd~+z9m_O|| D`Uz8u literal 0 HcmV?d00001 diff --git a/tests/specs/run/wasm_module/cjs_importing/package.json b/tests/specs/run/wasm_module/cjs_importing/package.json new file mode 100644 index 00000000000000..b04e77362d7650 --- /dev/null +++ b/tests/specs/run/wasm_module/cjs_importing/package.json @@ -0,0 +1,4 @@ +{ + "args": "run -A main.cjs", + "output": "main.out" +} diff --git a/tests/specs/run/wasm_module/cjs_importing/setup.ts b/tests/specs/run/wasm_module/cjs_importing/setup.ts new file mode 100644 index 00000000000000..6f5c0e77819096 --- /dev/null +++ b/tests/specs/run/wasm_module/cjs_importing/setup.ts @@ -0,0 +1,7 @@ +fetch("http://localhost:4545/wasm/math.wasm").then(async (response) => { + if (!response.ok) { + throw new Error(`Failed to fetch WASM module: ${response.statusText}`); + } + using file = Deno.openSync("math.wasm", { write: true, create: true }); + await response.body!.pipeTo(file.writable); +}); diff --git a/tests/specs/run/wasm_module/import_file_not_found/__test__.jsonc b/tests/specs/run/wasm_module/import_file_not_found/__test__.jsonc new file mode 100644 index 00000000000000..a27fcfa82b7ef9 --- /dev/null +++ b/tests/specs/run/wasm_module/import_file_not_found/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "--allow-import main.js", + "output": "main.out", + "exitCode": 1 +} diff --git a/tests/specs/run/wasm_module/import_file_not_found/deno.jsonc b/tests/specs/run/wasm_module/import_file_not_found/deno.jsonc new file mode 100644 index 00000000000000..d24935d1788e63 --- /dev/null +++ b/tests/specs/run/wasm_module/import_file_not_found/deno.jsonc @@ -0,0 +1,9 @@ +{ + "lock": false, + "scopes": { + "http://localhost:4545/wasm/": { + // file won't exist + "http://localhost:4545/wasm/math.ts": "./local_math.ts" + } + } +} diff --git a/tests/specs/run/wasm_module/import_file_not_found/main.js b/tests/specs/run/wasm_module/import_file_not_found/main.js new file mode 100644 index 00000000000000..9ad66df35bdb96 --- /dev/null +++ b/tests/specs/run/wasm_module/import_file_not_found/main.js @@ -0,0 +1,7 @@ +import { + add, + subtract, +} from "http://localhost:4545/wasm/math_with_import.wasm"; + +console.log(add(1, 2)); +console.log(subtract(100, 50)); diff --git a/tests/specs/run/wasm_module/import_file_not_found/main.out b/tests/specs/run/wasm_module/import_file_not_found/main.out new file mode 100644 index 00000000000000..54343673f1ce4a --- /dev/null +++ b/tests/specs/run/wasm_module/import_file_not_found/main.out @@ -0,0 +1,3 @@ +Download http://localhost:4545/wasm/math_with_import.wasm +error: Module not found "file:///[WILDLINE]/local_math.ts". + at http://localhost:4545/wasm/math_with_import.wasm:1:8 diff --git a/tests/specs/run/wasm_module/import_named_export_not_found/__test__.jsonc b/tests/specs/run/wasm_module/import_named_export_not_found/__test__.jsonc new file mode 100644 index 00000000000000..a27fcfa82b7ef9 --- /dev/null +++ b/tests/specs/run/wasm_module/import_named_export_not_found/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "--allow-import main.js", + "output": "main.out", + "exitCode": 1 +} diff --git a/tests/specs/run/wasm_module/import_named_export_not_found/deno.jsonc b/tests/specs/run/wasm_module/import_named_export_not_found/deno.jsonc new file mode 100644 index 00000000000000..a8f541dcec215e --- /dev/null +++ b/tests/specs/run/wasm_module/import_named_export_not_found/deno.jsonc @@ -0,0 +1,8 @@ +{ + "lock": false, + "scopes": { + "http://localhost:4545/wasm/": { + "http://localhost:4545/wasm/math.ts": "./local_math.ts" + } + } +} diff --git a/tests/specs/run/wasm_module/import_named_export_not_found/local_math.ts b/tests/specs/run/wasm_module/import_named_export_not_found/local_math.ts new file mode 100644 index 00000000000000..8a72ea008be64b --- /dev/null +++ b/tests/specs/run/wasm_module/import_named_export_not_found/local_math.ts @@ -0,0 +1,7 @@ +export function addTest(a: number, b: number) { + return (a + b) * 2; +} + +export function subtractTest(a: number, b: number) { + return (a - b) / 2; +} diff --git a/tests/specs/run/wasm_module/import_named_export_not_found/main.js b/tests/specs/run/wasm_module/import_named_export_not_found/main.js new file mode 100644 index 00000000000000..9ad66df35bdb96 --- /dev/null +++ b/tests/specs/run/wasm_module/import_named_export_not_found/main.js @@ -0,0 +1,7 @@ +import { + add, + subtract, +} from "http://localhost:4545/wasm/math_with_import.wasm"; + +console.log(add(1, 2)); +console.log(subtract(100, 50)); diff --git a/tests/specs/run/wasm_module/import_named_export_not_found/main.out b/tests/specs/run/wasm_module/import_named_export_not_found/main.out new file mode 100644 index 00000000000000..f79dab7a05dbd5 --- /dev/null +++ b/tests/specs/run/wasm_module/import_named_export_not_found/main.out @@ -0,0 +1,3 @@ +Download http://localhost:4545/wasm/math_with_import.wasm +error: Uncaught SyntaxError: The requested module './math.ts' does not provide an export named 'add' + at (http://localhost:4545/wasm/math_with_import.wasm:[WILDLINE]) diff --git a/tests/specs/run/wasm_module/imports/__test__.jsonc b/tests/specs/run/wasm_module/imports/__test__.jsonc new file mode 100644 index 00000000000000..744ae74d3ec1ec --- /dev/null +++ b/tests/specs/run/wasm_module/imports/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "--allow-import main.js", + "output": "main.out" +} diff --git a/tests/specs/run/wasm_module/imports/main.js b/tests/specs/run/wasm_module/imports/main.js new file mode 100644 index 00000000000000..9ad66df35bdb96 --- /dev/null +++ b/tests/specs/run/wasm_module/imports/main.js @@ -0,0 +1,7 @@ +import { + add, + subtract, +} from "http://localhost:4545/wasm/math_with_import.wasm"; + +console.log(add(1, 2)); +console.log(subtract(100, 50)); diff --git a/tests/specs/run/wasm_module/imports/main.out b/tests/specs/run/wasm_module/imports/main.out new file mode 100644 index 00000000000000..1b1210ded47bb0 --- /dev/null +++ b/tests/specs/run/wasm_module/imports/main.out @@ -0,0 +1,4 @@ +Download http://localhost:4545/wasm/math_with_import.wasm +Download http://localhost:4545/wasm/math.ts +3 +50 diff --git a/tests/specs/run/wasm_module/integrity_check_failed/__test__.jsonc b/tests/specs/run/wasm_module/integrity_check_failed/__test__.jsonc new file mode 100644 index 00000000000000..711016d2599686 --- /dev/null +++ b/tests/specs/run/wasm_module/integrity_check_failed/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "--allow-import main.js", + "output": "main.out", + "exitCode": 10 +} diff --git a/tests/specs/run/wasm_module/integrity_check_failed/deno.json b/tests/specs/run/wasm_module/integrity_check_failed/deno.json new file mode 100644 index 00000000000000..2c63c0851048d8 --- /dev/null +++ b/tests/specs/run/wasm_module/integrity_check_failed/deno.json @@ -0,0 +1,2 @@ +{ +} diff --git a/tests/specs/run/wasm_module/integrity_check_failed/deno.lock b/tests/specs/run/wasm_module/integrity_check_failed/deno.lock new file mode 100644 index 00000000000000..adb4b91ee93934 --- /dev/null +++ b/tests/specs/run/wasm_module/integrity_check_failed/deno.lock @@ -0,0 +1,6 @@ +{ + "version": "4", + "remote": { + "http://localhost:4545/wasm/math.wasm": "c4fdd49432f1517835b93274447890007947f9d30674ab7f1474091860113d95" + } +} diff --git a/tests/specs/run/wasm_module/integrity_check_failed/main.js b/tests/specs/run/wasm_module/integrity_check_failed/main.js new file mode 100644 index 00000000000000..1e1b2629d1756d --- /dev/null +++ b/tests/specs/run/wasm_module/integrity_check_failed/main.js @@ -0,0 +1,4 @@ +import { add, subtract } from "http://localhost:4545/wasm/math.wasm"; + +console.log(add(1, 2)); +console.log(subtract(100, 50)); diff --git a/tests/specs/run/wasm_module/integrity_check_failed/main.out b/tests/specs/run/wasm_module/integrity_check_failed/main.out new file mode 100644 index 00000000000000..6434bfcf937062 --- /dev/null +++ b/tests/specs/run/wasm_module/integrity_check_failed/main.out @@ -0,0 +1,12 @@ +Download http://localhost:4545/wasm/math.wasm +error: Integrity check failed for remote specifier. The source code is invalid, as it does not match the expected hash in the lock file. + + Specifier: http://localhost:4545/wasm/math.wasm + Actual: d1643d9d4ba8f34ee5198717860cbc629013179addba6d4e347b68eb721c73b4 + Expected: c4fdd49432f1517835b93274447890007947f9d30674ab7f1474091860113d95 + +This could be caused by: + * the lock file may be corrupt + * the source itself may be corrupt + +Investigate the lockfile; delete it to regenerate the lockfile or --reload to reload the source code from the server. diff --git a/tests/specs/run/wasm_module/map_imports_via_import_map/__test__.jsonc b/tests/specs/run/wasm_module/map_imports_via_import_map/__test__.jsonc new file mode 100644 index 00000000000000..744ae74d3ec1ec --- /dev/null +++ b/tests/specs/run/wasm_module/map_imports_via_import_map/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "--allow-import main.js", + "output": "main.out" +} diff --git a/tests/specs/run/wasm_module/map_imports_via_import_map/deno.json b/tests/specs/run/wasm_module/map_imports_via_import_map/deno.json new file mode 100644 index 00000000000000..a8f541dcec215e --- /dev/null +++ b/tests/specs/run/wasm_module/map_imports_via_import_map/deno.json @@ -0,0 +1,8 @@ +{ + "lock": false, + "scopes": { + "http://localhost:4545/wasm/": { + "http://localhost:4545/wasm/math.ts": "./local_math.ts" + } + } +} diff --git a/tests/specs/run/wasm_module/map_imports_via_import_map/local_math.ts b/tests/specs/run/wasm_module/map_imports_via_import_map/local_math.ts new file mode 100644 index 00000000000000..e681c2d7dad320 --- /dev/null +++ b/tests/specs/run/wasm_module/map_imports_via_import_map/local_math.ts @@ -0,0 +1,7 @@ +export function add(a: number, b: number) { + return (a + b) * 2; +} + +export function subtract(a: number, b: number) { + return (a - b) / 2; +} diff --git a/tests/specs/run/wasm_module/map_imports_via_import_map/main.js b/tests/specs/run/wasm_module/map_imports_via_import_map/main.js new file mode 100644 index 00000000000000..9ad66df35bdb96 --- /dev/null +++ b/tests/specs/run/wasm_module/map_imports_via_import_map/main.js @@ -0,0 +1,7 @@ +import { + add, + subtract, +} from "http://localhost:4545/wasm/math_with_import.wasm"; + +console.log(add(1, 2)); +console.log(subtract(100, 50)); diff --git a/tests/specs/run/wasm_module/map_imports_via_import_map/main.out b/tests/specs/run/wasm_module/map_imports_via_import_map/main.out new file mode 100644 index 00000000000000..3a90c739aab72d --- /dev/null +++ b/tests/specs/run/wasm_module/map_imports_via_import_map/main.out @@ -0,0 +1,3 @@ +Download http://localhost:4545/wasm/math_with_import.wasm +6 +25 diff --git a/tests/specs/run/wasm_module/no_imports/__test__.jsonc b/tests/specs/run/wasm_module/no_imports/__test__.jsonc new file mode 100644 index 00000000000000..29c4a86f31dc6a --- /dev/null +++ b/tests/specs/run/wasm_module/no_imports/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --allow-import main.ts", + "output": "main.out" +} diff --git a/tests/specs/run/wasm_module/no_imports/main.out b/tests/specs/run/wasm_module/no_imports/main.out new file mode 100644 index 00000000000000..ce0d170ffdf80b --- /dev/null +++ b/tests/specs/run/wasm_module/no_imports/main.out @@ -0,0 +1,3 @@ +Download http://localhost:4545/wasm/math.wasm +3 +6 diff --git a/tests/specs/run/wasm_module/no_imports/main.ts b/tests/specs/run/wasm_module/no_imports/main.ts new file mode 100644 index 00000000000000..3cd3f675d26ba1 --- /dev/null +++ b/tests/specs/run/wasm_module/no_imports/main.ts @@ -0,0 +1,4 @@ +import { add, subtract } from "http://localhost:4545/wasm/math.wasm"; + +console.log(add(1, 2)); +console.log(subtract(8, 2)); diff --git a/tests/specs/run/wasm_module/table_global_memory/__test__.jsonc b/tests/specs/run/wasm_module/table_global_memory/__test__.jsonc new file mode 100644 index 00000000000000..55f16ed0c2eee1 --- /dev/null +++ b/tests/specs/run/wasm_module/table_global_memory/__test__.jsonc @@ -0,0 +1,13 @@ +{ + "tests": { + "run": { + "args": "run main.js", + "output": "main.out" + }, + "check": { + "args": "check check.ts", + "output": "check.out", + "exitCode": 1 + } + } +} diff --git a/tests/specs/run/wasm_module/table_global_memory/check.out b/tests/specs/run/wasm_module/table_global_memory/check.out new file mode 100644 index 00000000000000..e335a7c9070ba8 --- /dev/null +++ b/tests/specs/run/wasm_module/table_global_memory/check.out @@ -0,0 +1,14 @@ +Check file:///[WILDLINE]/check.ts +error: TS2322 [ERROR]: Type 'Function | null' is not assignable to type 'number'. + Type 'null' is not assignable to type 'number'. +const value1: number = table.get(0); + ~~~~~~ + at file:///[WILDLINE]/check.ts:2:7 + +TS2322 [ERROR]: Type 'ArrayBuffer | SharedArrayBuffer' is not assignable to type 'number'. + Type 'ArrayBuffer' is not assignable to type 'number'. +const value2: number = memory.buffer; + ~~~~~~ + at file:///[WILDLINE]/check.ts:3:7 + +Found 2 errors. diff --git a/tests/specs/run/wasm_module/table_global_memory/check.ts b/tests/specs/run/wasm_module/table_global_memory/check.ts new file mode 100644 index 00000000000000..c0e43ed2aa380d --- /dev/null +++ b/tests/specs/run/wasm_module/table_global_memory/check.ts @@ -0,0 +1,4 @@ +import { memory, table } from "./mod.wasm"; +const value1: number = table.get(0); +const value2: number = memory.buffer; +console.log(value1, value2); diff --git a/tests/specs/run/wasm_module/table_global_memory/main.js b/tests/specs/run/wasm_module/table_global_memory/main.js new file mode 100644 index 00000000000000..a5ff412a922246 --- /dev/null +++ b/tests/specs/run/wasm_module/table_global_memory/main.js @@ -0,0 +1,2 @@ +import * as wasm from "./mod.wasm"; +console.log(wasm); diff --git a/tests/specs/run/wasm_module/table_global_memory/main.out b/tests/specs/run/wasm_module/table_global_memory/main.out new file mode 100644 index 00000000000000..c095b0dd9298d2 --- /dev/null +++ b/tests/specs/run/wasm_module/table_global_memory/main.out @@ -0,0 +1,6 @@ +[Module: null prototype] { + func: [Function: 0], + global: Global [WebAssembly.Global] {}, + memory: Memory [WebAssembly.Memory] {}, + table: Table [WebAssembly.Table] {} +} diff --git a/tests/specs/run/wasm_module/table_global_memory/mod.wasm b/tests/specs/run/wasm_module/table_global_memory/mod.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a99e01c5dc23e9d59fbc0c399fe5343f233dde95 GIT binary patch literal 80 zcmWN_yAgmO5Cy>ZyyKjaF6_ik1P4t(96y1Pt;>dsa1{ceat5R$RCxeS+M4mh1mBOU b>$5Md?+|k$tfW%Uw}WlD#*hVrqX7N~p~ws^ literal 0 HcmV?d00001 diff --git a/tests/specs/run/wasm_module/table_global_memory/mod.wat b/tests/specs/run/wasm_module/table_global_memory/mod.wat new file mode 100644 index 00000000000000..d2a92f0ac1518b --- /dev/null +++ b/tests/specs/run/wasm_module/table_global_memory/mod.wat @@ -0,0 +1,6 @@ +(module + (func (export "func") unreachable) + (table (export "table") 0 funcref) + (memory (export "memory") 0) + (global (export "global") i32 i32.const 0) +) diff --git a/tests/specs/run/worker_close_in_wasm_reactions/close_in_wasm_reactions.js b/tests/specs/run/worker_close_in_wasm_reactions/close_in_wasm_reactions.js index abe5731085bff8..2cb0e4a7680217 100644 --- a/tests/specs/run/worker_close_in_wasm_reactions/close_in_wasm_reactions.js +++ b/tests/specs/run/worker_close_in_wasm_reactions/close_in_wasm_reactions.js @@ -1,6 +1,6 @@ // https://github.com/denoland/deno/issues/12263 // Test for a panic that happens when a worker is closed in the reactions of a -// WASM async operation. +// Wasm async operation. // The minimum valid wasm module, plus two additional zero bytes. const buffer = new Uint8Array([ diff --git a/tests/specs/run/worker_close_in_wasm_reactions/worker_close_in_wasm_reactions.js b/tests/specs/run/worker_close_in_wasm_reactions/worker_close_in_wasm_reactions.js index 828320a240b1fa..2f62707efff67b 100644 --- a/tests/specs/run/worker_close_in_wasm_reactions/worker_close_in_wasm_reactions.js +++ b/tests/specs/run/worker_close_in_wasm_reactions/worker_close_in_wasm_reactions.js @@ -2,7 +2,7 @@ // https://github.com/denoland/deno/issues/12263 // Test for a panic that happens when a worker is closed in the reactions of a -// WASM async operation. +// Wasm async operation. new Worker( import.meta.resolve("./close_in_wasm_reactions.js"), diff --git a/tests/specs/schema.json b/tests/specs/schema.json index 8f3953ee44477e..2b35d9bd7dba4b 100644 --- a/tests/specs/schema.json +++ b/tests/specs/schema.json @@ -36,6 +36,9 @@ "flaky": { "type": "boolean" }, + "symlinkedTempDir": { + "type": "boolean" + }, "if": { "type": "string", "examples": [ diff --git a/tests/specs/task/deno_json_lifecycle_script_names/__test__.jsonc b/tests/specs/task/deno_json_lifecycle_script_names/__test__.jsonc new file mode 100644 index 00000000000000..d22f77cc2b759e --- /dev/null +++ b/tests/specs/task/deno_json_lifecycle_script_names/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "task test", + "output": "bin.out", + "exitCode": 0 +} diff --git a/tests/specs/task/deno_json_lifecycle_script_names/bin.out b/tests/specs/task/deno_json_lifecycle_script_names/bin.out new file mode 100644 index 00000000000000..ad66595f1ed77e --- /dev/null +++ b/tests/specs/task/deno_json_lifecycle_script_names/bin.out @@ -0,0 +1,2 @@ +Task test echo 'test' +test diff --git a/tests/specs/task/deno_json_lifecycle_script_names/deno.jsonc b/tests/specs/task/deno_json_lifecycle_script_names/deno.jsonc new file mode 100644 index 00000000000000..de2f8be880b051 --- /dev/null +++ b/tests/specs/task/deno_json_lifecycle_script_names/deno.jsonc @@ -0,0 +1,7 @@ +{ + "task": { + // should not execute this one because it's in a deno.json + // and not in the package.json + "pretest": "echo 'should not be in output'" + } +} diff --git a/tests/specs/task/deno_json_lifecycle_script_names/package.json b/tests/specs/task/deno_json_lifecycle_script_names/package.json new file mode 100644 index 00000000000000..e66cb27e3d21fe --- /dev/null +++ b/tests/specs/task/deno_json_lifecycle_script_names/package.json @@ -0,0 +1,5 @@ +{ + "scripts": { + "test": "echo 'test'" + } +} diff --git a/tests/specs/task/dependencies/__test__.jsonc b/tests/specs/task/dependencies/__test__.jsonc new file mode 100644 index 00000000000000..38d085d796cc2f --- /dev/null +++ b/tests/specs/task/dependencies/__test__.jsonc @@ -0,0 +1,61 @@ +{ + "tests": { + "basic1": { + "cwd": "basic1", + "tempDir": true, + "args": "task run", + "output": "./basic1.out" + }, + "basic2": { + "cwd": "basic2", + "tempDir": true, + "args": "task run", + "output": "./basic2.out" + }, + "cross_package": { + "cwd": "cross_package/package1", + "tempDir": true, + "args": "task run", + "output": "./cross_package.out", + "exitCode": 1 + }, + "diamond": { + "cwd": "diamond", + "tempDir": true, + "args": "task a", + "output": "./diamond.out" + }, + "diamond_list": { + "cwd": "diamond", + "tempDir": true, + "args": "task", + "output": "./diamond_list.out" + }, + "diamond_big": { + "cwd": "diamond_big", + "tempDir": true, + "args": "task a", + "output": "./diamond_big.out" + }, + "diamond_big_list": { + "cwd": "diamond_big", + "tempDir": true, + "args": "task", + "output": "./diamond_big_list.out" + }, + "cycle": { + "cwd": "cycle", + "tempDir": true, + "output": "./cycle.out", + "args": "task a", + "exitCode": 1 + }, + "cycle_2": { + "cwd": "cycle_2", + "tempDir": true, + "args": "task a", + "output": "./cycle_2.out", + "exitCode": 1 + } + } +} diff --git a/tests/specs/task/dependencies/basic1.out b/tests/specs/task/dependencies/basic1.out new file mode 100644 index 00000000000000..8c31d02b4efcf0 --- /dev/null +++ b/tests/specs/task/dependencies/basic1.out @@ -0,0 +1,12 @@ +Task build1 deno run ../build1.js +Task build2 deno run ../build2.js +[UNORDERED_START] +Starting build1 +build1 performing more work... +build1 finished +Starting build2 +build2 performing more work... +build2 finished +[UNORDERED_END] +Task run deno run ../run.js +run finished diff --git a/tests/specs/task/dependencies/basic1/deno.json b/tests/specs/task/dependencies/basic1/deno.json new file mode 100644 index 00000000000000..16bb9937e47047 --- /dev/null +++ b/tests/specs/task/dependencies/basic1/deno.json @@ -0,0 +1,10 @@ +{ + "tasks": { + "build1": "deno run ../build1.js", + "build2": "deno run ../build2.js", + "run": { + "command": "deno run ../run.js", + "dependencies": ["build1", "build2"] + } + } +} diff --git a/tests/specs/task/dependencies/basic2.out b/tests/specs/task/dependencies/basic2.out new file mode 100644 index 00000000000000..24ccd0eb03ace0 --- /dev/null +++ b/tests/specs/task/dependencies/basic2.out @@ -0,0 +1,10 @@ +Task build1 deno run ../build1.js +Starting build1 +build1 performing more work... +build1 finished +Task build2 deno run ../build2.js +Starting build2 +build2 performing more work... +build2 finished +Task run deno run ../run.js +run finished diff --git a/tests/specs/task/dependencies/basic2/deno.json b/tests/specs/task/dependencies/basic2/deno.json new file mode 100644 index 00000000000000..9a54926dd393a1 --- /dev/null +++ b/tests/specs/task/dependencies/basic2/deno.json @@ -0,0 +1,13 @@ +{ + "tasks": { + "build1": "deno run ../build1.js", + "build2": { + "command": "deno run ../build2.js", + "dependencies": ["build1"] + }, + "run": { + "command": "deno run ../run.js", + "dependencies": ["build2"] + } + } +} diff --git a/tests/specs/task/dependencies/build1.js b/tests/specs/task/dependencies/build1.js new file mode 100644 index 00000000000000..d14fb401a31995 --- /dev/null +++ b/tests/specs/task/dependencies/build1.js @@ -0,0 +1,9 @@ +import { randomTimeout } from "./util.js"; + +console.log("Starting build1"); + +await randomTimeout(500, 750); +console.log("build1 performing more work..."); +await randomTimeout(500, 750); + +console.log("build1 finished"); diff --git a/tests/specs/task/dependencies/build2.js b/tests/specs/task/dependencies/build2.js new file mode 100644 index 00000000000000..3032a099ae31d9 --- /dev/null +++ b/tests/specs/task/dependencies/build2.js @@ -0,0 +1,9 @@ +import { randomTimeout } from "./util.js"; + +console.log("Starting build2"); + +await randomTimeout(250, 750); +console.log("build2 performing more work..."); +await randomTimeout(250, 750); + +console.log("build2 finished"); diff --git a/tests/specs/task/dependencies/cross_package.out b/tests/specs/task/dependencies/cross_package.out new file mode 100644 index 00000000000000..a57f4de9ff6fe5 --- /dev/null +++ b/tests/specs/task/dependencies/cross_package.out @@ -0,0 +1,5 @@ +Task not found: ../package2:run +Available tasks: +- run + deno run.js + depends on: ../package2:run diff --git a/tests/specs/task/dependencies/cross_package/package1/deno.json b/tests/specs/task/dependencies/cross_package/package1/deno.json new file mode 100644 index 00000000000000..6684a1e2c4490f --- /dev/null +++ b/tests/specs/task/dependencies/cross_package/package1/deno.json @@ -0,0 +1,8 @@ +{ + "tasks": { + "run": { + "command": "deno run.js", + "dependencies": ["../package2:run"] + } + } +} diff --git a/tests/specs/task/dependencies/cross_package/package2/deno.json b/tests/specs/task/dependencies/cross_package/package2/deno.json new file mode 100644 index 00000000000000..e45ec398f61065 --- /dev/null +++ b/tests/specs/task/dependencies/cross_package/package2/deno.json @@ -0,0 +1,5 @@ +{ + "tasks": { + "run": "deno run.js" + } +} diff --git a/tests/specs/task/dependencies/cycle.out b/tests/specs/task/dependencies/cycle.out new file mode 100644 index 00000000000000..33352b0bbc5f2c --- /dev/null +++ b/tests/specs/task/dependencies/cycle.out @@ -0,0 +1 @@ +Task cycle detected: a -> a diff --git a/tests/specs/task/dependencies/cycle/a.js b/tests/specs/task/dependencies/cycle/a.js new file mode 100644 index 00000000000000..688695558e9ffc --- /dev/null +++ b/tests/specs/task/dependencies/cycle/a.js @@ -0,0 +1 @@ +console.log("Running a"); diff --git a/tests/specs/task/dependencies/cycle/deno.jsonc b/tests/specs/task/dependencies/cycle/deno.jsonc new file mode 100644 index 00000000000000..31e67488cbd7c5 --- /dev/null +++ b/tests/specs/task/dependencies/cycle/deno.jsonc @@ -0,0 +1,8 @@ +{ + "tasks": { + "a": { + "command": "deno run a.js", + "dependencies": ["a"] + } + } +} diff --git a/tests/specs/task/dependencies/cycle_2.out b/tests/specs/task/dependencies/cycle_2.out new file mode 100644 index 00000000000000..89ef04a00ba922 --- /dev/null +++ b/tests/specs/task/dependencies/cycle_2.out @@ -0,0 +1 @@ +Task cycle detected: a -> b -> a diff --git a/tests/specs/task/dependencies/cycle_2/a.js b/tests/specs/task/dependencies/cycle_2/a.js new file mode 100644 index 00000000000000..688695558e9ffc --- /dev/null +++ b/tests/specs/task/dependencies/cycle_2/a.js @@ -0,0 +1 @@ +console.log("Running a"); diff --git a/tests/specs/task/dependencies/cycle_2/b.js b/tests/specs/task/dependencies/cycle_2/b.js new file mode 100644 index 00000000000000..ed1addf1a70e1d --- /dev/null +++ b/tests/specs/task/dependencies/cycle_2/b.js @@ -0,0 +1 @@ +console.log("Running b"); diff --git a/tests/specs/task/dependencies/cycle_2/deno.jsonc b/tests/specs/task/dependencies/cycle_2/deno.jsonc new file mode 100644 index 00000000000000..5a5d38ec9cd9e7 --- /dev/null +++ b/tests/specs/task/dependencies/cycle_2/deno.jsonc @@ -0,0 +1,12 @@ +{ + "tasks": { + "a": { + "command": "deno run a.js", + "dependencies": ["b"] + }, + "b": { + "command": "deno run b.js", + "dependencies": ["a"] + } + } +} diff --git a/tests/specs/task/dependencies/diamond.out b/tests/specs/task/dependencies/diamond.out new file mode 100644 index 00000000000000..75b06a35b2051c --- /dev/null +++ b/tests/specs/task/dependencies/diamond.out @@ -0,0 +1,10 @@ +Task d deno run d.js +Running d +[UNORDERED_START] +Task b deno run b.js +Running b +Task c deno run c.js +Running c +[UNORDERED_END] +Task a deno run a.js +Running a diff --git a/tests/specs/task/dependencies/diamond/a.js b/tests/specs/task/dependencies/diamond/a.js new file mode 100644 index 00000000000000..688695558e9ffc --- /dev/null +++ b/tests/specs/task/dependencies/diamond/a.js @@ -0,0 +1 @@ +console.log("Running a"); diff --git a/tests/specs/task/dependencies/diamond/b.js b/tests/specs/task/dependencies/diamond/b.js new file mode 100644 index 00000000000000..ed1addf1a70e1d --- /dev/null +++ b/tests/specs/task/dependencies/diamond/b.js @@ -0,0 +1 @@ +console.log("Running b"); diff --git a/tests/specs/task/dependencies/diamond/c.js b/tests/specs/task/dependencies/diamond/c.js new file mode 100644 index 00000000000000..194d656be66e5a --- /dev/null +++ b/tests/specs/task/dependencies/diamond/c.js @@ -0,0 +1 @@ +console.log("Running c"); diff --git a/tests/specs/task/dependencies/diamond/d.js b/tests/specs/task/dependencies/diamond/d.js new file mode 100644 index 00000000000000..a9f231f83d9e3b --- /dev/null +++ b/tests/specs/task/dependencies/diamond/d.js @@ -0,0 +1 @@ +console.log("Running d"); diff --git a/tests/specs/task/dependencies/diamond/deno.jsonc b/tests/specs/task/dependencies/diamond/deno.jsonc new file mode 100644 index 00000000000000..07d0a917752d88 --- /dev/null +++ b/tests/specs/task/dependencies/diamond/deno.jsonc @@ -0,0 +1,22 @@ +{ + // a + // / \ + // b c + // \ / + // d + "tasks": { + "a": { + "command": "deno run a.js", + "dependencies": ["b", "c"] + }, + "b": { + "command": "deno run b.js", + "dependencies": ["d"] + }, + "c": { + "command": "deno run c.js", + "dependencies": ["d"] + }, + "d": "deno run d.js" + } +} diff --git a/tests/specs/task/dependencies/diamond_big.out b/tests/specs/task/dependencies/diamond_big.out new file mode 100644 index 00000000000000..f0b827b0da7291 --- /dev/null +++ b/tests/specs/task/dependencies/diamond_big.out @@ -0,0 +1,13 @@ +Task e deno run e.js +Running e +[UNORDERED_START] +Task b deno run b.js +Running b +Task d deno run d.js +Running d +Task c deno run c.js +Running c +Finished b +[UNORDERED_END] +Task a deno run a.js +Running a diff --git a/tests/specs/task/dependencies/diamond_big/a.js b/tests/specs/task/dependencies/diamond_big/a.js new file mode 100644 index 00000000000000..688695558e9ffc --- /dev/null +++ b/tests/specs/task/dependencies/diamond_big/a.js @@ -0,0 +1 @@ +console.log("Running a"); diff --git a/tests/specs/task/dependencies/diamond_big/b.js b/tests/specs/task/dependencies/diamond_big/b.js new file mode 100644 index 00000000000000..4b00ef56923cf9 --- /dev/null +++ b/tests/specs/task/dependencies/diamond_big/b.js @@ -0,0 +1,4 @@ +console.log("Running b"); +setTimeout(() => { + console.log("Finished b"); +}, 10); diff --git a/tests/specs/task/dependencies/diamond_big/c.js b/tests/specs/task/dependencies/diamond_big/c.js new file mode 100644 index 00000000000000..194d656be66e5a --- /dev/null +++ b/tests/specs/task/dependencies/diamond_big/c.js @@ -0,0 +1 @@ +console.log("Running c"); diff --git a/tests/specs/task/dependencies/diamond_big/d.js b/tests/specs/task/dependencies/diamond_big/d.js new file mode 100644 index 00000000000000..a9f231f83d9e3b --- /dev/null +++ b/tests/specs/task/dependencies/diamond_big/d.js @@ -0,0 +1 @@ +console.log("Running d"); diff --git a/tests/specs/task/dependencies/diamond_big/deno.jsonc b/tests/specs/task/dependencies/diamond_big/deno.jsonc new file mode 100644 index 00000000000000..28ea7f69546c90 --- /dev/null +++ b/tests/specs/task/dependencies/diamond_big/deno.jsonc @@ -0,0 +1,28 @@ +{ + // a + // / \ + // b c + // | | + // | d + // \ / + // e + "tasks": { + "a": { + "command": "deno run a.js", + "dependencies": ["b", "c"] + }, + "b": { + "command": "deno run b.js", + "dependencies": ["e"] + }, + "c": { + "command": "deno run c.js", + "dependencies": ["d"] + }, + "d": { + "command": "deno run d.js", + "dependencies": ["e"] + }, + "e": "deno run e.js" + } +} diff --git a/tests/specs/task/dependencies/diamond_big/e.js b/tests/specs/task/dependencies/diamond_big/e.js new file mode 100644 index 00000000000000..b36066c3d7303f --- /dev/null +++ b/tests/specs/task/dependencies/diamond_big/e.js @@ -0,0 +1 @@ +console.log("Running e"); diff --git a/tests/specs/task/dependencies/diamond_big_list.out b/tests/specs/task/dependencies/diamond_big_list.out new file mode 100644 index 00000000000000..c95bcd272d9147 --- /dev/null +++ b/tests/specs/task/dependencies/diamond_big_list.out @@ -0,0 +1,15 @@ +Available tasks: +- a + deno run a.js + depends on: b, c +- b + deno run b.js + depends on: e +- c + deno run c.js + depends on: d +- d + deno run d.js + depends on: e +- e + deno run e.js diff --git a/tests/specs/task/dependencies/diamond_list.out b/tests/specs/task/dependencies/diamond_list.out new file mode 100644 index 00000000000000..dfd725a4053429 --- /dev/null +++ b/tests/specs/task/dependencies/diamond_list.out @@ -0,0 +1,12 @@ +Available tasks: +- a + deno run a.js + depends on: b, c +- b + deno run b.js + depends on: d +- c + deno run c.js + depends on: d +- d + deno run d.js diff --git a/tests/specs/task/dependencies/run.js b/tests/specs/task/dependencies/run.js new file mode 100644 index 00000000000000..f457de6ab06309 --- /dev/null +++ b/tests/specs/task/dependencies/run.js @@ -0,0 +1 @@ +console.log("run finished"); diff --git a/tests/specs/task/dependencies/util.js b/tests/specs/task/dependencies/util.js new file mode 100644 index 00000000000000..9579eb9c9fc86a --- /dev/null +++ b/tests/specs/task/dependencies/util.js @@ -0,0 +1,4 @@ +export async function randomTimeout(min, max) { + const timeout = Math.floor(Math.random() * (max - min + 1) + min); + return new Promise((resolve) => setTimeout(resolve, timeout)); +} diff --git a/tests/specs/task/dependencies_root_not_cycle/__test__.jsonc b/tests/specs/task/dependencies_root_not_cycle/__test__.jsonc new file mode 100644 index 00000000000000..073210358209a1 --- /dev/null +++ b/tests/specs/task/dependencies_root_not_cycle/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "task a", + "cwd": "member", + "output": "task.out" +} diff --git a/tests/specs/task/dependencies_root_not_cycle/deno.json b/tests/specs/task/dependencies_root_not_cycle/deno.json new file mode 100644 index 00000000000000..43a4952f938732 --- /dev/null +++ b/tests/specs/task/dependencies_root_not_cycle/deno.json @@ -0,0 +1,10 @@ +{ + "tasks": { + "a": "echo root-a", + "b": { + "dependencies": ["a"], + "command": "echo b" + } + }, + "workspace": ["./member"] +} diff --git a/tests/specs/task/dependencies_root_not_cycle/member/deno.json b/tests/specs/task/dependencies_root_not_cycle/member/deno.json new file mode 100644 index 00000000000000..08c3493c73a1da --- /dev/null +++ b/tests/specs/task/dependencies_root_not_cycle/member/deno.json @@ -0,0 +1,8 @@ +{ + "tasks": { + "a": { + "dependencies": ["b"], + "command": "echo a" + } + } +} diff --git a/tests/specs/task/dependencies_root_not_cycle/task.out b/tests/specs/task/dependencies_root_not_cycle/task.out new file mode 100644 index 00000000000000..0194f31e4e3fad --- /dev/null +++ b/tests/specs/task/dependencies_root_not_cycle/task.out @@ -0,0 +1,6 @@ +Task a echo root-a +root-a +Task b echo b +b +Task a echo a +a diff --git a/tests/specs/task/dependencies_shadowed_root_name/__test__.jsonc b/tests/specs/task/dependencies_shadowed_root_name/__test__.jsonc new file mode 100644 index 00000000000000..9d3d50582c5f11 --- /dev/null +++ b/tests/specs/task/dependencies_shadowed_root_name/__test__.jsonc @@ -0,0 +1,14 @@ +{ + "tests": { + "root_dependending_root": { + "args": "task root-depending-root", + "cwd": "member", + "output": "root_dependending_root.out" + }, + "member_depending_root_and_member": { + "args": "task member-dependending-root-and-member", + "cwd": "member", + "output": "member_depending_root_and_member.out" + } + } +} diff --git a/tests/specs/task/dependencies_shadowed_root_name/deno.jsonc b/tests/specs/task/dependencies_shadowed_root_name/deno.jsonc new file mode 100644 index 00000000000000..88f0ee4e9eef09 --- /dev/null +++ b/tests/specs/task/dependencies_shadowed_root_name/deno.jsonc @@ -0,0 +1,12 @@ +{ + "tasks": { + "build": "echo root", + "root-depending-root": { + "dependencies": [ + "build" + ], + "command": "echo test" + } + }, + "workspace": ["./member"] +} diff --git a/tests/specs/task/dependencies_shadowed_root_name/member/deno.jsonc b/tests/specs/task/dependencies_shadowed_root_name/member/deno.jsonc new file mode 100644 index 00000000000000..df5ac047a3842d --- /dev/null +++ b/tests/specs/task/dependencies_shadowed_root_name/member/deno.jsonc @@ -0,0 +1,12 @@ +{ + "tasks": { + "build": "echo member", + "member-dependending-root-and-member": { + "dependencies": [ + "build", + "root-depending-root" + ], + "command": "echo member-test" + } + } +} diff --git a/tests/specs/task/dependencies_shadowed_root_name/member_depending_root_and_member.out b/tests/specs/task/dependencies_shadowed_root_name/member_depending_root_and_member.out new file mode 100644 index 00000000000000..3b6fd0e0a440f0 --- /dev/null +++ b/tests/specs/task/dependencies_shadowed_root_name/member_depending_root_and_member.out @@ -0,0 +1,10 @@ +[UNORDERED_START] +Task build echo member +member +Task build echo root +root +Task root-depending-root echo test +test +[UNORDERED_END] +Task member-dependending-root-and-member echo member-test +member-test diff --git a/tests/specs/task/dependencies_shadowed_root_name/root_dependending_root.out b/tests/specs/task/dependencies_shadowed_root_name/root_dependending_root.out new file mode 100644 index 00000000000000..2b8d9d5efebf22 --- /dev/null +++ b/tests/specs/task/dependencies_shadowed_root_name/root_dependending_root.out @@ -0,0 +1,4 @@ +Task build echo root +root +Task root-depending-root echo test +test diff --git a/tests/specs/task/description/__test__.jsonc b/tests/specs/task/description/__test__.jsonc new file mode 100644 index 00000000000000..100550de0d1cb7 --- /dev/null +++ b/tests/specs/task/description/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "task", + "output": "main.out" +} diff --git a/tests/specs/task/description/deno.json b/tests/specs/task/description/deno.json new file mode 100644 index 00000000000000..a86b7a5dcb3bda --- /dev/null +++ b/tests/specs/task/description/deno.json @@ -0,0 +1,8 @@ +{ + "tasks": { + "echo_emoji": { + "description": "This is some task", + "command": "echo 1" + } + } +} diff --git a/tests/specs/task/description/main.out b/tests/specs/task/description/main.out new file mode 100644 index 00000000000000..ed28506567d03e --- /dev/null +++ b/tests/specs/task/description/main.out @@ -0,0 +1,4 @@ +Available tasks: +- echo_emoji + // This is some task + echo 1 diff --git a/tests/specs/task/doc_comments_incorrect/__test__.jsonc b/tests/specs/task/doc_comments_incorrect/__test__.jsonc deleted file mode 100644 index 7346290292c6bf..00000000000000 --- a/tests/specs/task/doc_comments_incorrect/__test__.jsonc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "args": "task doesntexist", - "output": "task.out", - "exitCode": 1 -} diff --git a/tests/specs/task/doc_comments_incorrect/deno.jsonc b/tests/specs/task/doc_comments_incorrect/deno.jsonc deleted file mode 100644 index 6b27f28506fd0c..00000000000000 --- a/tests/specs/task/doc_comments_incorrect/deno.jsonc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "tasks": { - // some docs - // on what this does - "lint": "deno lint" - } -} diff --git a/tests/specs/task/doc_comments_incorrect/task.out b/tests/specs/task/doc_comments_incorrect/task.out deleted file mode 100644 index 9d81c1768f1f2f..00000000000000 --- a/tests/specs/task/doc_comments_incorrect/task.out +++ /dev/null @@ -1,6 +0,0 @@ -Task not found: doesntexist -Available tasks: -- lint - // some docs - // on what this does - deno lint diff --git a/tests/specs/task/doc_comments_no_args/__test__.jsonc b/tests/specs/task/doc_comments_no_args/__test__.jsonc deleted file mode 100644 index f3e76cdaa73b62..00000000000000 --- a/tests/specs/task/doc_comments_no_args/__test__.jsonc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "args": "task", - "output": "task.out", - "exitCode": 0 -} diff --git a/tests/specs/task/doc_comments_no_args/deno.jsonc b/tests/specs/task/doc_comments_no_args/deno.jsonc deleted file mode 100644 index 4b6d690c8d2336..00000000000000 --- a/tests/specs/task/doc_comments_no_args/deno.jsonc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "tasks": { - // this task has documentation - // - // in the form of comments - "lint": "deno lint", - /* - * block comments are fine too - */ - "fmt": "deno fmt" - } -} diff --git a/tests/specs/task/doc_comments_no_args/task.out b/tests/specs/task/doc_comments_no_args/task.out deleted file mode 100644 index 635e3609077ca1..00000000000000 --- a/tests/specs/task/doc_comments_no_args/task.out +++ /dev/null @@ -1,9 +0,0 @@ -Available tasks: -- lint - // this task has documentation - // - // in the form of comments - deno lint -- fmt - // block comments are fine too - deno fmt diff --git a/tests/specs/task/eval/__test__.jsonc b/tests/specs/task/eval/__test__.jsonc new file mode 100644 index 00000000000000..394db3052a04f1 --- /dev/null +++ b/tests/specs/task/eval/__test__.jsonc @@ -0,0 +1,35 @@ +{ + "tests": { + "no_arg": { + "args": "task --eval", + "output": "no_arg.out", + "exitCode": 1 + }, + "echo_pwd": { + "args": ["task", "--eval", "echo $(pwd)"], + "output": "echo_pwd.out" + }, + "piped": { + "args": [ + "task", + "--eval", + "echo 12345 | (deno eval 'const b = new Uint8Array(1);Deno.stdin.readSync(b);console.log(b)' && deno eval 'const b = new Uint8Array(1);Deno.stdin.readSync(b);console.log(b)')" + ], + "output": "piped.out" + }, + "node_modules_bin": { + "tempDir": true, + "steps": [{ + "args": "install", + "output": "[WILDCARD]Initialize @denotest/bin[WILDCARD]" + }, { + "args": [ + "task", + "--eval", + "cli-esm hi hello" + ], + "output": "bin.out" + }] + } + } +} diff --git a/tests/specs/task/eval/bin.out b/tests/specs/task/eval/bin.out new file mode 100644 index 00000000000000..7663216bf79ee8 --- /dev/null +++ b/tests/specs/task/eval/bin.out @@ -0,0 +1,3 @@ +Task cli-esm hi hello +hi +hello diff --git a/tests/specs/task/eval/echo_pwd.out b/tests/specs/task/eval/echo_pwd.out new file mode 100644 index 00000000000000..f0c53d8b49d5d3 --- /dev/null +++ b/tests/specs/task/eval/echo_pwd.out @@ -0,0 +1,2 @@ +Task echo $(pwd) +[WILDCARD] diff --git a/tests/specs/task/eval/no_arg.out b/tests/specs/task/eval/no_arg.out new file mode 100644 index 00000000000000..e46285576246d0 --- /dev/null +++ b/tests/specs/task/eval/no_arg.out @@ -0,0 +1,4 @@ +error: [TASK] must be specified when using --eval + +Usage: deno task [OPTIONS] [TASK] + diff --git a/tests/specs/task/eval/package.json b/tests/specs/task/eval/package.json new file mode 100644 index 00000000000000..c0a34548f57001 --- /dev/null +++ b/tests/specs/task/eval/package.json @@ -0,0 +1,9 @@ +{ + "name": "bin_package", + "devDependencies": { + "@denotest/bin": "1.0.0" + }, + "scripts": { + "sayhi": "cli-esm hi hello" + } +} diff --git a/tests/specs/task/eval/piped.out b/tests/specs/task/eval/piped.out new file mode 100644 index 00000000000000..64ccd7ab72e8f5 --- /dev/null +++ b/tests/specs/task/eval/piped.out @@ -0,0 +1,3 @@ +Task echo 12345 | (deno eval 'const b = new Uint8Array(1);Deno.stdin.readSync(b);console.log(b)' && deno eval 'const b = new Uint8Array(1);Deno.stdin.readSync(b);console.log(b)') +Uint8Array(1) [ 49 ] +Uint8Array(1) [ 50 ] diff --git a/tests/specs/task/filter/__test__.jsonc b/tests/specs/task/filter/__test__.jsonc new file mode 100644 index 00000000000000..8baaf04dd4655f --- /dev/null +++ b/tests/specs/task/filter/__test__.jsonc @@ -0,0 +1,59 @@ +{ + "tests": { + "npm_all": { + "cwd": "./npm", + "args": "task --filter * dev", + "output": "npm_all.out" + }, + "npm_exact": { + "cwd": "./npm", + "args": "task --filter foo dev", + "output": "npm_exact.out" + }, + "npm_multi": { + "cwd": "./npm_multi", + "args": "task --filter multi-* dev", + "output": "npm_multi.out" + }, + "npm_scoped_exact": { + "cwd": "./npm_scoped", + "args": "task --filter @foo/bar dev", + "output": "npm_scoped_exact.out" + }, + "npm_scoped_multi": { + "cwd": "./npm_scoped", + "args": "task --filter @foo/* dev", + "output": "npm_scoped_multi.out" + }, + "npm_workspace_order": { + "cwd": "./npm_workspace_order", + "args": "task --filter @foo/* dev", + "output": "npm_workspace_order.out" + }, + "deno_all": { + "cwd": "./deno", + "args": "task --filter * dev", + "output": "deno_all.out" + }, + "deno_exact": { + "cwd": "./deno", + "args": "task --filter foo dev", + "output": "deno_exact.out" + }, + "deno_scoped_exact": { + "cwd": "./deno_scoped", + "args": "task --filter @foo/bar dev", + "output": "deno_scoped_exact.out" + }, + "deno_scoped_multi": { + "cwd": "./deno_scoped", + "args": "task --filter @foo/* dev", + "output": "deno_scoped_multi.out" + }, + "deno_workspace_order": { + "cwd": "./deno_workspace_order", + "args": "task --filter @foo/* dev", + "output": "deno_workspace_order.out" + } + } +} diff --git a/tests/specs/task/filter/deno/bar/deno.json b/tests/specs/task/filter/deno/bar/deno.json new file mode 100644 index 00000000000000..9bc7d54233bb1c --- /dev/null +++ b/tests/specs/task/filter/deno/bar/deno.json @@ -0,0 +1,7 @@ +{ + "name": "@deno/bar", + "tasks": { + "dev": "echo '@deno/bar'" + }, + "exports": {} +} diff --git a/tests/specs/task/filter/deno/deno.json b/tests/specs/task/filter/deno/deno.json new file mode 100644 index 00000000000000..133ab666b4abd5 --- /dev/null +++ b/tests/specs/task/filter/deno/deno.json @@ -0,0 +1,6 @@ +{ + "workspace": [ + "./foo", + "./bar" + ] +} diff --git a/tests/specs/task/filter/deno/foo/deno.json b/tests/specs/task/filter/deno/foo/deno.json new file mode 100644 index 00000000000000..6efb2125b7447f --- /dev/null +++ b/tests/specs/task/filter/deno/foo/deno.json @@ -0,0 +1,7 @@ +{ + "name": "@deno/foo", + "tasks": { + "dev": "echo '@deno/foo'" + }, + "exports": {} +} diff --git a/tests/specs/task/filter/deno_all.out b/tests/specs/task/filter/deno_all.out new file mode 100644 index 00000000000000..c3c34415597c3a --- /dev/null +++ b/tests/specs/task/filter/deno_all.out @@ -0,0 +1,4 @@ +Task dev echo '@deno/bar' +@deno/bar +Task dev echo '@deno/foo' +@deno/foo diff --git a/tests/specs/task/filter/deno_exact.out b/tests/specs/task/filter/deno_exact.out new file mode 100644 index 00000000000000..4bfebd6e929077 --- /dev/null +++ b/tests/specs/task/filter/deno_exact.out @@ -0,0 +1,2 @@ +Task dev echo '@deno/foo' +@deno/foo diff --git a/tests/specs/task/filter/deno_multi.out b/tests/specs/task/filter/deno_multi.out new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/tests/specs/task/filter/deno_scoped/deno.json b/tests/specs/task/filter/deno_scoped/deno.json new file mode 100644 index 00000000000000..7a26f9ca68dbb5 --- /dev/null +++ b/tests/specs/task/filter/deno_scoped/deno.json @@ -0,0 +1,3 @@ +{ + "workspace": ["./foo_bar", "./foo_baz"] +} diff --git a/tests/specs/task/filter/deno_scoped/foo_bar/deno.json b/tests/specs/task/filter/deno_scoped/foo_bar/deno.json new file mode 100644 index 00000000000000..1773d76c260307 --- /dev/null +++ b/tests/specs/task/filter/deno_scoped/foo_bar/deno.json @@ -0,0 +1,7 @@ +{ + "name": "@foo/bar", + "exports": {}, + "tasks": { + "dev": "echo '@foo/bar'" + } +} diff --git a/tests/specs/task/filter/deno_scoped/foo_baz/deno.json b/tests/specs/task/filter/deno_scoped/foo_baz/deno.json new file mode 100644 index 00000000000000..f3e59719e50c66 --- /dev/null +++ b/tests/specs/task/filter/deno_scoped/foo_baz/deno.json @@ -0,0 +1,7 @@ +{ + "name": "@foo/baz", + "exports": {}, + "tasks": { + "dev": "echo '@foo/baz'" + } +} diff --git a/tests/specs/task/filter/deno_scoped_exact.out b/tests/specs/task/filter/deno_scoped_exact.out new file mode 100644 index 00000000000000..f7d61e87149d5b --- /dev/null +++ b/tests/specs/task/filter/deno_scoped_exact.out @@ -0,0 +1,2 @@ +Task dev echo '@foo/bar' +@foo/bar diff --git a/tests/specs/task/filter/deno_scoped_multi.out b/tests/specs/task/filter/deno_scoped_multi.out new file mode 100644 index 00000000000000..f4609e94b6aef7 --- /dev/null +++ b/tests/specs/task/filter/deno_scoped_multi.out @@ -0,0 +1,4 @@ +Task dev echo '@foo/bar' +@foo/bar +Task dev echo '@foo/baz' +@foo/baz diff --git a/tests/specs/task/filter/deno_workspace_order.out b/tests/specs/task/filter/deno_workspace_order.out new file mode 100644 index 00000000000000..f4609e94b6aef7 --- /dev/null +++ b/tests/specs/task/filter/deno_workspace_order.out @@ -0,0 +1,4 @@ +Task dev echo '@foo/bar' +@foo/bar +Task dev echo '@foo/baz' +@foo/baz diff --git a/tests/specs/task/filter/deno_workspace_order/deno.json b/tests/specs/task/filter/deno_workspace_order/deno.json new file mode 100644 index 00000000000000..cd73d72b22a353 --- /dev/null +++ b/tests/specs/task/filter/deno_workspace_order/deno.json @@ -0,0 +1,6 @@ +{ + "workspace": [ + "./foo_bar", + "./foo_baz" + ] +} diff --git a/tests/specs/task/filter/deno_workspace_order/foo_bar/deno.json b/tests/specs/task/filter/deno_workspace_order/foo_bar/deno.json new file mode 100644 index 00000000000000..5be2ceac7f9a42 --- /dev/null +++ b/tests/specs/task/filter/deno_workspace_order/foo_bar/deno.json @@ -0,0 +1,7 @@ +{ + "name": "@foo/bar", + "tasks": { + "dev": "echo '@foo/bar'" + }, + "exports": {} +} diff --git a/tests/specs/task/filter/deno_workspace_order/foo_baz/deno.json b/tests/specs/task/filter/deno_workspace_order/foo_baz/deno.json new file mode 100644 index 00000000000000..083cea5bf00895 --- /dev/null +++ b/tests/specs/task/filter/deno_workspace_order/foo_baz/deno.json @@ -0,0 +1,10 @@ +{ + "name": "@foo/baz", + "tasks": { + "dev": "echo '@foo/baz'" + }, + "imports": { + "@foo/bar": "jsr:@foo/bar" + }, + "exports": {} +} diff --git a/tests/specs/task/filter/npm/bar/package.json b/tests/specs/task/filter/npm/bar/package.json new file mode 100644 index 00000000000000..3723db6f01daff --- /dev/null +++ b/tests/specs/task/filter/npm/bar/package.json @@ -0,0 +1,6 @@ +{ + "name": "bar", + "scripts": { + "dev": "echo 'bar'" + } +} diff --git a/tests/specs/task/filter/npm/foo/package.json b/tests/specs/task/filter/npm/foo/package.json new file mode 100644 index 00000000000000..86fa20d1118966 --- /dev/null +++ b/tests/specs/task/filter/npm/foo/package.json @@ -0,0 +1,6 @@ +{ + "name": "foo", + "scripts": { + "dev": "echo 'foo'" + } +} diff --git a/tests/specs/task/filter/npm/package.json b/tests/specs/task/filter/npm/package.json new file mode 100644 index 00000000000000..2d70009f2ca46b --- /dev/null +++ b/tests/specs/task/filter/npm/package.json @@ -0,0 +1,3 @@ +{ + "workspaces": ["./foo", "./bar"] +} diff --git a/tests/specs/task/filter/npm_all.out b/tests/specs/task/filter/npm_all.out new file mode 100644 index 00000000000000..592d4640cd1e25 --- /dev/null +++ b/tests/specs/task/filter/npm_all.out @@ -0,0 +1,4 @@ +Task dev echo 'bar' +bar +Task dev echo 'foo' +foo diff --git a/tests/specs/task/filter/npm_exact.out b/tests/specs/task/filter/npm_exact.out new file mode 100644 index 00000000000000..f879b66df86830 --- /dev/null +++ b/tests/specs/task/filter/npm_exact.out @@ -0,0 +1,2 @@ +Task dev echo 'foo' +foo diff --git a/tests/specs/task/filter/npm_multi.out b/tests/specs/task/filter/npm_multi.out new file mode 100644 index 00000000000000..58898a59650190 --- /dev/null +++ b/tests/specs/task/filter/npm_multi.out @@ -0,0 +1,4 @@ +Task dev echo 'multi-a' +multi-a +Task dev echo 'multi-b' +multi-b diff --git a/tests/specs/task/filter/npm_multi/multi-a/package.json b/tests/specs/task/filter/npm_multi/multi-a/package.json new file mode 100644 index 00000000000000..348d7273ff074a --- /dev/null +++ b/tests/specs/task/filter/npm_multi/multi-a/package.json @@ -0,0 +1,6 @@ +{ + "name": "multi-a", + "scripts": { + "dev": "echo 'multi-a'" + } +} diff --git a/tests/specs/task/filter/npm_multi/multi-b/package.json b/tests/specs/task/filter/npm_multi/multi-b/package.json new file mode 100644 index 00000000000000..f11006aea471c9 --- /dev/null +++ b/tests/specs/task/filter/npm_multi/multi-b/package.json @@ -0,0 +1,6 @@ +{ + "name": "multi-b", + "scripts": { + "dev": "echo 'multi-b'" + } +} diff --git a/tests/specs/task/filter/npm_multi/package.json b/tests/specs/task/filter/npm_multi/package.json new file mode 100644 index 00000000000000..b6000c04870f44 --- /dev/null +++ b/tests/specs/task/filter/npm_multi/package.json @@ -0,0 +1,3 @@ +{ + "workspaces": ["./multi-a", "./multi-b"] +} diff --git a/tests/specs/task/filter/npm_scoped/foo_bar/package.json b/tests/specs/task/filter/npm_scoped/foo_bar/package.json new file mode 100644 index 00000000000000..0e2c92c8beab5d --- /dev/null +++ b/tests/specs/task/filter/npm_scoped/foo_bar/package.json @@ -0,0 +1,6 @@ +{ + "name": "@foo/bar", + "scripts": { + "dev": "echo '@foo/bar'" + } +} diff --git a/tests/specs/task/filter/npm_scoped/foo_baz/package.json b/tests/specs/task/filter/npm_scoped/foo_baz/package.json new file mode 100644 index 00000000000000..77ec9209b19884 --- /dev/null +++ b/tests/specs/task/filter/npm_scoped/foo_baz/package.json @@ -0,0 +1,6 @@ +{ + "name": "@foo/baz", + "scripts": { + "dev": "echo '@foo/baz'" + } +} diff --git a/tests/specs/task/filter/npm_scoped/package.json b/tests/specs/task/filter/npm_scoped/package.json new file mode 100644 index 00000000000000..d02abfb3f84613 --- /dev/null +++ b/tests/specs/task/filter/npm_scoped/package.json @@ -0,0 +1,3 @@ +{ + "workspaces": ["./foo_bar", "./foo_baz"] +} diff --git a/tests/specs/task/filter/npm_scoped_exact.out b/tests/specs/task/filter/npm_scoped_exact.out new file mode 100644 index 00000000000000..f7d61e87149d5b --- /dev/null +++ b/tests/specs/task/filter/npm_scoped_exact.out @@ -0,0 +1,2 @@ +Task dev echo '@foo/bar' +@foo/bar diff --git a/tests/specs/task/filter/npm_scoped_multi.out b/tests/specs/task/filter/npm_scoped_multi.out new file mode 100644 index 00000000000000..f4609e94b6aef7 --- /dev/null +++ b/tests/specs/task/filter/npm_scoped_multi.out @@ -0,0 +1,4 @@ +Task dev echo '@foo/bar' +@foo/bar +Task dev echo '@foo/baz' +@foo/baz diff --git a/tests/specs/task/filter/npm_workspace_order.out b/tests/specs/task/filter/npm_workspace_order.out new file mode 100644 index 00000000000000..f4609e94b6aef7 --- /dev/null +++ b/tests/specs/task/filter/npm_workspace_order.out @@ -0,0 +1,4 @@ +Task dev echo '@foo/bar' +@foo/bar +Task dev echo '@foo/baz' +@foo/baz diff --git a/tests/specs/task/filter/npm_workspace_order/foo_bar/package.json b/tests/specs/task/filter/npm_workspace_order/foo_bar/package.json new file mode 100644 index 00000000000000..0e2c92c8beab5d --- /dev/null +++ b/tests/specs/task/filter/npm_workspace_order/foo_bar/package.json @@ -0,0 +1,6 @@ +{ + "name": "@foo/bar", + "scripts": { + "dev": "echo '@foo/bar'" + } +} diff --git a/tests/specs/task/filter/npm_workspace_order/foo_baz/package.json b/tests/specs/task/filter/npm_workspace_order/foo_baz/package.json new file mode 100644 index 00000000000000..79f4b4b793d5a3 --- /dev/null +++ b/tests/specs/task/filter/npm_workspace_order/foo_baz/package.json @@ -0,0 +1,9 @@ +{ + "name": "@foo/baz", + "scripts": { + "dev": "echo '@foo/baz'" + }, + "dependencies": { + "@foo/bar": "workspace:*" + } +} diff --git a/tests/specs/task/filter/npm_workspace_order/package.json b/tests/specs/task/filter/npm_workspace_order/package.json new file mode 100644 index 00000000000000..d02abfb3f84613 --- /dev/null +++ b/tests/specs/task/filter/npm_workspace_order/package.json @@ -0,0 +1,3 @@ +{ + "workspaces": ["./foo_bar", "./foo_baz"] +} diff --git a/tests/specs/test/doc_ts_expect_error/__test__.jsonc b/tests/specs/test/doc_ts_expect_error/__test__.jsonc new file mode 100644 index 00000000000000..ba64887a32c64e --- /dev/null +++ b/tests/specs/test/doc_ts_expect_error/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "test --doc mod.ts", + "exitCode": 0, + "output": "mod.out" +} diff --git a/tests/specs/test/doc_ts_expect_error/mod.out b/tests/specs/test/doc_ts_expect_error/mod.out new file mode 100644 index 00000000000000..d464d13d715175 --- /dev/null +++ b/tests/specs/test/doc_ts_expect_error/mod.out @@ -0,0 +1,8 @@ +Check [WILDCARD]/mod.ts +Check [WILDCARD]/mod.ts$2-10.ts +running 0 tests from ./mod.ts +running 1 test from ./mod.ts$2-10.ts +[WILDCARD]/mod.ts$2-10.ts ... ok ([WILDCARD]ms) + +ok | 1 passed | 0 failed ([WILDCARD]ms) + diff --git a/tests/specs/test/doc_ts_expect_error/mod.ts b/tests/specs/test/doc_ts_expect_error/mod.ts new file mode 100644 index 00000000000000..eeace602a9ab3c --- /dev/null +++ b/tests/specs/test/doc_ts_expect_error/mod.ts @@ -0,0 +1,13 @@ +/** + * ```ts + * import { add } from "./mod.ts"; + * + * add(1, 2); + * + * // @ts-expect-error: can only add numbers + * add('1', '2'); + * ``` + */ +export function add(first: number, second: number) { + return first + second; +} diff --git a/tests/specs/test/markdown_ts_expect_error/__test__.jsonc b/tests/specs/test/markdown_ts_expect_error/__test__.jsonc new file mode 100644 index 00000000000000..ad73f6df6f522e --- /dev/null +++ b/tests/specs/test/markdown_ts_expect_error/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "test --doc main.md", + "exitCode": 0, + "output": "main.out" +} diff --git a/tests/specs/test/markdown_ts_expect_error/main.md b/tests/specs/test/markdown_ts_expect_error/main.md new file mode 100644 index 00000000000000..9be70e919cbd9c --- /dev/null +++ b/tests/specs/test/markdown_ts_expect_error/main.md @@ -0,0 +1,8 @@ +# Documentation + +This test case checks if `@ts-expect-error` comment works as expected. + +```ts +// @ts-expect-error +const a: string = 42; +``` diff --git a/tests/specs/test/markdown_ts_expect_error/main.out b/tests/specs/test/markdown_ts_expect_error/main.out new file mode 100644 index 00000000000000..65990cd3f0ad4b --- /dev/null +++ b/tests/specs/test/markdown_ts_expect_error/main.out @@ -0,0 +1,6 @@ +Check [WILDCARD]/main.md$5-9.ts +running 1 test from ./main.md$5-9.ts +[WILDCARD]/main.md$5-9.ts ... ok ([WILDCARD]ms) + +ok | 1 passed | 0 failed ([WILDCARD]ms) + diff --git a/tests/specs/update/deno_json/__test__.jsonc b/tests/specs/update/deno_json/__test__.jsonc new file mode 100644 index 00000000000000..8b4aa26b5c082d --- /dev/null +++ b/tests/specs/update/deno_json/__test__.jsonc @@ -0,0 +1,101 @@ +{ + "tempDir": true, + "tests": { + // just to make sure install doesn't change the lockfile + "sanity_lockfile_up_to_date": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": [ + "eval", + "const now = Deno.readTextFileSync('./deno.lock'); console.log(now.trim());" + ], + "output": "deno.lock.orig.out" + } + ] + }, + "print_outdated": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated", + "output": "outdated.out" + } + ] + }, + "print_outdated_compatible": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --compatible", + "output": "outdated_compatible.out" + } + ] + }, + "update_compatible": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update", + "output": "./update_compatible/update.out" + }, + { + "args": "-A print_file.ts ./deno.json", + "output": "./update_compatible/deno.json.out" + }, + { + "args": "-A print_file.ts ./deno.lock", + "output": "./update_compatible/deno.lock.out" + } + ] + }, + "update_latest": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update --latest", + "output": "update_latest/update.out" + }, + { + "args": "-A print_file.ts ./deno.json", + "output": "./update_latest/deno.json.out" + }, + { + "args": "-A print_file.ts ./deno.lock", + "output": "./update_latest/deno.lock.out" + } + ] + }, + "update_filtered": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update --latest @denotest/add @denotest/b* !@denotest/breaking* @denotest/with-subpath@0.5.0", + "output": "filtered/update.out" + }, + { + "args": "-A print_file.ts ./deno.json", + "output": "filtered/deno.json.out" + } + ] + } + } +} diff --git a/tests/specs/update/deno_json/deno.json b/tests/specs/update/deno_json/deno.json new file mode 100644 index 00000000000000..4f880e6db9108d --- /dev/null +++ b/tests/specs/update/deno_json/deno.json @@ -0,0 +1,19 @@ +{ + "imports": { + "@denotest/add": "jsr:@denotest/add@^0.2.0", + "@denotest/add/": "jsr:/@denotest/add@^0.2.0/", + "@denotest/subtract": "jsr:@denotest/subtract@^0.2.0", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@0.2.0/data-json", + "@denotest/breaking-change-between-versions": "npm:@denotest/breaking-change-between-versions@1.0.0", + "@denotest/bin": "npm:@denotest/bin@0.6.0", + "@denotest/has-patch-versions": "npm:@denotest/has-patch-versions@^0.1.0" + }, + "scopes": { + "/foo/": { + "@denotest/add": "jsr:@denotest/add@^0.2.0", + "@denotest/add/": "jsr:/@denotest/add@^0.2.0/", + "@denotest/subtract": "jsr:@denotest/subtract@^0.2.0", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@0.2.0/data-json" + } + } +} diff --git a/tests/specs/update/deno_json/deno.lock b/tests/specs/update/deno_json/deno.lock new file mode 100644 index 00000000000000..7c4d5e36906fb7 --- /dev/null +++ b/tests/specs/update/deno_json/deno.lock @@ -0,0 +1,43 @@ +{ + "version": "4", + "specifiers": { + "jsr:@denotest/add@0.2": "0.2.0", + "jsr:@denotest/multiple-exports@0.2.0": "0.2.0", + "jsr:@denotest/subtract@0.2": "0.2.0", + "npm:@denotest/bin@0.6.0": "0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0", + "npm:@denotest/has-patch-versions@0.1": "0.1.0" + }, + "jsr": { + "@denotest/add@0.2.0": { + "integrity": "a9076d30ecb42b2fc6dd95e7055fbf4e6358b53f550741bd7f60089d19f68848" + }, + "@denotest/multiple-exports@0.2.0": { + "integrity": "efe9748a0c0939c7ac245fee04acc0c42bd7a61874ff71a360c4543e4f5f6b36" + }, + "@denotest/subtract@0.2.0": { + "integrity": "c9650fc559ab2430effc0c7fb1540e3aa89888fbdd926335ccfdeac57eb3a64d" + } + }, + "npm": { + "@denotest/bin@0.6.0": { + "integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ==" + }, + "@denotest/breaking-change-between-versions@1.0.0": { + "integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw==" + }, + "@denotest/has-patch-versions@0.1.0": { + "integrity": "sha512-H/MBo0jKDdMsX4AAGEGQbZj70nfNe3oUNZXbohYHhqf9EfpLnXp/7FC29ZdfV4+p6VjEcOGdCtXc6rilE6iYpg==" + } + }, + "workspace": { + "dependencies": [ + "jsr:@denotest/add@0.2", + "jsr:@denotest/multiple-exports@0.2.0", + "jsr:@denotest/subtract@0.2", + "npm:@denotest/bin@0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0", + "npm:@denotest/has-patch-versions@0.1" + ] + } +} diff --git a/tests/specs/update/deno_json/deno.lock.orig.out b/tests/specs/update/deno_json/deno.lock.orig.out new file mode 100644 index 00000000000000..7c4d5e36906fb7 --- /dev/null +++ b/tests/specs/update/deno_json/deno.lock.orig.out @@ -0,0 +1,43 @@ +{ + "version": "4", + "specifiers": { + "jsr:@denotest/add@0.2": "0.2.0", + "jsr:@denotest/multiple-exports@0.2.0": "0.2.0", + "jsr:@denotest/subtract@0.2": "0.2.0", + "npm:@denotest/bin@0.6.0": "0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0", + "npm:@denotest/has-patch-versions@0.1": "0.1.0" + }, + "jsr": { + "@denotest/add@0.2.0": { + "integrity": "a9076d30ecb42b2fc6dd95e7055fbf4e6358b53f550741bd7f60089d19f68848" + }, + "@denotest/multiple-exports@0.2.0": { + "integrity": "efe9748a0c0939c7ac245fee04acc0c42bd7a61874ff71a360c4543e4f5f6b36" + }, + "@denotest/subtract@0.2.0": { + "integrity": "c9650fc559ab2430effc0c7fb1540e3aa89888fbdd926335ccfdeac57eb3a64d" + } + }, + "npm": { + "@denotest/bin@0.6.0": { + "integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ==" + }, + "@denotest/breaking-change-between-versions@1.0.0": { + "integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw==" + }, + "@denotest/has-patch-versions@0.1.0": { + "integrity": "sha512-H/MBo0jKDdMsX4AAGEGQbZj70nfNe3oUNZXbohYHhqf9EfpLnXp/7FC29ZdfV4+p6VjEcOGdCtXc6rilE6iYpg==" + } + }, + "workspace": { + "dependencies": [ + "jsr:@denotest/add@0.2", + "jsr:@denotest/multiple-exports@0.2.0", + "jsr:@denotest/subtract@0.2", + "npm:@denotest/bin@0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0", + "npm:@denotest/has-patch-versions@0.1" + ] + } +} diff --git a/tests/specs/update/deno_json/filtered/deno.json.out b/tests/specs/update/deno_json/filtered/deno.json.out new file mode 100644 index 00000000000000..4458e2d037b92b --- /dev/null +++ b/tests/specs/update/deno_json/filtered/deno.json.out @@ -0,0 +1,19 @@ +{ + "imports": { + "@denotest/add": "jsr:@denotest/add@^1.0.0", + "@denotest/add/": "jsr:/@denotest/add@^1.0.0/", + "@denotest/subtract": "jsr:@denotest/subtract@^0.2.0", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@0.5.0/data-json", + "@denotest/breaking-change-between-versions": "npm:@denotest/breaking-change-between-versions@1.0.0", + "@denotest/bin": "npm:@denotest/bin@^1.0.0", + "@denotest/has-patch-versions": "npm:@denotest/has-patch-versions@^0.1.0" + }, + "scopes": { + "/foo/": { + "@denotest/add": "jsr:@denotest/add@^1.0.0", + "@denotest/add/": "jsr:/@denotest/add@^1.0.0/", + "@denotest/subtract": "jsr:@denotest/subtract@^0.2.0", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@0.5.0/data-json" + } + } +} diff --git a/tests/specs/update/deno_json/filtered/update.out b/tests/specs/update/deno_json/filtered/update.out new file mode 100644 index 00000000000000..ce16c6f6b710f7 --- /dev/null +++ b/tests/specs/update/deno_json/filtered/update.out @@ -0,0 +1,10 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/bin/1.0.0.tgz +Download http://127.0.0.1:4250/@denotest/multiple-exports/0.5.0_meta.json +Download http://127.0.0.1:4250/@denotest/multiple-exports/0.5.0/data.json +Download http://127.0.0.1:4250/@denotest/add/1.0.0/mod.ts +[UNORDERED_END] +Updated 3 dependencies: + - jsr:@denotest/add 0.2.0 -> 1.0.0 + - jsr:@denotest/multiple-exports 0.2.0 -> 0.5.0 + - npm:@denotest/bin 0.6.0 -> 1.0.0 diff --git a/tests/specs/update/deno_json/outdated.out b/tests/specs/update/deno_json/outdated.out new file mode 100644 index 00000000000000..07ff9f3416a8f1 --- /dev/null +++ b/tests/specs/update/deno_json/outdated.out @@ -0,0 +1,15 @@ +┌────────────────────────────────────────────────┬─────────┬────────┬────────┐ +│ Package │ Current │ Update │ Latest │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/multiple-exports │ 0.2.0 │ 0.2.0 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/subtract │ 0.2.0 │ 0.2.0 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/add │ 0.2.0 │ 0.2.1 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/has-patch-versions │ 0.1.0 │ 0.1.1 │ 0.2.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/bin │ 0.6.0 │ 0.6.0 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/breaking-change-between-versions │ 1.0.0 │ 1.0.0 │ 2.0.0 │ +└────────────────────────────────────────────────┴─────────┴────────┴────────┘ diff --git a/tests/specs/update/deno_json/outdated_compatible.out b/tests/specs/update/deno_json/outdated_compatible.out new file mode 100644 index 00000000000000..54511a537f2fdd --- /dev/null +++ b/tests/specs/update/deno_json/outdated_compatible.out @@ -0,0 +1,7 @@ +┌──────────────────────────────────┬─────────┬────────┬────────┐ +│ Package │ Current │ Update │ Latest │ +├──────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/add │ 0.2.0 │ 0.2.1 │ 1.0.0 │ +├──────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/has-patch-versions │ 0.1.0 │ 0.1.1 │ 0.2.0 │ +└──────────────────────────────────┴─────────┴────────┴────────┘ diff --git a/tests/specs/update/deno_json/print_file.ts b/tests/specs/update/deno_json/print_file.ts new file mode 100644 index 00000000000000..c57b6c3a4e56f3 --- /dev/null +++ b/tests/specs/update/deno_json/print_file.ts @@ -0,0 +1,2 @@ +const file = Deno.args[0]; +console.log(Deno.readTextFileSync(file).trim()); diff --git a/tests/specs/update/deno_json/update_compatible/deno.json.out b/tests/specs/update/deno_json/update_compatible/deno.json.out new file mode 100644 index 00000000000000..e453eff3c9c566 --- /dev/null +++ b/tests/specs/update/deno_json/update_compatible/deno.json.out @@ -0,0 +1,19 @@ +{ + "imports": { + "@denotest/add": "jsr:@denotest/add@^0.2.1", + "@denotest/add/": "jsr:/@denotest/add@^0.2.1/", + "@denotest/subtract": "jsr:@denotest/subtract@^0.2.0", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@0.2.0/data-json", + "@denotest/breaking-change-between-versions": "npm:@denotest/breaking-change-between-versions@1.0.0", + "@denotest/bin": "npm:@denotest/bin@0.6.0", + "@denotest/has-patch-versions": "npm:@denotest/has-patch-versions@^0.1.1" + }, + "scopes": { + "/foo/": { + "@denotest/add": "jsr:@denotest/add@^0.2.1", + "@denotest/add/": "jsr:/@denotest/add@^0.2.1/", + "@denotest/subtract": "jsr:@denotest/subtract@^0.2.0", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@0.2.0/data-json" + } + } +} diff --git a/tests/specs/update/deno_json/update_compatible/deno.lock.out b/tests/specs/update/deno_json/update_compatible/deno.lock.out new file mode 100644 index 00000000000000..994d6f7ac9c992 --- /dev/null +++ b/tests/specs/update/deno_json/update_compatible/deno.lock.out @@ -0,0 +1,43 @@ +{ + "version": "4", + "specifiers": { + "jsr:@denotest/add@~0.2.1": "0.2.1", + "jsr:@denotest/multiple-exports@0.2.0": "0.2.0", + "jsr:@denotest/subtract@0.2": "0.2.0", + "npm:@denotest/bin@0.6.0": "0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0", + "npm:@denotest/has-patch-versions@~0.1.1": "0.1.1" + }, + "jsr": { + "@denotest/add@0.2.1": { + "integrity": "a9076d30ecb42b2fc6dd95e7055fbf4e6358b53f550741bd7f60089d19f68848" + }, + "@denotest/multiple-exports@0.2.0": { + "integrity": "efe9748a0c0939c7ac245fee04acc0c42bd7a61874ff71a360c4543e4f5f6b36" + }, + "@denotest/subtract@0.2.0": { + "integrity": "c9650fc559ab2430effc0c7fb1540e3aa89888fbdd926335ccfdeac57eb3a64d" + } + }, + "npm": { + "@denotest/bin@0.6.0": { + "integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ==" + }, + "@denotest/breaking-change-between-versions@1.0.0": { + "integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw==" + }, + "@denotest/has-patch-versions@0.1.1": { + "integrity": "sha512-slUqYhu6DrPiSdNzmW5aMdW2/osIYnDP0yY3CwgLzAiyK0/cwb0epSpTSyZEmTKXA3rezxxC7ASSsnD34uH1/w==" + } + }, + "workspace": { + "dependencies": [ + "jsr:@denotest/add@~0.2.1", + "jsr:@denotest/multiple-exports@0.2.0", + "jsr:@denotest/subtract@0.2", + "npm:@denotest/bin@0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0", + "npm:@denotest/has-patch-versions@~0.1.1" + ] + } +} diff --git a/tests/specs/update/deno_json/update_compatible/update.out b/tests/specs/update/deno_json/update_compatible/update.out new file mode 100644 index 00000000000000..17c5358fe650d5 --- /dev/null +++ b/tests/specs/update/deno_json/update_compatible/update.out @@ -0,0 +1,7 @@ +[UNORDERED_START] +Download http://127.0.0.1:4250/@denotest/add/0.2.1/mod.ts +Download http://localhost:4260/@denotest/has-patch-versions/0.1.1.tgz +[UNORDERED_END] +Updated 2 dependencies: + - jsr:@denotest/add 0.2.0 -> 0.2.1 + - npm:@denotest/has-patch-versions 0.1.0 -> 0.1.1 diff --git a/tests/specs/update/deno_json/update_latest/deno.json.out b/tests/specs/update/deno_json/update_latest/deno.json.out new file mode 100644 index 00000000000000..5e4e99bd66f1e2 --- /dev/null +++ b/tests/specs/update/deno_json/update_latest/deno.json.out @@ -0,0 +1,19 @@ +{ + "imports": { + "@denotest/add": "jsr:@denotest/add@^1.0.0", + "@denotest/add/": "jsr:/@denotest/add@^1.0.0/", + "@denotest/subtract": "jsr:@denotest/subtract@^1.0.0", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@^1.0.0/data-json", + "@denotest/breaking-change-between-versions": "npm:@denotest/breaking-change-between-versions@^2.0.0", + "@denotest/bin": "npm:@denotest/bin@^1.0.0", + "@denotest/has-patch-versions": "npm:@denotest/has-patch-versions@^0.2.0" + }, + "scopes": { + "/foo/": { + "@denotest/add": "jsr:@denotest/add@^1.0.0", + "@denotest/add/": "jsr:/@denotest/add@^1.0.0/", + "@denotest/subtract": "jsr:@denotest/subtract@^1.0.0", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@^1.0.0/data-json" + } + } +} diff --git a/tests/specs/update/deno_json/update_latest/deno.lock.out b/tests/specs/update/deno_json/update_latest/deno.lock.out new file mode 100644 index 00000000000000..ad83546ab194b3 --- /dev/null +++ b/tests/specs/update/deno_json/update_latest/deno.lock.out @@ -0,0 +1,43 @@ +{ + "version": "4", + "specifiers": { + "jsr:@denotest/add@1": "1.0.0", + "jsr:@denotest/multiple-exports@1": "1.0.0", + "jsr:@denotest/subtract@1": "1.0.0", + "npm:@denotest/bin@1": "1.0.0", + "npm:@denotest/breaking-change-between-versions@2": "2.0.0", + "npm:@denotest/has-patch-versions@0.2": "0.2.0" + }, + "jsr": { + "@denotest/add@1.0.0": { + "integrity": "3b2e675c1ad7fba2a45bc251992e01aff08a3c974ac09079b11e6a5b95d4bfcb" + }, + "@denotest/multiple-exports@1.0.0": { + "integrity": "efe9748a0c0939c7ac245fee04acc0c42bd7a61874ff71a360c4543e4f5f6b36" + }, + "@denotest/subtract@1.0.0": { + "integrity": "e178a7101c073e93d9efa6833d5cbf83bc1bc8d509b7c2a5ecbf74265e917597" + } + }, + "npm": { + "@denotest/bin@1.0.0": { + "integrity": "sha512-ZtrWnYYPIzw4a9H1uNeZRZRWuLCpHZZU/SllIyFLqcTLH/3zdRI8UH4Z1Kf+8N++bWGO3fg8Ev4vvS1LoLlidg==" + }, + "@denotest/breaking-change-between-versions@2.0.0": { + "integrity": "sha512-3eQpPhhJYbSHaAmpgyVT8IM3+MkxcAQl90Uw8zmuTiFs64Wt3HGzSz74cwPlvfqqesRktm8fBZMmrtxVo3ENzw==" + }, + "@denotest/has-patch-versions@0.2.0": { + "integrity": "sha512-7XIVGrBMyqnts5/wcc7dn7rVl4IWrCiGUT2GLDSLWnogOMIZBapJJLW9n8Leq1bDTJ3U6aDTEFKz9fVSOwZfLQ==" + } + }, + "workspace": { + "dependencies": [ + "jsr:@denotest/add@1", + "jsr:@denotest/multiple-exports@1", + "jsr:@denotest/subtract@1", + "npm:@denotest/bin@1", + "npm:@denotest/breaking-change-between-versions@2", + "npm:@denotest/has-patch-versions@0.2" + ] + } +} diff --git a/tests/specs/update/deno_json/update_latest/update.out b/tests/specs/update/deno_json/update_latest/update.out new file mode 100644 index 00000000000000..35e1ef9fe5dacb --- /dev/null +++ b/tests/specs/update/deno_json/update_latest/update.out @@ -0,0 +1,16 @@ +[UNORDERED_START] +Download http://127.0.0.1:4250/@denotest/add/1.0.0/mod.ts +Download http://127.0.0.1:4250/@denotest/subtract/1.0.0/mod.ts +Download http://127.0.0.1:4250/@denotest/multiple-exports/1.0.0_meta.json +Download http://127.0.0.1:4250/@denotest/multiple-exports/1.0.0/data.json +Download http://localhost:4260/@denotest/has-patch-versions/0.2.0.tgz +Download http://localhost:4260/@denotest/bin/1.0.0.tgz +Download http://localhost:4260/@denotest/breaking-change-between-versions/2.0.0.tgz +[UNORDERED_END] +Updated 6 dependencies: + - jsr:@denotest/add 0.2.0 -> 1.0.0 + - jsr:@denotest/multiple-exports 0.2.0 -> 1.0.0 + - jsr:@denotest/subtract 0.2.0 -> 1.0.0 + - npm:@denotest/bin 0.6.0 -> 1.0.0 + - npm:@denotest/breaking-change-between-versions 1.0.0 -> 2.0.0 + - npm:@denotest/has-patch-versions 0.1.0 -> 0.2.0 diff --git a/tests/specs/update/mixed_workspace/__test__.jsonc b/tests/specs/update/mixed_workspace/__test__.jsonc new file mode 100644 index 00000000000000..8c846467d47894 --- /dev/null +++ b/tests/specs/update/mixed_workspace/__test__.jsonc @@ -0,0 +1,153 @@ +{ + "tempDir": true, + "tests": { + // just to make sure install doesn't change the lockfile + "sanity_lockfile_up_to_date": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": [ + "eval", + "const now = Deno.readTextFileSync('./deno.lock'); console.log(now.trim());" + ], + "output": "deno.lock.orig.out" + } + ] + }, + "print_outdated_root": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated", + "output": "print_outdated/root.out" + } + ] + }, + "print_outdated_recursive": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --recursive", + "output": "print_outdated/recursive.out" + } + ] + }, + "print_outdated_subdir": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "cwd": "member-a", + "args": "outdated", + "output": "print_outdated/member_a.out" + }, + { + "cwd": "member-b", + "args": "outdated", + "output": "print_outdated/member_b.out" + } + ] + }, + "update_latest_root": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update --latest", + "output": "update_latest/root/update.out" + }, + { + "args": "-A print_file.ts ./deno.json", + "output": "./update_latest/root/deno.json.out" + } + ] + }, + "update_latest_subdir": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "cwd": "member-a", + "args": "outdated --update --latest", + "output": "update_latest/subdir/member_a.out" + }, + { + "args": "-A print_file.ts ./member-a/deno.json", + "output": "update_latest/subdir/member_a_deno.json.out" + }, + { + "cwd": "member-b", + "args": "outdated --update --latest", + "output": "update_latest/subdir/member_b.out" + }, + { + "args": "-A print_file.ts ./member-b/package.json", + "output": "update_latest/subdir/member_b_package.json.out" + } + ] + }, + "update_latest_recursive": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update --latest --recursive", + "output": "update_latest/recursive/update.out" + }, + { + "args": "-A print_file.ts ./deno.json", + "output": "update_latest/root/deno.json.out" + }, + { + "args": "-A print_file.ts ./member-a/deno.json", + "output": "update_latest/subdir/member_a_deno.json.out" + }, + { + "args": "-A print_file.ts ./member-b/package.json", + "output": "update_latest/subdir/member_b_package.json.out" + } + ] + }, + "update_filtered": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update --latest --recursive @denotest/add @denotest/sub* !@denotest/breaking* aliased @denotest/with-subpath@0.5.0", + "output": "filtered/update.out" + }, + { + "args": "-A print_file.ts ./deno.json", + "output": "./update_latest/root/deno.json.out" + }, + { + "args": "-A print_file.ts ./member-a/deno.json", + "output": "./filtered/member_a_deno.json.out" + }, + { + "args": "-A print_file.ts ./member-b/package.json", + "output": "./filtered/member_b_package.json.out" + } + ] + } + } +} diff --git a/tests/specs/update/mixed_workspace/deno.json b/tests/specs/update/mixed_workspace/deno.json new file mode 100644 index 00000000000000..e4034d3a31f0e9 --- /dev/null +++ b/tests/specs/update/mixed_workspace/deno.json @@ -0,0 +1,6 @@ +{ + "workspace": ["./member-a", "./member-b"], + "imports": { + "@denotest/subtract": "jsr:@denotest/subtract@^0.2.0" + } +} diff --git a/tests/specs/update/mixed_workspace/deno.lock b/tests/specs/update/mixed_workspace/deno.lock new file mode 100644 index 00000000000000..23613ce58dfb2f --- /dev/null +++ b/tests/specs/update/mixed_workspace/deno.lock @@ -0,0 +1,55 @@ +{ + "version": "4", + "specifiers": { + "jsr:@denotest/add@0.2": "0.2.1", + "jsr:@denotest/multiple-exports@0.2.0": "0.2.0", + "jsr:@denotest/subtract@0.2": "0.2.0", + "npm:@denotest/bin@0.6.0": "0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0", + "npm:@denotest/has-patch-versions@0.1.0": "0.1.0" + }, + "jsr": { + "@denotest/add@0.2.1": { + "integrity": "a9076d30ecb42b2fc6dd95e7055fbf4e6358b53f550741bd7f60089d19f68848" + }, + "@denotest/multiple-exports@0.2.0": { + "integrity": "efe9748a0c0939c7ac245fee04acc0c42bd7a61874ff71a360c4543e4f5f6b36" + }, + "@denotest/subtract@0.2.0": { + "integrity": "c9650fc559ab2430effc0c7fb1540e3aa89888fbdd926335ccfdeac57eb3a64d" + } + }, + "npm": { + "@denotest/bin@0.6.0": { + "integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ==" + }, + "@denotest/breaking-change-between-versions@1.0.0": { + "integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw==" + }, + "@denotest/has-patch-versions@0.1.0": { + "integrity": "sha512-H/MBo0jKDdMsX4AAGEGQbZj70nfNe3oUNZXbohYHhqf9EfpLnXp/7FC29ZdfV4+p6VjEcOGdCtXc6rilE6iYpg==" + } + }, + "workspace": { + "dependencies": [ + "jsr:@denotest/subtract@0.2" + ], + "members": { + "member-a": { + "dependencies": [ + "jsr:@denotest/add@0.2", + "jsr:@denotest/multiple-exports@0.2.0", + "npm:@denotest/breaking-change-between-versions@1.0.0" + ] + }, + "member-b": { + "packageJson": { + "dependencies": [ + "npm:@denotest/bin@0.6.0", + "npm:@denotest/has-patch-versions@0.1.0" + ] + } + } + } + } +} diff --git a/tests/specs/update/mixed_workspace/deno.lock.orig.out b/tests/specs/update/mixed_workspace/deno.lock.orig.out new file mode 100644 index 00000000000000..23613ce58dfb2f --- /dev/null +++ b/tests/specs/update/mixed_workspace/deno.lock.orig.out @@ -0,0 +1,55 @@ +{ + "version": "4", + "specifiers": { + "jsr:@denotest/add@0.2": "0.2.1", + "jsr:@denotest/multiple-exports@0.2.0": "0.2.0", + "jsr:@denotest/subtract@0.2": "0.2.0", + "npm:@denotest/bin@0.6.0": "0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0", + "npm:@denotest/has-patch-versions@0.1.0": "0.1.0" + }, + "jsr": { + "@denotest/add@0.2.1": { + "integrity": "a9076d30ecb42b2fc6dd95e7055fbf4e6358b53f550741bd7f60089d19f68848" + }, + "@denotest/multiple-exports@0.2.0": { + "integrity": "efe9748a0c0939c7ac245fee04acc0c42bd7a61874ff71a360c4543e4f5f6b36" + }, + "@denotest/subtract@0.2.0": { + "integrity": "c9650fc559ab2430effc0c7fb1540e3aa89888fbdd926335ccfdeac57eb3a64d" + } + }, + "npm": { + "@denotest/bin@0.6.0": { + "integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ==" + }, + "@denotest/breaking-change-between-versions@1.0.0": { + "integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw==" + }, + "@denotest/has-patch-versions@0.1.0": { + "integrity": "sha512-H/MBo0jKDdMsX4AAGEGQbZj70nfNe3oUNZXbohYHhqf9EfpLnXp/7FC29ZdfV4+p6VjEcOGdCtXc6rilE6iYpg==" + } + }, + "workspace": { + "dependencies": [ + "jsr:@denotest/subtract@0.2" + ], + "members": { + "member-a": { + "dependencies": [ + "jsr:@denotest/add@0.2", + "jsr:@denotest/multiple-exports@0.2.0", + "npm:@denotest/breaking-change-between-versions@1.0.0" + ] + }, + "member-b": { + "packageJson": { + "dependencies": [ + "npm:@denotest/bin@0.6.0", + "npm:@denotest/has-patch-versions@0.1.0" + ] + } + } + } + } +} diff --git a/tests/specs/update/mixed_workspace/filtered/member_a_deno.json.out b/tests/specs/update/mixed_workspace/filtered/member_a_deno.json.out new file mode 100644 index 00000000000000..2b622efee554c2 --- /dev/null +++ b/tests/specs/update/mixed_workspace/filtered/member_a_deno.json.out @@ -0,0 +1,10 @@ +{ + "name": "@denotest/member-a", + "exports": "./mod.ts", + "imports": { + "@denotest/add": "jsr:@denotest/add@^1.0.0", + "@denotest/add/": "jsr:/@denotest/add@^1.0.0/", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@0.5.0/data-json", + "@denotest/breaking-change-between-versions": "npm:@denotest/breaking-change-between-versions@1.0.0" + } +} diff --git a/tests/specs/update/mixed_workspace/filtered/member_b_package.json.out b/tests/specs/update/mixed_workspace/filtered/member_b_package.json.out new file mode 100644 index 00000000000000..7e582feeabb116 --- /dev/null +++ b/tests/specs/update/mixed_workspace/filtered/member_b_package.json.out @@ -0,0 +1,8 @@ +{ + "name": "@denotest/member-b", + "version": "0.1.0", + "dependencies": { + "@denotest/has-patch-versions": "0.1.0", + "aliased": "npm:@denotest/bin@^1.0.0" + } +} diff --git a/tests/specs/update/mixed_workspace/filtered/update.out b/tests/specs/update/mixed_workspace/filtered/update.out new file mode 100644 index 00000000000000..26543e51676186 --- /dev/null +++ b/tests/specs/update/mixed_workspace/filtered/update.out @@ -0,0 +1,12 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/bin/1.0.0.tgz +Download http://127.0.0.1:4250/@denotest/multiple-exports/0.5.0_meta.json +Download http://127.0.0.1:4250/@denotest/multiple-exports/0.5.0/data.json +Download http://127.0.0.1:4250/@denotest/add/1.0.0/mod.ts +Download http://127.0.0.1:4250/@denotest/subtract/1.0.0/mod.ts +[UNORDERED_END] +Updated 4 dependencies: + - jsr:@denotest/add 0.2.1 -> 1.0.0 + - jsr:@denotest/multiple-exports 0.2.0 -> 0.5.0 + - jsr:@denotest/subtract 0.2.0 -> 1.0.0 + - npm:@denotest/bin 0.6.0 -> 1.0.0 diff --git a/tests/specs/update/mixed_workspace/member-a/deno.json b/tests/specs/update/mixed_workspace/member-a/deno.json new file mode 100644 index 00000000000000..0340d3bb920117 --- /dev/null +++ b/tests/specs/update/mixed_workspace/member-a/deno.json @@ -0,0 +1,10 @@ +{ + "name": "@denotest/member-a", + "exports": "./mod.ts", + "imports": { + "@denotest/add": "jsr:@denotest/add@^0.2.0", + "@denotest/add/": "jsr:/@denotest/add@^0.2.0/", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@0.2.0/data-json", + "@denotest/breaking-change-between-versions": "npm:@denotest/breaking-change-between-versions@1.0.0" + } +} diff --git a/tests/specs/update/mixed_workspace/member-a/mod.ts b/tests/specs/update/mixed_workspace/member-a/mod.ts new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/tests/specs/update/mixed_workspace/member-b/package.json b/tests/specs/update/mixed_workspace/member-b/package.json new file mode 100644 index 00000000000000..0f9929a478c962 --- /dev/null +++ b/tests/specs/update/mixed_workspace/member-b/package.json @@ -0,0 +1,8 @@ +{ + "name": "@denotest/member-b", + "version": "0.1.0", + "dependencies": { + "@denotest/has-patch-versions": "0.1.0", + "aliased": "npm:@denotest/bin@0.6.0" + } +} diff --git a/tests/specs/update/mixed_workspace/print_file.ts b/tests/specs/update/mixed_workspace/print_file.ts new file mode 100644 index 00000000000000..c57b6c3a4e56f3 --- /dev/null +++ b/tests/specs/update/mixed_workspace/print_file.ts @@ -0,0 +1,2 @@ +const file = Deno.args[0]; +console.log(Deno.readTextFileSync(file).trim()); diff --git a/tests/specs/update/mixed_workspace/print_outdated/member_a.out b/tests/specs/update/mixed_workspace/print_outdated/member_a.out new file mode 100644 index 00000000000000..8699aac2bfbfa2 --- /dev/null +++ b/tests/specs/update/mixed_workspace/print_outdated/member_a.out @@ -0,0 +1,9 @@ +┌────────────────────────────────────────────────┬─────────┬────────┬────────┐ +│ Package │ Current │ Update │ Latest │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/multiple-exports │ 0.2.0 │ 0.2.0 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/add │ 0.2.1 │ 0.2.1 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/breaking-change-between-versions │ 1.0.0 │ 1.0.0 │ 2.0.0 │ +└────────────────────────────────────────────────┴─────────┴────────┴────────┘ diff --git a/tests/specs/update/mixed_workspace/print_outdated/member_b.out b/tests/specs/update/mixed_workspace/print_outdated/member_b.out new file mode 100644 index 00000000000000..fc8ef320a8dc14 --- /dev/null +++ b/tests/specs/update/mixed_workspace/print_outdated/member_b.out @@ -0,0 +1,7 @@ +┌──────────────────────────────────┬─────────┬────────┬────────┐ +│ Package │ Current │ Update │ Latest │ +├──────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/has-patch-versions │ 0.1.0 │ 0.1.0 │ 0.2.0 │ +├──────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/bin │ 0.6.0 │ 0.6.0 │ 1.0.0 │ +└──────────────────────────────────┴─────────┴────────┴────────┘ diff --git a/tests/specs/update/mixed_workspace/print_outdated/recursive.out b/tests/specs/update/mixed_workspace/print_outdated/recursive.out new file mode 100644 index 00000000000000..ca03776a9ca3a4 --- /dev/null +++ b/tests/specs/update/mixed_workspace/print_outdated/recursive.out @@ -0,0 +1,15 @@ +┌────────────────────────────────────────────────┬─────────┬────────┬────────┐ +│ Package │ Current │ Update │ Latest │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/multiple-exports │ 0.2.0 │ 0.2.0 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/subtract │ 0.2.0 │ 0.2.0 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/add │ 0.2.1 │ 0.2.1 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/has-patch-versions │ 0.1.0 │ 0.1.0 │ 0.2.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/bin │ 0.6.0 │ 0.6.0 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/breaking-change-between-versions │ 1.0.0 │ 1.0.0 │ 2.0.0 │ +└────────────────────────────────────────────────┴─────────┴────────┴────────┘ diff --git a/tests/specs/update/mixed_workspace/print_outdated/root.out b/tests/specs/update/mixed_workspace/print_outdated/root.out new file mode 100644 index 00000000000000..c7934edc79fa66 --- /dev/null +++ b/tests/specs/update/mixed_workspace/print_outdated/root.out @@ -0,0 +1,5 @@ +┌────────────────────────┬─────────┬────────┬────────┐ +│ Package │ Current │ Update │ Latest │ +├────────────────────────┼─────────┼────────┼────────┤ +│ jsr:@denotest/subtract │ 0.2.0 │ 0.2.0 │ 1.0.0 │ +└────────────────────────┴─────────┴────────┴────────┘ diff --git a/tests/specs/update/mixed_workspace/update_latest/recursive/update.out b/tests/specs/update/mixed_workspace/update_latest/recursive/update.out new file mode 100644 index 00000000000000..ef6e36ded5e732 --- /dev/null +++ b/tests/specs/update/mixed_workspace/update_latest/recursive/update.out @@ -0,0 +1,16 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/breaking-change-between-versions/2.0.0.tgz +Download http://localhost:4260/@denotest/has-patch-versions/0.2.0.tgz +Download http://localhost:4260/@denotest/bin/1.0.0.tgz +Download http://127.0.0.1:4250/@denotest/multiple-exports/1.0.0_meta.json +Download http://127.0.0.1:4250/@denotest/multiple-exports/1.0.0/data.json +Download http://127.0.0.1:4250/@denotest/subtract/1.0.0/mod.ts +Download http://127.0.0.1:4250/@denotest/add/1.0.0/mod.ts +[UNORDERED_END] +Updated 6 dependencies: + - jsr:@denotest/add 0.2.1 -> 1.0.0 + - jsr:@denotest/multiple-exports 0.2.0 -> 1.0.0 + - jsr:@denotest/subtract 0.2.0 -> 1.0.0 + - npm:@denotest/bin 0.6.0 -> 1.0.0 + - npm:@denotest/breaking-change-between-versions 1.0.0 -> 2.0.0 + - npm:@denotest/has-patch-versions 0.1.0 -> 0.2.0 diff --git a/tests/specs/update/mixed_workspace/update_latest/root/deno.json.out b/tests/specs/update/mixed_workspace/update_latest/root/deno.json.out new file mode 100644 index 00000000000000..0317e6c39f66e6 --- /dev/null +++ b/tests/specs/update/mixed_workspace/update_latest/root/deno.json.out @@ -0,0 +1,6 @@ +{ + "workspace": ["./member-a", "./member-b"], + "imports": { + "@denotest/subtract": "jsr:@denotest/subtract@^1.0.0" + } +} diff --git a/tests/specs/update/mixed_workspace/update_latest/root/update.out b/tests/specs/update/mixed_workspace/update_latest/root/update.out new file mode 100644 index 00000000000000..15d21621e8604c --- /dev/null +++ b/tests/specs/update/mixed_workspace/update_latest/root/update.out @@ -0,0 +1,3 @@ +Download http://127.0.0.1:4250/@denotest/subtract/1.0.0/mod.ts +Updated 1 dependency: + - jsr:@denotest/subtract 0.2.0 -> 1.0.0 diff --git a/tests/specs/update/mixed_workspace/update_latest/subdir/member_a.out b/tests/specs/update/mixed_workspace/update_latest/subdir/member_a.out new file mode 100644 index 00000000000000..f16e0b7f2a940a --- /dev/null +++ b/tests/specs/update/mixed_workspace/update_latest/subdir/member_a.out @@ -0,0 +1,10 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/breaking-change-between-versions/2.0.0.tgz +Download http://127.0.0.1:4250/@denotest/multiple-exports/1.0.0_meta.json +Download http://127.0.0.1:4250/@denotest/multiple-exports/1.0.0/data.json +Download http://127.0.0.1:4250/@denotest/add/1.0.0/mod.ts +[UNORDERED_END] +Updated 3 dependencies: + - jsr:@denotest/add 0.2.1 -> 1.0.0 + - jsr:@denotest/multiple-exports 0.2.0 -> 1.0.0 + - npm:@denotest/breaking-change-between-versions 1.0.0 -> 2.0.0 diff --git a/tests/specs/update/mixed_workspace/update_latest/subdir/member_a_deno.json.out b/tests/specs/update/mixed_workspace/update_latest/subdir/member_a_deno.json.out new file mode 100644 index 00000000000000..9210123b828976 --- /dev/null +++ b/tests/specs/update/mixed_workspace/update_latest/subdir/member_a_deno.json.out @@ -0,0 +1,10 @@ +{ + "name": "@denotest/member-a", + "exports": "./mod.ts", + "imports": { + "@denotest/add": "jsr:@denotest/add@^1.0.0", + "@denotest/add/": "jsr:/@denotest/add@^1.0.0/", + "@denotest/with-subpath": "jsr:@denotest/multiple-exports@^1.0.0/data-json", + "@denotest/breaking-change-between-versions": "npm:@denotest/breaking-change-between-versions@^2.0.0" + } +} diff --git a/tests/specs/update/mixed_workspace/update_latest/subdir/member_b.out b/tests/specs/update/mixed_workspace/update_latest/subdir/member_b.out new file mode 100644 index 00000000000000..5ca3297e20ee84 --- /dev/null +++ b/tests/specs/update/mixed_workspace/update_latest/subdir/member_b.out @@ -0,0 +1,7 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/bin/1.0.0.tgz +Download http://localhost:4260/@denotest/has-patch-versions/0.2.0.tgz +[UNORDERED_END] +Updated 2 dependencies: + - npm:@denotest/bin 0.6.0 -> 1.0.0 + - npm:@denotest/has-patch-versions 0.1.0 -> 0.2.0 diff --git a/tests/specs/update/mixed_workspace/update_latest/subdir/member_b_package.json.out b/tests/specs/update/mixed_workspace/update_latest/subdir/member_b_package.json.out new file mode 100644 index 00000000000000..1426fcd7f8114f --- /dev/null +++ b/tests/specs/update/mixed_workspace/update_latest/subdir/member_b_package.json.out @@ -0,0 +1,8 @@ +{ + "name": "@denotest/member-b", + "version": "0.1.0", + "dependencies": { + "@denotest/has-patch-versions": "^0.2.0", + "aliased": "npm:@denotest/bin@^1.0.0" + } +} diff --git a/tests/specs/update/package_json/__test__.jsonc b/tests/specs/update/package_json/__test__.jsonc new file mode 100644 index 00000000000000..19d576dfc00194 --- /dev/null +++ b/tests/specs/update/package_json/__test__.jsonc @@ -0,0 +1,100 @@ +{ + "tempDir": true, + "tests": { + "sanity_lockfile_up_to_date": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": [ + "eval", + "const now = Deno.readTextFileSync('./deno.lock'); console.log(now.trim());" + ], + "output": "deno.lock.orig.out" + } + ] + }, + "print_outdated": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated", + "output": "outdated.out" + } + ] + }, + "print_outdated_compatible": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --compatible", + "output": "outdated_compatible.out" + } + ] + }, + "update_compatible": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update", + "output": "./update_compatible/update.out" + }, + { + "args": "-A ./print_file.ts ./package.json", + "output": "./update_compatible/package.json.out" + }, + { + "args": "-A ./print_file.ts ./deno.lock", + "output": "./update_compatible/deno.lock.out" + } + ] + }, + "update_latest": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update --latest", + "output": "update_latest/update.out" + }, + { + "args": "-A ./print_file.ts ./package.json", + "output": "update_latest/package.json.out" + }, + { + "args": "-A ./print_file.ts ./deno.lock", + "output": "update_latest/deno.lock.out" + } + ] + }, + "update_filtered": { + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "outdated --update --latest @denotest/has-patch* aliased@0.7.0", + "output": "filtered/update.out" + }, + { + "args": "-A print_file.ts ./package.json", + "output": "filtered/package.json.out" + } + ] + } + } +} diff --git a/tests/specs/update/package_json/deno.lock b/tests/specs/update/package_json/deno.lock new file mode 100644 index 00000000000000..05253094db79a0 --- /dev/null +++ b/tests/specs/update/package_json/deno.lock @@ -0,0 +1,28 @@ +{ + "version": "4", + "specifiers": { + "npm:@denotest/bin@0.6": "0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0", + "npm:@denotest/has-patch-versions@0.1": "0.1.0" + }, + "npm": { + "@denotest/bin@0.6.0": { + "integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ==" + }, + "@denotest/breaking-change-between-versions@1.0.0": { + "integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw==" + }, + "@denotest/has-patch-versions@0.1.0": { + "integrity": "sha512-H/MBo0jKDdMsX4AAGEGQbZj70nfNe3oUNZXbohYHhqf9EfpLnXp/7FC29ZdfV4+p6VjEcOGdCtXc6rilE6iYpg==" + } + }, + "workspace": { + "packageJson": { + "dependencies": [ + "npm:@denotest/bin@0.6", + "npm:@denotest/breaking-change-between-versions@1.0.0", + "npm:@denotest/has-patch-versions@0.1" + ] + } + } +} diff --git a/tests/specs/update/package_json/deno.lock.orig.out b/tests/specs/update/package_json/deno.lock.orig.out new file mode 100644 index 00000000000000..05253094db79a0 --- /dev/null +++ b/tests/specs/update/package_json/deno.lock.orig.out @@ -0,0 +1,28 @@ +{ + "version": "4", + "specifiers": { + "npm:@denotest/bin@0.6": "0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0", + "npm:@denotest/has-patch-versions@0.1": "0.1.0" + }, + "npm": { + "@denotest/bin@0.6.0": { + "integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ==" + }, + "@denotest/breaking-change-between-versions@1.0.0": { + "integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw==" + }, + "@denotest/has-patch-versions@0.1.0": { + "integrity": "sha512-H/MBo0jKDdMsX4AAGEGQbZj70nfNe3oUNZXbohYHhqf9EfpLnXp/7FC29ZdfV4+p6VjEcOGdCtXc6rilE6iYpg==" + } + }, + "workspace": { + "packageJson": { + "dependencies": [ + "npm:@denotest/bin@0.6", + "npm:@denotest/breaking-change-between-versions@1.0.0", + "npm:@denotest/has-patch-versions@0.1" + ] + } + } +} diff --git a/tests/specs/update/package_json/filtered/package.json.out b/tests/specs/update/package_json/filtered/package.json.out new file mode 100644 index 00000000000000..39faff22d668ce --- /dev/null +++ b/tests/specs/update/package_json/filtered/package.json.out @@ -0,0 +1,9 @@ +{ + "dependencies": { + "@denotest/has-patch-versions": "^0.2.0", + "@denotest/breaking-change-between-versions": "1.0.0" + }, + "devDependencies": { + "aliased": "npm:@denotest/bin@0.7.0" + } +} diff --git a/tests/specs/update/package_json/filtered/update.out b/tests/specs/update/package_json/filtered/update.out new file mode 100644 index 00000000000000..3093281f10fb84 --- /dev/null +++ b/tests/specs/update/package_json/filtered/update.out @@ -0,0 +1,9 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/bin/0.7.0.tgz +Download http://localhost:4260/@denotest/has-patch-versions/0.2.0.tgz +Initialize @denotest/has-patch-versions@0.2.0 +Initialize @denotest/bin@0.7.0 +[UNORDERED_END] +Updated 2 dependencies: + - npm:@denotest/bin 0.6.0 -> 0.7.0 + - npm:@denotest/has-patch-versions 0.1.0 -> 0.2.0 diff --git a/tests/specs/update/package_json/outdated.out b/tests/specs/update/package_json/outdated.out new file mode 100644 index 00000000000000..d672aace7f08ad --- /dev/null +++ b/tests/specs/update/package_json/outdated.out @@ -0,0 +1,9 @@ +┌────────────────────────────────────────────────┬─────────┬────────┬────────┐ +│ Package │ Current │ Update │ Latest │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/has-patch-versions │ 0.1.0 │ 0.1.1 │ 0.2.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/bin │ 0.6.0 │ 0.6.0 │ 1.0.0 │ +├────────────────────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/breaking-change-between-versions │ 1.0.0 │ 1.0.0 │ 2.0.0 │ +└────────────────────────────────────────────────┴─────────┴────────┴────────┘ diff --git a/tests/specs/update/package_json/outdated_compatible.out b/tests/specs/update/package_json/outdated_compatible.out new file mode 100644 index 00000000000000..8a682c461cbb51 --- /dev/null +++ b/tests/specs/update/package_json/outdated_compatible.out @@ -0,0 +1,5 @@ +┌──────────────────────────────────┬─────────┬────────┬────────┐ +│ Package │ Current │ Update │ Latest │ +├──────────────────────────────────┼─────────┼────────┼────────┤ +│ npm:@denotest/has-patch-versions │ 0.1.0 │ 0.1.1 │ 0.2.0 │ +└──────────────────────────────────┴─────────┴────────┴────────┘ diff --git a/tests/specs/update/package_json/package.json b/tests/specs/update/package_json/package.json new file mode 100644 index 00000000000000..9cd8cf59dcd60a --- /dev/null +++ b/tests/specs/update/package_json/package.json @@ -0,0 +1,9 @@ +{ + "dependencies": { + "@denotest/has-patch-versions": "^0.1.0", + "@denotest/breaking-change-between-versions": "1.0.0" + }, + "devDependencies": { + "aliased": "npm:@denotest/bin@^0.6.0" + } +} diff --git a/tests/specs/update/package_json/print_file.ts b/tests/specs/update/package_json/print_file.ts new file mode 100644 index 00000000000000..c57b6c3a4e56f3 --- /dev/null +++ b/tests/specs/update/package_json/print_file.ts @@ -0,0 +1,2 @@ +const file = Deno.args[0]; +console.log(Deno.readTextFileSync(file).trim()); diff --git a/tests/specs/update/package_json/update_compatible/deno.lock.out b/tests/specs/update/package_json/update_compatible/deno.lock.out new file mode 100644 index 00000000000000..f82a21ee46c785 --- /dev/null +++ b/tests/specs/update/package_json/update_compatible/deno.lock.out @@ -0,0 +1,28 @@ +{ + "version": "4", + "specifiers": { + "npm:@denotest/bin@0.6": "0.6.0", + "npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0", + "npm:@denotest/has-patch-versions@~0.1.1": "0.1.1" + }, + "npm": { + "@denotest/bin@0.6.0": { + "integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ==" + }, + "@denotest/breaking-change-between-versions@1.0.0": { + "integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw==" + }, + "@denotest/has-patch-versions@0.1.1": { + "integrity": "sha512-slUqYhu6DrPiSdNzmW5aMdW2/osIYnDP0yY3CwgLzAiyK0/cwb0epSpTSyZEmTKXA3rezxxC7ASSsnD34uH1/w==" + } + }, + "workspace": { + "packageJson": { + "dependencies": [ + "npm:@denotest/bin@0.6", + "npm:@denotest/breaking-change-between-versions@1.0.0", + "npm:@denotest/has-patch-versions@~0.1.1" + ] + } + } +} diff --git a/tests/specs/update/package_json/update_compatible/package.json.out b/tests/specs/update/package_json/update_compatible/package.json.out new file mode 100644 index 00000000000000..6f822ee5d61457 --- /dev/null +++ b/tests/specs/update/package_json/update_compatible/package.json.out @@ -0,0 +1,9 @@ +{ + "dependencies": { + "@denotest/has-patch-versions": "^0.1.1", + "@denotest/breaking-change-between-versions": "1.0.0" + }, + "devDependencies": { + "aliased": "npm:@denotest/bin@^0.6.0" + } +} diff --git a/tests/specs/update/package_json/update_compatible/update.out b/tests/specs/update/package_json/update_compatible/update.out new file mode 100644 index 00000000000000..4c3c740791992a --- /dev/null +++ b/tests/specs/update/package_json/update_compatible/update.out @@ -0,0 +1,4 @@ +Download http://localhost:4260/@denotest/has-patch-versions/0.1.1.tgz +Initialize @denotest/has-patch-versions@0.1.1 +Updated 1 dependency: + - npm:@denotest/has-patch-versions 0.1.0 -> 0.1.1 diff --git a/tests/specs/update/package_json/update_latest/deno.lock.out b/tests/specs/update/package_json/update_latest/deno.lock.out new file mode 100644 index 00000000000000..9a9b1bad5ebcbc --- /dev/null +++ b/tests/specs/update/package_json/update_latest/deno.lock.out @@ -0,0 +1,28 @@ +{ + "version": "4", + "specifiers": { + "npm:@denotest/bin@1": "1.0.0", + "npm:@denotest/breaking-change-between-versions@2": "2.0.0", + "npm:@denotest/has-patch-versions@0.2": "0.2.0" + }, + "npm": { + "@denotest/bin@1.0.0": { + "integrity": "sha512-ZtrWnYYPIzw4a9H1uNeZRZRWuLCpHZZU/SllIyFLqcTLH/3zdRI8UH4Z1Kf+8N++bWGO3fg8Ev4vvS1LoLlidg==" + }, + "@denotest/breaking-change-between-versions@2.0.0": { + "integrity": "sha512-3eQpPhhJYbSHaAmpgyVT8IM3+MkxcAQl90Uw8zmuTiFs64Wt3HGzSz74cwPlvfqqesRktm8fBZMmrtxVo3ENzw==" + }, + "@denotest/has-patch-versions@0.2.0": { + "integrity": "sha512-7XIVGrBMyqnts5/wcc7dn7rVl4IWrCiGUT2GLDSLWnogOMIZBapJJLW9n8Leq1bDTJ3U6aDTEFKz9fVSOwZfLQ==" + } + }, + "workspace": { + "packageJson": { + "dependencies": [ + "npm:@denotest/bin@1", + "npm:@denotest/breaking-change-between-versions@2", + "npm:@denotest/has-patch-versions@0.2" + ] + } + } +} diff --git a/tests/specs/update/package_json/update_latest/package.json.out b/tests/specs/update/package_json/update_latest/package.json.out new file mode 100644 index 00000000000000..fb483d78bd7cdf --- /dev/null +++ b/tests/specs/update/package_json/update_latest/package.json.out @@ -0,0 +1,9 @@ +{ + "dependencies": { + "@denotest/has-patch-versions": "^0.2.0", + "@denotest/breaking-change-between-versions": "^2.0.0" + }, + "devDependencies": { + "aliased": "npm:@denotest/bin@^1.0.0" + } +} diff --git a/tests/specs/update/package_json/update_latest/update.out b/tests/specs/update/package_json/update_latest/update.out new file mode 100644 index 00000000000000..a24ae1e32b36cf --- /dev/null +++ b/tests/specs/update/package_json/update_latest/update.out @@ -0,0 +1,14 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/bin/1.0.0.tgz +Download http://localhost:4260/@denotest/has-patch-versions/0.2.0.tgz +Download http://localhost:4260/@denotest/breaking-change-between-versions/2.0.0.tgz +Initialize @denotest/has-patch-versions@0.2.0 +Initialize @denotest/breaking-change-between-versions@2.0.0 +Initialize @denotest/bin@1.0.0 +[UNORDERED_END] +Updated 3 dependencies: +[UNORDERED_START] + - npm:@denotest/bin 0.6.0 -> 1.0.0 + - npm:@denotest/breaking-change-between-versions 1.0.0 -> 2.0.0 + - npm:@denotest/has-patch-versions 0.1.0 -> 0.2.0 +[UNORDERED_END] diff --git a/tests/testdata/fmt/badly_formatted.md b/tests/testdata/fmt/badly_formatted.md index 642918ceae89a4..be90ff845faca6 100644 --- a/tests/testdata/fmt/badly_formatted.md +++ b/tests/testdata/fmt/badly_formatted.md @@ -63,3 +63,15 @@ function foo(): number { let a:number ``` + + +```sql + seLect * , biz, buz +from baz; +``` + +```sql +-- deno-fmt-ignore-file + seLect * , biz, buz +from baz; +``` diff --git a/tests/testdata/fmt/badly_formatted.sql b/tests/testdata/fmt/badly_formatted.sql new file mode 100644 index 00000000000000..8b4cb978f0c896 --- /dev/null +++ b/tests/testdata/fmt/badly_formatted.sql @@ -0,0 +1,21 @@ +select * from foo; +update foo set a = 'b'Where id = 'biz'; + + + create table foo(id text not null +bar text, + biz int, + buz number NOT NULL +); + +INSERT + into + user_data + (first_name, +last_name, address, phone, email) +VALUES + ('foo', 'bar', + 'biz', 1, 'bix'); + + + diff --git a/tests/testdata/fmt/badly_formatted_fixed.md b/tests/testdata/fmt/badly_formatted_fixed.md index 21176742bbdf7a..7a482e058f632e 100644 --- a/tests/testdata/fmt/badly_formatted_fixed.md +++ b/tests/testdata/fmt/badly_formatted_fixed.md @@ -56,3 +56,18 @@ function foo(): number { let a: number; ``` + +```sql +SELECT + *, + biz, + buz +FROM + baz; +``` + +```sql +-- deno-fmt-ignore-file + seLect * , biz, buz +from baz; +``` diff --git a/tests/testdata/fmt/badly_formatted_fixed.sql b/tests/testdata/fmt/badly_formatted_fixed.sql new file mode 100644 index 00000000000000..d50c6192161949 --- /dev/null +++ b/tests/testdata/fmt/badly_formatted_fixed.sql @@ -0,0 +1,22 @@ +SELECT + * +FROM + foo; + +UPDATE + foo +SET + a = 'b' +WHERE + id = 'biz'; + +CREATE TABLE foo( + id text NOT NULL bar text, + biz int, + buz number NOT NULL +); + +INSERT INTO + user_data (first_name, last_name, address, phone, email) +VALUES + ('foo', 'bar', 'biz', 1, 'bix'); diff --git a/tests/testdata/run/extension_import.ts.out b/tests/testdata/run/extension_import.ts.out index 88039a9ce8c104..0ff656a9c8549d 100644 --- a/tests/testdata/run/extension_import.ts.out +++ b/tests/testdata/run/extension_import.ts.out @@ -1,8 +1,9 @@ -error: Unsupported scheme "ext" for module "ext:runtime/01_errors.js". Supported schemes: [ - "data", - "blob", - "file", - "http", - "https", -] +error: Unsupported scheme "ext" for module "ext:runtime/01_errors.js". Supported schemes: + - "blob" + - "data" + - "file" + - "http" + - "https" + - "jsr" + - "npm" at [WILDCARD]/extension_import.ts:1:8 diff --git a/tests/testdata/run/permissions_trace.ts b/tests/testdata/run/permissions_trace.ts new file mode 100644 index 00000000000000..d061ac6bf86280 --- /dev/null +++ b/tests/testdata/run/permissions_trace.ts @@ -0,0 +1,9 @@ +function foo() { + Deno.hostname(); +} + +function bar() { + foo(); +} + +bar(); diff --git a/tests/testdata/run/warn_on_deprecated_api/main.js b/tests/testdata/run/warn_on_deprecated_api/main.js deleted file mode 100644 index 8811df78de2792..00000000000000 --- a/tests/testdata/run/warn_on_deprecated_api/main.js +++ /dev/null @@ -1,34 +0,0 @@ -import { runEcho as runEcho2 } from "http://localhost:4545/run/warn_on_deprecated_api/mod.ts"; - -// @ts-ignore `Deno.run()` was soft-removed in Deno 2. -const p = Deno.run({ - cmd: [ - Deno.execPath(), - "eval", - "console.log('hello world')", - ], -}); -await p.status(); -p.close(); - -async function runEcho() { - // @ts-ignore `Deno.run()` was soft-removed in Deno 2. - const p = Deno.run({ - cmd: [ - Deno.execPath(), - "eval", - "console.log('hello world')", - ], - }); - await p.status(); - p.close(); -} - -await runEcho(); -await runEcho(); - -for (let i = 0; i < 10; i++) { - await runEcho(); -} - -await runEcho2(); diff --git a/tests/testdata/run/warn_on_deprecated_api/main.out b/tests/testdata/run/warn_on_deprecated_api/main.out deleted file mode 100644 index ef85a6f99bac3f..00000000000000 --- a/tests/testdata/run/warn_on_deprecated_api/main.out +++ /dev/null @@ -1,15 +0,0 @@ -Download http://localhost:4545/run/warn_on_deprecated_api/mod.ts -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world diff --git a/tests/testdata/run/warn_on_deprecated_api/main.verbose.out b/tests/testdata/run/warn_on_deprecated_api/main.verbose.out deleted file mode 100644 index e17562eef31a8e..00000000000000 --- a/tests/testdata/run/warn_on_deprecated_api/main.verbose.out +++ /dev/null @@ -1,60 +0,0 @@ -Download http://localhost:4545/run/warn_on_deprecated_api/mod.ts - -See the Deno 1 to 2 Migration Guide for more information at https://docs.deno.com/runtime/manual/advanced/migrate_deprecations - -Stack trace: - at [WILDCARD]warn_on_deprecated_api/main.js:3:16 - -hint: Use "Deno.Command()" API instead. - -hello world - -See the Deno 1 to 2 Migration Guide for more information at https://docs.deno.com/runtime/manual/advanced/migrate_deprecations - -Stack trace: - at runEcho ([WILDCARD]warn_on_deprecated_api/main.js:14:18) - at [WILDCARD]warn_on_deprecated_api/main.js:25:7 - -hint: Use "Deno.Command()" API instead. - -hello world - -See the Deno 1 to 2 Migration Guide for more information at https://docs.deno.com/runtime/manual/advanced/migrate_deprecations - -Stack trace: - at runEcho ([WILDCARD]warn_on_deprecated_api/main.js:14:18) - at [WILDCARD]warn_on_deprecated_api/main.js:26:7 - -hint: Use "Deno.Command()" API instead. - -hello world - -See the Deno 1 to 2 Migration Guide for more information at https://docs.deno.com/runtime/manual/advanced/migrate_deprecations - -Stack trace: - at runEcho ([WILDCARD]warn_on_deprecated_api/main.js:14:18) - at [WILDCARD]warn_on_deprecated_api/main.js:29:9 - -hint: Use "Deno.Command()" API instead. - -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world - -See the Deno 1 to 2 Migration Guide for more information at https://docs.deno.com/runtime/manual/advanced/migrate_deprecations - -Stack trace: - at runEcho (http://localhost:4545/run/warn_on_deprecated_api/mod.ts:2:18) - at [WILDCARD]warn_on_deprecated_api/main.js:32:7 - -hint: Use "Deno.Command()" API instead. -hint: It appears this API is used by a remote dependency. Try upgrading to the latest version of that dependency. - -hello world diff --git a/tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out b/tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out deleted file mode 100644 index ef85a6f99bac3f..00000000000000 --- a/tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out +++ /dev/null @@ -1,15 +0,0 @@ -Download http://localhost:4545/run/warn_on_deprecated_api/mod.ts -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world diff --git a/tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out b/tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out deleted file mode 100644 index ce3755d16683cc..00000000000000 --- a/tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out +++ /dev/null @@ -1,14 +0,0 @@ -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world -hello world diff --git a/tests/testdata/run/warn_on_deprecated_api/mod.ts b/tests/testdata/run/warn_on_deprecated_api/mod.ts deleted file mode 100644 index f74632b2cdfed0..00000000000000 --- a/tests/testdata/run/warn_on_deprecated_api/mod.ts +++ /dev/null @@ -1,11 +0,0 @@ -export async function runEcho() { - const p = Deno.run({ - cmd: [ - Deno.execPath(), - "eval", - "console.log('hello world')", - ], - }); - await p.status(); - p.close(); -} diff --git a/tests/testdata/wasm/math.ts b/tests/testdata/wasm/math.ts new file mode 100644 index 00000000000000..5a1de0865e775b --- /dev/null +++ b/tests/testdata/wasm/math.ts @@ -0,0 +1,8 @@ +// this file is imported by math_with_import.wasm +export function add(a: number, b: number) { + return a + b; +} + +export function subtract(a: number, b: number) { + return a - b; +} diff --git a/tests/testdata/wasm/math.wasm b/tests/testdata/wasm/math.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6b3950fcc5297b78e0cdfddc5b91ac72505c7c94 GIT binary patch literal 318 zcmY+8%}#?r6ov1dfkMHg)tw6ymYPaKn^x-52XNyHj2F1lTK+OKM7yGo=A(%*F>&>s zoRfSxK&D0jKo4KVFyJ7i0B~IF5Yd$g^U1Xw@acU1f^dNU^d8(v&2_6!0wfg$fN%QD zYRWBOpj1JY6gP#$P^mprr!q1uMQ|xRh%kcpaO9YdA*4=2HA671$?lgQKey(;R{WEC zR|qqujHUdjy7tgm*6=*-bX)W}Ya{%MnzE;o(Rt~Og^O{@*%&V3?1Zi!yZmOg+$GB- zx=psLO}cyBrqMcCZ{j44*Q-0YpIOo+TlL0dd(B2HW_52Vt2i#JHlxZcd~+z9m_O|| D`Uz8u literal 0 HcmV?d00001 diff --git a/tests/testdata/wasm/math_with_import.wasm b/tests/testdata/wasm/math_with_import.wasm new file mode 100644 index 0000000000000000000000000000000000000000..64e195e42b6a2ee67e2ef2fe89118c33cc2094ae GIT binary patch literal 449 zcmY+9PfNo<5XEP98~abFcoPu{f+#gL8`Gp7J@lvtk6zYEcAKhATCy9or__^Q%a3MS ztm0gT_vSJD9+1fp0I-Qqtg5hLXRJNE%E-=!)^Jh^;7_+q8QX#q3&1%8XgIh;M290B z>>cq6Z`bQD=vMH5H$!JH)7hd}G1$Ije~)-aN=25W&K1Y5lrv3B8I#eRb&lCS^r4Rj z>w2L3BR;kQKCzKgrlHf`(!On)JT>4{KHdi#Cwwuo<`>b-kG-3*AB4iESd5jL;KeQ^ zM4j5Ts-r|+H1$-R1i}v~xSp^LF#qLk9wPLlG?tQAxm-NwRu^#BUKR^gCb}@JHK#l+ zDb?6`D2;{v`jlv6v~uGWIz{azCt^7EhF<^N8;Kwq-;AQZ@A-l2MXoO{;Ie0_NVSzy eO|~qwVS`>)T8ih|P3Mc4=4Q|`&uQ-Jcl!;wZF?;M literal 0 HcmV?d00001 diff --git a/tests/testdata/workers/close_in_wasm_reactions.js b/tests/testdata/workers/close_in_wasm_reactions.js index abe5731085bff8..2cb0e4a7680217 100644 --- a/tests/testdata/workers/close_in_wasm_reactions.js +++ b/tests/testdata/workers/close_in_wasm_reactions.js @@ -1,6 +1,6 @@ // https://github.com/denoland/deno/issues/12263 // Test for a panic that happens when a worker is closed in the reactions of a -// WASM async operation. +// Wasm async operation. // The minimum valid wasm module, plus two additional zero bytes. const buffer = new Uint8Array([ diff --git a/tests/unit/fetch_test.ts b/tests/unit/fetch_test.ts index 3ae96746a7d127..6d3fd8cc1d538d 100644 --- a/tests/unit/fetch_test.ts +++ b/tests/unit/fetch_test.ts @@ -2119,3 +2119,30 @@ Deno.test( await server; }, ); + +Deno.test("fetch async iterable", async () => { + const iterable = (async function* () { + yield new Uint8Array([1, 2, 3, 4, 5]); + yield new Uint8Array([6, 7, 8, 9, 10]); + })(); + const res = new Response(iterable); + const actual = await res.bytes(); + const expected = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); + assertEquals(actual, expected); +}); + +Deno.test("fetch iterable", async () => { + const iterable = (function* () { + yield new Uint8Array([1, 2, 3, 4, 5]); + yield new Uint8Array([6, 7, 8, 9, 10]); + })(); + const res = new Response(iterable); + const actual = await res.bytes(); + const expected = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); + assertEquals(actual, expected); +}); + +Deno.test("fetch string object", async () => { + const res = new Response(Object("hello")); + assertEquals(await res.text(), "hello"); +}); diff --git a/tests/unit/ops_test.ts b/tests/unit/ops_test.ts index 4ba7c5ce33246b..6de55f8b667918 100644 --- a/tests/unit/ops_test.ts +++ b/tests/unit/ops_test.ts @@ -1,6 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -const EXPECTED_OP_COUNT = 11; +const EXPECTED_OP_COUNT = 12; Deno.test(function checkExposedOps() { // @ts-ignore TS doesn't allow to index with symbol diff --git a/tests/unit/stat_test.ts b/tests/unit/stat_test.ts index 59831a069fdf39..0609035b41779a 100644 --- a/tests/unit/stat_test.ts +++ b/tests/unit/stat_test.ts @@ -31,6 +31,13 @@ Deno.test( assert( tempInfo.birthtime === null || now - tempInfo.birthtime.valueOf() < 1000, ); + assert(tempInfo.ctime !== null && now - tempInfo.ctime.valueOf() < 1000); + const mode = tempInfo.mode! & 0o777; + if (Deno.build.os === "windows") { + assertEquals(mode, 0o666); + } else { + assertEquals(mode, 0o600); + } const readmeInfoByUrl = Deno.statSync(pathToAbsoluteFileUrl("README.md")); assert(readmeInfoByUrl.isFile); @@ -65,6 +72,10 @@ Deno.test( tempInfoByUrl.birthtime === null || now - tempInfoByUrl.birthtime.valueOf() < 1000, ); + assert( + tempInfoByUrl.ctime !== null && + now - tempInfoByUrl.ctime.valueOf() < 1000, + ); Deno.removeSync(tempFile, { recursive: true }); Deno.removeSync(tempFileForUrl, { recursive: true }); @@ -171,6 +182,7 @@ Deno.test( assert( tempInfo.birthtime === null || now - tempInfo.birthtime.valueOf() < 1000, ); + assert(tempInfo.ctime !== null && now - tempInfo.ctime.valueOf() < 1000); const tempFileForUrl = await Deno.makeTempFile(); const tempInfoByUrl = await Deno.stat( @@ -191,7 +203,10 @@ Deno.test( tempInfoByUrl.birthtime === null || now - tempInfoByUrl.birthtime.valueOf() < 1000, ); - + assert( + tempInfoByUrl.ctime !== null && + now - tempInfoByUrl.ctime.valueOf() < 1000, + ); Deno.removeSync(tempFile, { recursive: true }); Deno.removeSync(tempFileForUrl, { recursive: true }); }, @@ -271,7 +286,6 @@ Deno.test( const s = Deno.statSync(filename); assert(s.dev !== 0); assert(s.ino === null); - assert(s.mode === null); assert(s.nlink === null); assert(s.uid === null); assert(s.gid === null); diff --git a/tests/unit/streams_test.ts b/tests/unit/streams_test.ts index b866fa7d51488e..73f9a60953c84b 100644 --- a/tests/unit/streams_test.ts +++ b/tests/unit/streams_test.ts @@ -1,5 +1,10 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import { assertEquals, assertRejects, fail } from "./test_util.ts"; +import { + assertEquals, + assertRejects, + assertThrows, + fail, +} from "./test_util.ts"; const { core, @@ -533,3 +538,11 @@ Deno.test(async function decompressionStreamInvalidGzipStillReported() { "corrupt gzip stream does not have a matching checksum", ); }); + +Deno.test(function readableStreamFromWithStringThrows() { + assertThrows( + () => ReadableStream.from("string"), + TypeError, + "Failed to execute 'ReadableStream.from': Argument 1 can not be converted to async iterable.", + ); +}); diff --git a/tests/unit/wasm_test.ts b/tests/unit/wasm_test.ts index e0db41ed0edb62..8ee9392f934c36 100644 --- a/tests/unit/wasm_test.ts +++ b/tests/unit/wasm_test.ts @@ -32,7 +32,7 @@ Deno.test(async function wasmInstantiateWorksWithBuffer() { }); // V8's default implementation of `WebAssembly.instantiateStreaming()` if you -// don't set the WASM streaming callback, is to take a byte source. Here we +// don't set the Wasm streaming callback, is to take a byte source. Here we // check that our implementation of the callback disallows it. Deno.test( async function wasmInstantiateStreamingFailsWithBuffer() { @@ -95,7 +95,7 @@ Deno.test( Deno.test( { permissions: { net: true } }, async function wasmStreamingNonTrivial() { - // deno-dom's WASM file is a real-world non-trivial case that gave us + // deno-dom's Wasm file is a real-world non-trivial case that gave us // trouble when implementing this. await WebAssembly.instantiateStreaming(fetch( "http://localhost:4545/assets/deno_dom_0.1.3-alpha2.wasm", diff --git a/tests/unit/websocket_test.ts b/tests/unit/websocket_test.ts index 7db876b1774a45..d9878828db4d97 100644 --- a/tests/unit/websocket_test.ts +++ b/tests/unit/websocket_test.ts @@ -453,7 +453,8 @@ Deno.test("invalid server", async () => { const { promise, resolve } = Promise.withResolvers(); const ws = new WebSocket("ws://localhost:2121"); let err = false; - ws.onerror = () => { + ws.onerror = (e) => { + assert("error" in e); err = true; }; ws.onclose = () => { @@ -805,3 +806,18 @@ Deno.test("Close connection", async () => { await server.finished; conn.close(); }); + +Deno.test("send to a closed socket", async () => { + const { promise, resolve } = Promise.withResolvers(); + const ws = new WebSocket("ws://localhost:4242"); + const blob = new Blob(["foo"]); + ws.onerror = () => fail(); + ws.onopen = () => { + ws.close(); + ws.send(blob); + }; + ws.onclose = () => { + resolve(); + }; + await promise; +}); diff --git a/tests/unit_node/_fs/_fs_readFile_test.ts b/tests/unit_node/_fs/_fs_readFile_test.ts index ea36b9d866af4d..a75f12d1f6fe39 100644 --- a/tests/unit_node/_fs/_fs_readFile_test.ts +++ b/tests/unit_node/_fs/_fs_readFile_test.ts @@ -2,7 +2,7 @@ import { assertCallbackErrorUncaught } from "../_test_utils.ts"; import { promises, readFile, readFileSync } from "node:fs"; import * as path from "@std/path"; -import { assert, assertEquals } from "@std/assert"; +import { assert, assertEquals, assertMatch } from "@std/assert"; const moduleDir = path.dirname(path.fromFileUrl(import.meta.url)); const testData = path.resolve(moduleDir, "testdata", "hello.txt"); @@ -121,3 +121,26 @@ Deno.test("fs.promises.readFile with no arg call rejects with error correctly", // @ts-ignore no arg call needs to be supported await promises.readFile().catch((_e) => {}); }); + +Deno.test("fs.readFile error message contains path + syscall", async () => { + const path = "/does/not/exist"; + const err = await new Promise((resolve) => { + readFile(path, "utf-8", (err) => resolve(err)); + }); + if (err instanceof Error) { + assert(err.message.includes(path), "Path not found in error message"); + assertMatch(err.message, /[,\s]open\s/); + } +}); + +Deno.test("fs.readFileSync error message contains path + syscall", () => { + const path = "/does/not/exist"; + try { + readFileSync(path, "utf-8"); + } catch (err) { + if (err instanceof Error) { + assert(err.message.includes(path), "Path not found in error message"); + assertMatch(err.message, /[,\s]open\s/); + } + } +}); diff --git a/tests/unit_node/_fs/_fs_stat_test.ts b/tests/unit_node/_fs/_fs_stat_test.ts index 02c620e2dc141f..e42aa34a9a1145 100644 --- a/tests/unit_node/_fs/_fs_stat_test.ts +++ b/tests/unit_node/_fs/_fs_stat_test.ts @@ -18,9 +18,11 @@ export function assertStats(actual: Stats, expected: Deno.FileInfo) { assertEquals(actual.atime?.getTime(), expected.atime?.getTime()); assertEquals(actual.mtime?.getTime(), expected.mtime?.getTime()); assertEquals(actual.birthtime?.getTime(), expected.birthtime?.getTime()); + assertEquals(actual.ctime?.getTime(), expected.ctime?.getTime()); assertEquals(actual.atimeMs ?? undefined, expected.atime?.getTime()); assertEquals(actual.mtimeMs ?? undefined, expected.mtime?.getTime()); assertEquals(actual.birthtimeMs ?? undefined, expected.birthtime?.getTime()); + assertEquals(actual.ctimeMs ?? undefined, expected.ctime?.getTime()); assertEquals(actual.isFile(), expected.isFile); assertEquals(actual.isDirectory(), expected.isDirectory); assertEquals(actual.isSymbolicLink(), expected.isSymlink); @@ -49,6 +51,7 @@ export function assertStatsBigInt( assertEquals(actual.atime?.getTime(), expected.atime?.getTime()); assertEquals(actual.mtime?.getTime(), expected.mtime?.getTime()); assertEquals(actual.birthtime?.getTime(), expected.birthtime?.getTime()); + assertEquals(actual.ctime?.getTime(), expected.ctime?.getTime()); assertEquals( actual.atimeMs === null ? undefined : Number(actual.atimeMs), expected.atime?.getTime(), @@ -61,6 +64,10 @@ export function assertStatsBigInt( actual.birthtimeMs === null ? undefined : Number(actual.birthtimeMs), expected.birthtime?.getTime(), ); + assertEquals( + actual.ctimeMs === null ? undefined : Number(actual.ctimeMs), + expected.ctime?.getTime(), + ); assertEquals(actual.atimeNs === null, actual.atime === null); assertEquals(actual.mtimeNs === null, actual.mtime === null); assertEquals(actual.birthtimeNs === null, actual.birthtime === null); diff --git a/tests/unit_node/crypto/crypto_key_test.ts b/tests/unit_node/crypto/crypto_key_test.ts index 3c7ad4423278b6..5d206acc723fde 100644 --- a/tests/unit_node/crypto/crypto_key_test.ts +++ b/tests/unit_node/crypto/crypto_key_test.ts @@ -677,3 +677,26 @@ Deno.test("generateKeyPair large pem", function () { }, }); }); + +Deno.test("generateKeyPair promisify", async () => { + const passphrase = "mypassphrase"; + const cipher = "aes-256-cbc"; + const modulusLength = 4096; + + const { privateKey, publicKey } = await promisify(generateKeyPair)("rsa", { + modulusLength, + publicKeyEncoding: { + type: "spki", + format: "pem", + }, + privateKeyEncoding: { + type: "pkcs8", + format: "pem", + cipher, + passphrase, + }, + }); + + assert(publicKey.startsWith("-----BEGIN PUBLIC KEY-----")); + assert(privateKey.startsWith("-----BEGIN PRIVATE KEY-----")); +}); diff --git a/tests/unit_node/fetch_test.ts b/tests/unit_node/fetch_test.ts new file mode 100644 index 00000000000000..399d6052a56377 --- /dev/null +++ b/tests/unit_node/fetch_test.ts @@ -0,0 +1,18 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +import { assertEquals } from "@std/assert"; +import { createReadStream } from "node:fs"; + +Deno.test("fetch node stream", async () => { + const file = createReadStream("tests/testdata/assets/fixture.json"); + + const response = await fetch("http://localhost:4545/echo_server", { + method: "POST", + body: file, + }); + + assertEquals( + await response.text(), + await Deno.readTextFile("tests/testdata/assets/fixture.json"), + ); +}); diff --git a/tests/unit_node/http2_test.ts b/tests/unit_node/http2_test.ts index 7473a487ad074a..c540c90f7e56e0 100644 --- a/tests/unit_node/http2_test.ts +++ b/tests/unit_node/http2_test.ts @@ -10,6 +10,11 @@ import * as net from "node:net"; import { assert, assertEquals } from "@std/assert"; import { curlRequest } from "../unit/test_util.ts"; +// Increase the timeout for the auto select family to avoid flakiness +net.setDefaultAutoSelectFamilyAttemptTimeout( + net.getDefaultAutoSelectFamilyAttemptTimeout() * 30, +); + for (const url of ["http://localhost:4246", "https://localhost:4247"]) { Deno.test(`[node/http2 client] ${url}`, { ignore: Deno.build.os === "windows", diff --git a/tests/unit_node/perf_hooks_test.ts b/tests/unit_node/perf_hooks_test.ts index d5b9000410b07e..83d0062228ee4d 100644 --- a/tests/unit_node/perf_hooks_test.ts +++ b/tests/unit_node/perf_hooks_test.ts @@ -1,7 +1,11 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. import * as perfHooks from "node:perf_hooks"; -import { performance, PerformanceObserver } from "node:perf_hooks"; -import { assertEquals, assertThrows } from "@std/assert"; +import { + monitorEventLoopDelay, + performance, + PerformanceObserver, +} from "node:perf_hooks"; +import { assert, assertEquals, assertThrows } from "@std/assert"; Deno.test({ name: "[perf_hooks] performance", @@ -68,3 +72,17 @@ Deno.test("[perf_hooks]: eventLoopUtilization", () => { assertEquals(typeof obj.active, "number"); assertEquals(typeof obj.utilization, "number"); }); + +Deno.test("[perf_hooks]: monitorEventLoopDelay", async () => { + const e = monitorEventLoopDelay(); + assertEquals(e.count, 0); + e.enable(); + + await new Promise((resolve) => setTimeout(resolve, 100)); + + assert(e.min > 0); + assert(e.minBigInt > 0n); + assert(e.count > 0); + + e.disable(); +}); diff --git a/tests/unit_node/process_test.ts b/tests/unit_node/process_test.ts index f9138c8f08fcff..49de2dce1dd7e2 100644 --- a/tests/unit_node/process_test.ts +++ b/tests/unit_node/process_test.ts @@ -1152,3 +1152,9 @@ Deno.test("process.stdout.columns writable", () => { process.stdout.columns = 80; assertEquals(process.stdout.columns, 80); }); + +Deno.test("getBuiltinModule", () => { + assert(process.getBuiltinModule("fs")); + assert(process.getBuiltinModule("node:fs")); + assertEquals(process.getBuiltinModule("something"), undefined); +}); diff --git a/tests/unit_node/timers_test.ts b/tests/unit_node/timers_test.ts index 868ba21d64b2c3..ddc6dc0d85dd45 100644 --- a/tests/unit_node/timers_test.ts +++ b/tests/unit_node/timers_test.ts @@ -3,6 +3,7 @@ import { assert, fail } from "@std/assert"; import * as timers from "node:timers"; import * as timersPromises from "node:timers/promises"; +import { assertEquals } from "@std/assert"; Deno.test("[node/timers setTimeout]", () => { { @@ -108,3 +109,153 @@ Deno.test("[node/timers setImmediate returns Immediate object]", () => { imm.hasRef(); clearImmediate(imm); }); + +Deno.test({ + name: "setInterval yields correct values at expected intervals", + async fn() { + // Test configuration + const CONFIG = { + expectedValue: 42, + intervalMs: 100, + iterations: 3, + tolerancePercent: 50, + }; + + const { setInterval } = timersPromises; + const results: Array<{ value: number; timestamp: number }> = []; + const startTime = Date.now(); + + const iterator = setInterval(CONFIG.intervalMs, CONFIG.expectedValue); + + for await (const value of iterator) { + results.push({ + value, + timestamp: Date.now(), + }); + if (results.length === CONFIG.iterations) { + break; + } + } + + const values = results.map((r) => r.value); + assertEquals( + values, + Array(CONFIG.iterations).fill(CONFIG.expectedValue), + `Each iteration should yield ${CONFIG.expectedValue}`, + ); + + const intervals = results.slice(1).map((result, index) => ({ + interval: result.timestamp - results[index].timestamp, + iterationNumber: index + 1, + })); + + const toleranceMs = (CONFIG.tolerancePercent / 100) * CONFIG.intervalMs; + const expectedRange = { + min: CONFIG.intervalMs - toleranceMs, + max: CONFIG.intervalMs + toleranceMs, + }; + + intervals.forEach(({ interval, iterationNumber }) => { + const isWithinTolerance = interval >= expectedRange.min && + interval <= expectedRange.max; + + assertEquals( + isWithinTolerance, + true, + `Iteration ${iterationNumber}: Interval ${interval}ms should be within ` + + `${expectedRange.min}ms and ${expectedRange.max}ms ` + + `(${CONFIG.tolerancePercent}% tolerance of ${CONFIG.intervalMs}ms)`, + ); + }); + + const totalDuration = results[results.length - 1].timestamp - startTime; + const expectedDuration = CONFIG.intervalMs * CONFIG.iterations; + const isDurationReasonable = + totalDuration >= (expectedDuration - toleranceMs) && + totalDuration <= (expectedDuration + toleranceMs); + + assertEquals( + isDurationReasonable, + true, + `Total duration ${totalDuration}ms should be close to ${expectedDuration}ms ` + + `(within ${toleranceMs}ms tolerance)`, + ); + + const timestamps = results.map((r) => r.timestamp); + const areTimestampsOrdered = timestamps.every((timestamp, i) => + i === 0 || timestamp > timestamps[i - 1] + ); + + assertEquals( + areTimestampsOrdered, + true, + "Timestamps should be strictly increasing", + ); + }, +}); + +Deno.test({ + name: "setInterval with AbortSignal stops after expected duration", + async fn() { + const INTERVAL_MS = 500; + const TOTAL_DURATION_MS = 3000; + const TOLERANCE_MS = 500; + + const abortController = new AbortController(); + const { setInterval } = timersPromises; + + // Set up abort after specified duration + const abortTimeout = timers.setTimeout(() => { + abortController.abort(); + }, TOTAL_DURATION_MS); + + // Track iterations and timing + const startTime = Date.now(); + const iterations: number[] = []; + + try { + for await ( + const _timestamp of setInterval(INTERVAL_MS, undefined, { + signal: abortController.signal, + }) + ) { + iterations.push(Date.now() - startTime); + } + } catch (error) { + if (error instanceof Error && error.name !== "AbortError") { + throw error; + } + } finally { + timers.clearTimeout(abortTimeout); + } + + // Validate timing + const totalDuration = iterations[iterations.length - 1]; + const isWithinTolerance = + totalDuration >= (TOTAL_DURATION_MS - TOLERANCE_MS) && + totalDuration <= (TOTAL_DURATION_MS + TOLERANCE_MS); + + assertEquals( + isWithinTolerance, + true, + `Total duration ${totalDuration}ms should be within ±${TOLERANCE_MS}ms of ${TOTAL_DURATION_MS}ms`, + ); + + // Validate interval consistency + const intervalDeltas = iterations.slice(1).map((time, i) => + time - iterations[i] + ); + + intervalDeltas.forEach((delta, i) => { + const isIntervalValid = delta >= (INTERVAL_MS - 50) && + delta <= (INTERVAL_MS + 50); + assertEquals( + isIntervalValid, + true, + `Interval ${ + i + 1 + } duration (${delta}ms) should be within ±50ms of ${INTERVAL_MS}ms`, + ); + }); + }, +}); diff --git a/tests/unit_node/zlib_test.ts b/tests/unit_node/zlib_test.ts index 0eff95445d0044..de2d2450d1cc20 100644 --- a/tests/unit_node/zlib_test.ts +++ b/tests/unit_node/zlib_test.ts @@ -7,6 +7,7 @@ import { brotliCompressSync, brotliDecompressSync, constants, + crc32, createBrotliCompress, createBrotliDecompress, createDeflate, @@ -225,3 +226,7 @@ Deno.test("gzip() and gzipSync() accept ArrayBuffer", async () => { const outputSync = gzipSync(buf); assert(outputSync instanceof Buffer); }); + +Deno.test("crc32()", () => { + assertEquals(crc32("hello world"), 222957957); +}); diff --git a/tests/util/server/src/lib.rs b/tests/util/server/src/lib.rs index 89dc1ffc3b796d..953896cffda570 100644 --- a/tests/util/server/src/lib.rs +++ b/tests/util/server/src/lib.rs @@ -919,6 +919,11 @@ pub fn wildcard_match_detailed( if was_last_wildcard || was_last_wildline || current_text.is_empty() { WildcardMatchResult::Success + } else if current_text == "\n" { + WildcardMatchResult::Fail( + "\n!!!! PROBLEM: Missing final newline at end of expected output !!!!" + .to_string(), + ) } else { output_lines.push("==== HAD TEXT AT END OF FILE ====".to_string()); output_lines.push(colors::red(annotate_whitespace(current_text))); diff --git a/tests/util/server/src/macros.rs b/tests/util/server/src/macros.rs index fdbb977e9f5552..e076583f19b306 100644 --- a/tests/util/server/src/macros.rs +++ b/tests/util/server/src/macros.rs @@ -33,6 +33,7 @@ macro_rules! timeout { use std::io::Write; eprintln!("Test {function} timed out after {timeout} seconds, aborting"); _ = std::io::stderr().flush(); + #[allow(clippy::disallowed_methods)] ::std::process::exit(1); } }); diff --git a/tests/util/server/src/npm.rs b/tests/util/server/src/npm.rs index 31686fa8543dfb..081989ddb5fed1 100644 --- a/tests/util/server/src/npm.rs +++ b/tests/util/server/src/npm.rs @@ -2,6 +2,7 @@ use std::collections::HashMap; use std::fs; +use std::path::Path; use anyhow::Context; use anyhow::Result; @@ -189,6 +190,60 @@ impl TestNpmRegistry { } } +// NOTE: extracted out partially from the `tar` crate, all credits to the original authors +fn append_dir_all( + builder: &mut tar::Builder, + path: &Path, + src_path: &Path, +) -> Result<()> { + builder.follow_symlinks(true); + let mode = tar::HeaderMode::Deterministic; + builder.mode(mode); + let mut stack = vec![(src_path.to_path_buf(), true, false)]; + let mut entries = Vec::new(); + while let Some((src, is_dir, is_symlink)) = stack.pop() { + let dest = path.join(src.strip_prefix(src_path).unwrap()); + // In case of a symlink pointing to a directory, is_dir is false, but src.is_dir() will return true + if is_dir || (is_symlink && src.is_dir()) { + for entry in fs::read_dir(&src)? { + let entry = entry?; + let file_type = entry.file_type()?; + stack.push((entry.path(), file_type.is_dir(), file_type.is_symlink())); + } + if dest != Path::new("") { + entries.push((src, dest)); + } + } else { + entries.push((src, dest)); + } + } + entries.sort_by(|(_, a), (_, b)| a.cmp(b)); + for (src, dest) in entries { + let mut header = tar::Header::new_gnu(); + let metadata = src.metadata().with_context(|| { + format!("trying to get metadata for {}", src.display()) + })?; + header.set_metadata_in_mode(&metadata, mode); + // this is what `tar` sets the mtime to on unix in deterministic mode, on windows it uses a different + // value, which causes the tarball to have a different hash on windows. force it to be the same + // to ensure the same output on all platforms + header.set_mtime(1153704088); + + let data = if src.is_file() { + Box::new( + fs::File::open(&src) + .with_context(|| format!("trying to open file {}", src.display()))?, + ) as Box + } else { + Box::new(std::io::empty()) as Box + }; + builder + .append_data(&mut header, dest, data) + .with_context(|| "appending data")?; + } + Ok(()) +} + fn get_npm_package( registry_hostname: &str, local_path: &str, @@ -228,11 +283,14 @@ fn get_npm_package( GzEncoder::new(&mut tarball_bytes, Compression::default()); { let mut builder = Builder::new(&mut encoder); - builder - .append_dir_all("package", &version_folder) - .with_context(|| { - format!("Error adding tarball for directory: {}", version_folder) - })?; + append_dir_all( + &mut builder, + Path::new("package"), + version_folder.as_path(), + ) + .with_context(|| { + format!("Error adding tarball for directory {}", version_folder,) + })?; builder.finish()?; } encoder.finish()?; diff --git a/tests/util/server/src/servers/mod.rs b/tests/util/server/src/servers/mod.rs index d9adde542033fe..0b1d99aeb92751 100644 --- a/tests/util/server/src/servers/mod.rs +++ b/tests/util/server/src/servers/mod.rs @@ -807,17 +807,17 @@ async fn main_server( (_, "/jsx/jsx-runtime") | (_, "/jsx/jsx-dev-runtime") => { let mut res = Response::new(string_body( r#"export function jsx( - _type, - _props, - _key, - _source, - _self, - ) {} - export const jsxs = jsx; - export const jsxDEV = jsx; - export const Fragment = Symbol("Fragment"); - console.log("imported", import.meta.url); - "#, + _type, + _props, + _key, + _source, + _self, +) {} +export const jsxs = jsx; +export const jsxDEV = jsx; +export const Fragment = Symbol("Fragment"); +console.log("imported", import.meta.url); +"#, )); res.headers_mut().insert( "Content-type", diff --git a/tests/wpt/runner/expectation.json b/tests/wpt/runner/expectation.json index 3477d8d9bfb132..6140f4379d03c2 100644 --- a/tests/wpt/runner/expectation.json +++ b/tests/wpt/runner/expectation.json @@ -3257,8 +3257,14 @@ "owning-type-message-port.any.worker.html": false, "owning-type.any.html": false, "owning-type.any.worker.html": false, - "from.any.html": true, - "from.any.worker.html": true + "from.any.html": [ + "ReadableStream.from ignores a null @@asyncIterator", + "ReadableStream.from accepts a string" + ], + "from.any.worker.html": [ + "ReadableStream.from ignores a null @@asyncIterator", + "ReadableStream.from accepts a string" + ] }, "transform-streams": { "backpressure.any.html": true, @@ -3735,18 +3741,12 @@ "ab--c.ß (using .hostname)", "ab--c.ß (using .host)", "ab--c.ß (using .hostname)", - "‍.example (using URL)", - "‍.example (using URL.host)", - "‍.example (using URL.hostname)", "‍.example (using )", "‍.example (using .host)", "‍.example (using .hostname)", "‍.example (using )", "‍.example (using .host)", "‍.example (using .hostname)", - "xn--1ug.example (using URL)", - "xn--1ug.example (using URL.host)", - "xn--1ug.example (using URL.hostname)", "xn--1ug.example (using )", "xn--1ug.example (using .host)", "xn--1ug.example (using .hostname)", @@ -3868,18 +3868,8 @@ ], "url-searchparams.any.html": true, "url-searchparams.any.worker.html": true, - "url-setters-stripping.any.html": [ - "Setting port with leading U+0000 (https:)", - "Setting port with leading U+001F (https:)", - "Setting port with leading U+0000 (wpt++:)", - "Setting port with leading U+001F (wpt++:)" - ], - "url-setters-stripping.any.worker.html": [ - "Setting port with leading U+0000 (https:)", - "Setting port with leading U+001F (https:)", - "Setting port with leading U+0000 (wpt++:)", - "Setting port with leading U+001F (wpt++:)" - ], + "url-setters-stripping.any.html": true, + "url-setters-stripping.any.worker.html": true, "url-tojson.any.html": true, "url-tojson.any.worker.html": true, "urlencoded-parser.any.html": true, @@ -3888,12 +3878,8 @@ "urlsearchparams-append.any.worker.html": true, "urlsearchparams-constructor.any.html": true, "urlsearchparams-constructor.any.worker.html": true, - "urlsearchparams-delete.any.html": [ - "Changing the query of a URL with an opaque path can impact the path if the URL has no fragment" - ], - "urlsearchparams-delete.any.worker.html": [ - "Changing the query of a URL with an opaque path can impact the path if the URL has no fragment" - ], + "urlsearchparams-delete.any.html": true, + "urlsearchparams-delete.any.worker.html": true, "urlsearchparams-foreach.any.html": true, "urlsearchparams-foreach.any.worker.html": true, "urlsearchparams-get.any.html": true, @@ -3926,182 +3912,7 @@ "Input − with encoding utf-8", "Input á| with encoding utf-8" ], - "IdnaTestV2.window.html": [ - "ToASCII(\"a‌b\") C1", - "ToASCII(\"A‌B\") C1", - "ToASCII(\"A‌b\") C1", - "ToASCII(\"xn--ab-j1t\") C1", - "ToASCII(\"a‍b\") C2", - "ToASCII(\"A‍B\") C2", - "ToASCII(\"A‍b\") C2", - "ToASCII(\"xn--ab-m1t\") C2", - "ToASCII(\"1.aß‌‍b‌‍cßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.ASS‌‍B‌‍CSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.ASS‌‍B‌‍CSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.Ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.Ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.Aß‌‍b‌‍cßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz\") C1; C2; A4_2 (ignored)", - "ToASCII(\"1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc\") C1; C2; A4_2 (ignored)", - "ToASCII(\"‌x‍n‌-‍-bß\") C1; C2", - "ToASCII(\"‌X‍N‌-‍-BSS\") C1; C2", - "ToASCII(\"‌x‍n‌-‍-bss\") C1; C2", - "ToASCII(\"‌X‍n‌-‍-Bss\") C1; C2", - "ToASCII(\"xn--xn--bss-7z6ccid\") C1; C2", - "ToASCII(\"‌X‍n‌-‍-Bß\") C1; C2", - "ToASCII(\"xn--xn--b-pqa5796ccahd\") C1; C2", - "ToASCII(\"ஹ‍\") C2", - "ToASCII(\"xn--dmc225h\") C2", - "ToASCII(\"‍\") C2", - "ToASCII(\"xn--1ug\") C2", - "ToASCII(\"ஹ‌\") C1", - "ToASCII(\"xn--dmc025h\") C1", - "ToASCII(\"‌\") C1", - "ToASCII(\"xn--0ug\") C1", - "ToASCII(\"ۯ‌ۯ\") C1", - "ToASCII(\"xn--cmba004q\") C1", - "ToASCII(\"ß۫。‍\") C2", - "ToASCII(\"SS۫。‍\") C2", - "ToASCII(\"ss۫。‍\") C2", - "ToASCII(\"Ss۫。‍\") C2", - "ToASCII(\"xn--ss-59d.xn--1ug\") C2", - "ToASCII(\"xn--zca012a.xn--1ug\") C2", - "ToASCII(\"‌긃.榶-\") C1; V3 (ignored)", - "ToASCII(\"‌긃.榶-\") C1; V3 (ignored)", - "ToASCII(\"xn--0ug3307c.xn----d87b\") C1; V3 (ignored)", - "ToASCII(\"Å둄-.‌\") C1; V3 (ignored)", - "ToASCII(\"Å둄-.‌\") C1; V3 (ignored)", - "ToASCII(\"Å둄-.‌\") C1; V3 (ignored)", - "ToASCII(\"Å둄-.‌\") C1; V3 (ignored)", - "ToASCII(\"å둄-.‌\") C1; V3 (ignored)", - "ToASCII(\"å둄-.‌\") C1; V3 (ignored)", - "ToASCII(\"xn----1fa1788k.xn--0ug\") C1; V3 (ignored)", - "ToASCII(\"å둄-.‌\") C1; V3 (ignored)", - "ToASCII(\"å둄-.‌\") C1; V3 (ignored)", - "ToASCII(\"ꡦᡑ‍1.。𐋣-\") C2; V3 (ignored); A4_2 (ignored)", - "ToASCII(\"xn--1-o7j663bdl7m..xn----381i\") C2; V3 (ignored); A4_2 (ignored)", - "ToASCII(\"1.䰹‍-。웈\") C2; V3 (ignored)", - "ToASCII(\"1.䰹‍-。웈\") C2; V3 (ignored)", - "ToASCII(\"1.xn----tgnz80r.xn--kp5b\") C2; V3 (ignored)", - "ToASCII(\"-3.‍ヌᢕ\") C2; V3 (ignored)", - "ToASCII(\"-3.xn--fbf739aq5o\") C2; V3 (ignored)", - "ToASCII(\"ς-。‌𝟭-\") C1; V3 (ignored)", - "ToASCII(\"ς-。‌1-\") C1; V3 (ignored)", - "ToASCII(\"Σ-。‌1-\") C1; V3 (ignored)", - "ToASCII(\"σ-。‌1-\") C1; V3 (ignored)", - "ToASCII(\"xn----zmb.xn--1--i1t\") C1; V3 (ignored)", - "ToASCII(\"xn----xmb.xn--1--i1t\") C1; V3 (ignored)", - "ToASCII(\"Σ-。‌𝟭-\") C1; V3 (ignored)", - "ToASCII(\"σ-。‌𝟭-\") C1; V3 (ignored)", - "ToASCII(\"ᡯ⚉姶🄉.۷‍🎪‍\") C2; P1; V6", - "ToASCII(\"𝟵隁⯮.᠍‌\") C1", - "ToASCII(\"9隁⯮.᠍‌\") C1", - "ToASCII(\"xn--9-mfs8024b.xn--0ug\") C1", - "ToASCII(\"ß‌꫶ᢥ.⊶ⴡⴖ\") C1", - "ToASCII(\"ss‌꫶ᢥ.⊶ⴡⴖ\") C1", - "ToASCII(\"xn--ss-4ep585bkm5p.xn--ifh802b6a\") C1", - "ToASCII(\"xn--zca682johfi89m.xn--ifh802b6a\") C1", - "ToASCII(\"ß‌꫶ᢥ.⊶ⴡⴖ\") C1", - "ToASCII(\"ss‌꫶ᢥ.⊶ⴡⴖ\") C1", - "ToASCII(\"-。‍\") C2; V3 (ignored)", - "ToASCII(\"-。‍\") C2; V3 (ignored)", - "ToASCII(\"-.xn--1ug\") C2; V3 (ignored)", - "ToASCII(\"ς‍-.ⴣ𦟙\") C2; V3 (ignored)", - "ToASCII(\"σ‍-.ⴣ𦟙\") C2; V3 (ignored)", - "ToASCII(\"xn----zmb048s.xn--rlj2573p\") C2; V3 (ignored)", - "ToASCII(\"xn----xmb348s.xn--rlj2573p\") C2; V3 (ignored)", - "ToASCII(\"鱊。‌\") C1", - "ToASCII(\"xn--rt6a.xn--0ug\") C1", - "ToASCII(\"‌ⴚ。ς\") C1", - "ToASCII(\"‌ⴚ。σ\") C1", - "ToASCII(\"xn--0ug262c.xn--4xa\") C1", - "ToASCII(\"xn--0ug262c.xn--3xa\") C1", - "ToASCII(\"‌ⴚ。ς\") C1", - "ToASCII(\"‌ⴚ。σ\") C1", - "ToASCII(\"‍⾕。‌꥓̐ꡎ\") C1; C2", - "ToASCII(\"‍⾕。‌꥓̐ꡎ\") C1; C2", - "ToASCII(\"‍谷。‌꥓̐ꡎ\") C1; C2", - "ToASCII(\"xn--1ug0273b.xn--0sa359l6n7g13a\") C1; C2", - "ToASCII(\"‍。‌\") C1; C2", - "ToASCII(\"xn--1ug.xn--0ug\") C1; C2", - "ToASCII(\"‌。。\") C1; A4_2 (ignored)", - "ToASCII(\"xn--0ug..\") C1; A4_2 (ignored)", - "ToASCII(\"ᡲ-𝟹.ß-‌-\") C1; V3 (ignored)", - "ToASCII(\"ᡲ-3.ß-‌-\") C1; V3 (ignored)", - "ToASCII(\"ᡲ-3.SS-‌-\") C1; V3 (ignored)", - "ToASCII(\"ᡲ-3.ss-‌-\") C1; V3 (ignored)", - "ToASCII(\"ᡲ-3.Ss-‌-\") C1; V3 (ignored)", - "ToASCII(\"xn---3-p9o.xn--ss---276a\") C1; V3 (ignored)", - "ToASCII(\"xn---3-p9o.xn-----fia9303a\") C1; V3 (ignored)", - "ToASCII(\"ᡲ-𝟹.SS-‌-\") C1; V3 (ignored)", - "ToASCII(\"ᡲ-𝟹.ss-‌-\") C1; V3 (ignored)", - "ToASCII(\"ᡲ-𝟹.Ss-‌-\") C1; V3 (ignored)", - "ToASCII(\"𝟙。‍𝟸‍⁷\") C2", - "ToASCII(\"1。‍2‍7\") C2", - "ToASCII(\"1.xn--27-l1tb\") C2", - "ToASCII(\"‌.ßⴉ-\") C1; V3 (ignored)", - "ToASCII(\"‌.ssⴉ-\") C1; V3 (ignored)", - "ToASCII(\"‌.Ssⴉ-\") C1; V3 (ignored)", - "ToASCII(\"xn--0ug.xn--ss--bi1b\") C1; V3 (ignored)", - "ToASCII(\"xn--0ug.xn----pfa2305a\") C1; V3 (ignored)", - "ToASCII(\"ⴏ󠅋-.‍ⴉ\") C2; V3 (ignored)", - "ToASCII(\"xn----3vs.xn--1ug532c\") C2; V3 (ignored)", - "ToASCII(\"ⴏ󠅋-.‍ⴉ\") C2; V3 (ignored)", - "ToASCII(\"。ⴖͦ.‌\") C1; A4_2 (ignored)", - "ToASCII(\".xn--hva754s.xn--0ug\") C1; A4_2 (ignored)", - "ToASCII(\"‍攌꯭。ᢖ-ⴘ\") C2", - "ToASCII(\"xn--1ug592ykp6b.xn----mck373i\") C2", - "ToASCII(\"‌ꖨ.16.3툒۳\") C1", - "ToASCII(\"‌ꖨ.16.3툒۳\") C1", - "ToASCII(\"xn--0ug2473c.16.xn--3-nyc0117m\") C1", - "ToASCII(\"𝟏𝨙⸖.‍\") C2", - "ToASCII(\"1𝨙⸖.‍\") C2", - "ToASCII(\"xn--1-5bt6845n.xn--1ug\") C2", - "ToASCII(\"-‍.ⴞ𐋷\") C2; V3 (ignored)", - "ToASCII(\"xn----ugn.xn--mlj8559d\") C2; V3 (ignored)", - "ToASCII(\"嬃𝍌.‍ୄ\") C2", - "ToASCII(\"嬃𝍌.‍ୄ\") C2", - "ToASCII(\"xn--b6s0078f.xn--0ic557h\") C2", - "ToASCII(\"‍.F\") C2", - "ToASCII(\"‍.f\") C2", - "ToASCII(\"xn--1ug.f\") C2", - "ToASCII(\"‍㨲。ß\") C2", - "ToASCII(\"‍㨲。ß\") C2", - "ToASCII(\"‍㨲。SS\") C2", - "ToASCII(\"‍㨲。ss\") C2", - "ToASCII(\"‍㨲。Ss\") C2", - "ToASCII(\"xn--1ug914h.ss\") C2", - "ToASCII(\"xn--1ug914h.xn--zca\") C2", - "ToASCII(\"‍㨲。SS\") C2", - "ToASCII(\"‍㨲。ss\") C2", - "ToASCII(\"‍㨲。Ss\") C2", - "ToASCII(\"璼𝨭。‌󠇟\") C1", - "ToASCII(\"璼𝨭。‌󠇟\") C1", - "ToASCII(\"xn--gky8837e.xn--0ug\") C1", - "ToASCII(\"‌.‌\") C1", - "ToASCII(\"xn--0ug.xn--0ug\") C1", - "ToASCII(\"𝟠4󠇗𝈻.‍𐋵⛧‍\") C2", - "ToASCII(\"84󠇗𝈻.‍𐋵⛧‍\") C2", - "ToASCII(\"xn--84-s850a.xn--1uga573cfq1w\") C2", - "ToASCII(\"‍‌󠆪。ß𑓃\") C1; C2", - "ToASCII(\"‍‌󠆪。ß𑓃\") C1; C2", - "ToASCII(\"‍‌󠆪。SS𑓃\") C1; C2", - "ToASCII(\"‍‌󠆪。ss𑓃\") C1; C2", - "ToASCII(\"‍‌󠆪。Ss𑓃\") C1; C2", - "ToASCII(\"xn--0ugb.xn--ss-bh7o\") C1; C2", - "ToASCII(\"xn--0ugb.xn--zca0732l\") C1; C2", - "ToASCII(\"‍‌󠆪。SS𑓃\") C1; C2", - "ToASCII(\"‍‌󠆪。ss𑓃\") C1; C2", - "ToASCII(\"‍‌󠆪。Ss𑓃\") C1; C2", - "ToASCII(\"。‌ヶ䒩.ꡪ\") C1; A4_2 (ignored)", - "ToASCII(\".xn--0ug287dj0o.xn--gd9a\") C1; A4_2 (ignored)", - "ToASCII(\"梉。‌\") C1", - "ToASCII(\"xn--7zv.xn--0ug\") C1", - "ToASCII(\"𐋷。‍\") C2", - "ToASCII(\"xn--r97c.xn--1ug\") C2" - ], + "IdnaTestV2.window.html": true, "javascript-urls.window.html": false, "url-constructor.any.html?exclude=(file|javascript|mailto)": [ "Parsing: without base", @@ -4754,21 +4565,11 @@ ": Setting .pathname = '/foo' Opaque paths cannot be set" ], "url-setters.any.html?exclude=(file|javascript|mailto)": [ - "URL: Setting .host = 'example.com:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error", - "URL: Setting .host = '[::1]:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error", "URL: Setting .hostname = 'example.com:8080' : delimiter invalidates entire value", "URL: Setting .hostname = 'example.com:' : delimiter invalidates entire value", "URL: Setting .hostname = 'h' Drop /. from path", "URL: Setting .hostname = ''", - "URL: Setting .port = 'randomstring' Setting port to a string that doesn't parse as a number", - "URL: Setting .pathname = '' Non-special URLs can have their paths erased", - "URL: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased", - "URL: Setting .pathname = '/.//p' Serialize /. in path", - "URL: Setting .pathname = '/..//p'", - "URL: Setting .pathname = '//p'", - "URL: Setting .pathname = 'p' Drop /. from path", - "URL: Setting .search = '' Do not drop trailing spaces from non-trailing opaque paths", - "URL: Setting .search = ''" + "URL: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased" ], "url-setters.any.html?include=file": [ "URL: Setting .pathname = '\\\\' File URLs and (back)slashes", @@ -4778,21 +4579,11 @@ "url-setters.any.html?include=javascript": true, "url-setters.any.html?include=mailto": true, "url-setters.any.worker.html?exclude=(file|javascript|mailto)": [ - "URL: Setting .host = 'example.com:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error", - "URL: Setting .host = '[::1]:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error", "URL: Setting .hostname = 'example.com:8080' : delimiter invalidates entire value", "URL: Setting .hostname = 'example.com:' : delimiter invalidates entire value", "URL: Setting .hostname = 'h' Drop /. from path", "URL: Setting .hostname = ''", - "URL: Setting .port = 'randomstring' Setting port to a string that doesn't parse as a number", - "URL: Setting .pathname = '' Non-special URLs can have their paths erased", - "URL: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased", - "URL: Setting .pathname = '/.//p' Serialize /. in path", - "URL: Setting .pathname = '/..//p'", - "URL: Setting .pathname = '//p'", - "URL: Setting .pathname = 'p' Drop /. from path", - "URL: Setting .search = '' Do not drop trailing spaces from non-trailing opaque paths", - "URL: Setting .search = ''" + "URL: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased" ], "url-setters.any.worker.html?include=file": [ "URL: Setting .pathname = '\\\\' File URLs and (back)slashes", @@ -11512,10 +11303,10 @@ "006.html?default": true, "006.html?wpt_flags=h2": false, "006.html?wss": false, - "007.html?default": false, + "007.html?default": true, "007.html?wpt_flags=h2": false, "007.html?wss": false, - "008.html?default": false, + "008.html?default": true, "008.html?wss": false, "009.html?default": { "ignore": true diff --git a/tools/copyright_checker.js b/tools/copyright_checker.js index 24afe1dfd73eec..d7d196bc44656b 100755 --- a/tools/copyright_checker.js +++ b/tools/copyright_checker.js @@ -31,6 +31,8 @@ export async function checkCopyright() { ":!:.github/mtime_cache/action.js", ":!:cli/bench/testdata/**", ":!:cli/tools/bench/mitata.rs", + ":!:cli/tools/doc/prism.css", + ":!:cli/tools/doc/prism.js", ":!:cli/tools/init/templates/**", ":!:cli/tsc/*typescript.js", ":!:cli/tsc/compiler.d.ts", diff --git a/tools/core_import_map.json b/tools/core_import_map.json index aae4e63a4593d4..38ffe55858d932 100644 --- a/tools/core_import_map.json +++ b/tools/core_import_map.json @@ -247,6 +247,7 @@ "ext:runtime/41_prompt.js": "../runtime/js/41_prompt.js", "ext:runtime/90_deno_ns.js": "../runtime/js/90_deno_ns.js", "ext:runtime/98_global_scope.js": "../runtime/js/98_global_scope.js", + "ext:runtime/telemetry.ts": "../runtime/js/telemetry.ts", "ext:deno_node/_util/std_fmt_colors.ts": "../ext/node/polyfills/_util/std_fmt_colors.ts", "@std/archive": "../tests/util/std/archive/mod.ts", "@std/archive/tar": "../tests/util/std/archive/tar.ts", diff --git a/tools/lint.js b/tools/lint.js index cc595c2b133e56..8e0057fa305002 100755 --- a/tools/lint.js +++ b/tools/lint.js @@ -51,6 +51,8 @@ async function dlint() { ":!:cli/bench/testdata/express-router.js", ":!:cli/bench/testdata/react-dom.js", ":!:cli/compilers/wasm_wrap.js", + ":!:cli/tools/doc/prism.css", + ":!:cli/tools/doc/prism.js", ":!:cli/tsc/dts/**", ":!:cli/tsc/*typescript.js", ":!:cli/tsc/compiler.d.ts", @@ -219,7 +221,7 @@ async function ensureNoNewITests() { "pm_tests.rs": 0, "publish_tests.rs": 0, "repl_tests.rs": 0, - "run_tests.rs": 24, + "run_tests.rs": 18, "shared_library_tests.rs": 0, "task_tests.rs": 2, "test_tests.rs": 0, From 5a742d18584b148212f2420e3394332cc6bb25c5 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Sat, 23 Nov 2024 08:49:57 +0100 Subject: [PATCH 03/36] fix up runtime --- Cargo.lock | 24 ++++++++++++++---------- Cargo.toml | 3 ++- ext/cache/lib.rs | 12 +++++++++--- ext/cache/sqlite.rs | 11 ++++------- ext/cron/lib.rs | 7 ++++--- ext/fetch/lib.rs | 21 +++++++++++---------- ext/ffi/call.rs | 6 +++--- ext/ffi/callback.rs | 6 +++--- ext/ffi/dlfcn.rs | 8 ++++---- ext/ffi/repr.rs | 2 +- ext/ffi/static.rs | 4 ++-- ext/fs/Cargo.toml | 1 + ext/fs/ops.rs | 12 ++++++------ ext/http/Cargo.toml | 1 + ext/http/http_next.rs | 6 +++--- ext/http/lib.rs | 6 +++--- ext/io/fs.rs | 2 +- ext/kv/Cargo.toml | 1 + ext/kv/lib.rs | 16 ++++++++-------- ext/napi/lib.rs | 2 +- ext/net/io.rs | 2 +- ext/net/ops.rs | 14 +++++++------- ext/net/raw.rs | 2 +- ext/node/Cargo.toml | 1 + ext/node/ops/crypto/cipher.rs | 8 ++++---- ext/node/ops/crypto/mod.rs | 8 ++++---- ext/node/ops/fs.rs | 2 +- ext/node/ops/ipc.rs | 10 +++++----- ext/node/ops/os/priority.rs | 2 +- ext/node/ops/perf_hooks.rs | 3 ++- ext/node/ops/require.rs | 24 +++++++++++------------- ext/node/ops/worker_threads.rs | 2 +- ext/tls/lib.rs | 2 +- ext/web/compression.rs | 2 +- ext/web/message_port.rs | 4 ++-- ext/web/stream_resource.rs | 2 +- ext/websocket/lib.rs | 16 ++++++++-------- ext/webstorage/lib.rs | 2 +- runtime/Cargo.toml | 1 + runtime/ops/fs_events.rs | 11 ++++++----- runtime/ops/os/mod.rs | 6 +++--- runtime/ops/otel.rs | 34 ++++++++++++++++++++++++++-------- runtime/ops/permissions.rs | 2 +- runtime/ops/process.rs | 20 ++++++++++---------- runtime/ops/tty.rs | 4 +++- runtime/ops/worker_host.rs | 8 ++++---- runtime/permissions/lib.rs | 6 +++--- 47 files changed, 192 insertions(+), 157 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 71c4affa7e1a13..5fe79a6faa5953 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -504,7 +504,7 @@ dependencies = [ "bitflags 2.6.0", "cexpr", "clang-sys", - "itertools 0.10.5", + "itertools 0.13.0", "log", "prettyplease", "proc-macro2", @@ -1119,7 +1119,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b28bfe653d79bd16c77f659305b195b82bb5ce0c0eb2a4846b82ddbd77586813" dependencies = [ "bitflags 2.6.0", - "libloading 0.7.4", + "libloading 0.8.5", "winapi", ] @@ -1592,7 +1592,7 @@ dependencies = [ [[package]] name = "deno_error" -version = "0.5.1" +version = "0.5.2" dependencies = [ "deno_error_macro", "libc", @@ -1604,7 +1604,7 @@ dependencies = [ [[package]] name = "deno_error_macro" -version = "0.5.1" +version = "0.5.2" dependencies = [ "proc-macro2", "quote", @@ -1675,6 +1675,7 @@ dependencies = [ "base32", "boxed_error", "deno_core", + "deno_error", "deno_io", "deno_path_util", "deno_permissions", @@ -1732,6 +1733,7 @@ dependencies = [ "bytes", "cache_control", "deno_core", + "deno_error", "deno_net", "deno_websocket", "flate2", @@ -1792,6 +1794,7 @@ dependencies = [ "bytes", "chrono", "deno_core", + "deno_error", "deno_fetch", "deno_path_util", "deno_permissions", @@ -1917,6 +1920,7 @@ dependencies = [ "const-oid", "data-encoding", "deno_core", + "deno_error", "deno_fetch", "deno_fs", "deno_io", @@ -2043,11 +2047,10 @@ dependencies = [ [[package]] name = "deno_path_util" version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff25f6e08e7a0214bbacdd6f7195c7f1ebcd850c87a624e4ff06326b68b42d99" dependencies = [ + "deno_error", "percent-encoding", - "thiserror 1.0.64", + "thiserror 2.0.3", "url", ] @@ -2103,6 +2106,7 @@ dependencies = [ "deno_core", "deno_cron", "deno_crypto", + "deno_error", "deno_fetch", "deno_ffi", "deno_fs", @@ -5803,7 +5807,7 @@ checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ "bytes", "heck 0.5.0", - "itertools 0.10.5", + "itertools 0.13.0", "log", "multimap", "once_cell", @@ -5823,7 +5827,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.87", @@ -8603,7 +8607,7 @@ dependencies = [ "js-sys", "khronos-egl", "libc", - "libloading 0.7.4", + "libloading 0.8.5", "log", "metal", "naga", diff --git a/Cargo.toml b/Cargo.toml index 0e744300a49bd1..d6665179366a8d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,7 +50,7 @@ deno_core = { version = "0.322.0" } deno_bench_util = { version = "0.173.0", path = "./bench_util" } deno_config = { version = "=0.39.2", features = ["workspace", "sync"] } -deno_error = { version = "=0.5.1" } +deno_error = { version = "=0.5.2" } deno_lockfile = "=0.23.1" deno_media_type = { version = "0.2.0", features = ["module_specifier"] } deno_npm = "=0.25.4" @@ -342,3 +342,4 @@ deno_ops = { path = "../deno_core/ops" } serde_v8 = { path = "../deno_core/serde_v8" } v8 = { path = "../rusty_v8" } deno_error = { path = "../deno_error" } +deno_path_util = { path = "../deno_path_util" } diff --git a/ext/cache/lib.rs b/ext/cache/lib.rs index ee2057cebde36d..ab0b28f4979be8 100644 --- a/ext/cache/lib.rs +++ b/ext/cache/lib.rs @@ -31,13 +31,19 @@ pub enum CacheError { JoinError(#[from] tokio::task::JoinError), #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Other(#[inherit] JsNativeError), + Other(JsNativeError), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), + #[class(generic)] + #[error("Failed to create cache storage directory {}: {error}", .dir.display())] + CacheStorageDirectory { + dir: PathBuf, + error: std::io::Error, + }, } #[derive(Clone)] diff --git a/ext/cache/sqlite.rs b/ext/cache/sqlite.rs index d96832555ab302..fd9d31cdd9395a 100644 --- a/ext/cache/sqlite.rs +++ b/ext/cache/sqlite.rs @@ -44,13 +44,10 @@ impl SqliteBackedCache { pub fn new(cache_storage_dir: PathBuf) -> Result { { std::fs::create_dir_all(&cache_storage_dir) - .with_context(|| { - format!( - "Failed to create cache storage directory {}", - cache_storage_dir.display() - ) - }) - .map_err(CacheError::Other)?; + .map_err(|error| CacheError::CacheStorageDirectory { + dir: cache_storage_dir.clone(), + error, + })?; let path = cache_storage_dir.join("cache_metadata.db"); let connection = rusqlite::Connection::open(&path).unwrap_or_else(|_| { panic!("failed to open cache db at {}", path.display()) diff --git a/ext/cron/lib.rs b/ext/cron/lib.rs index f2acd0fe04db27..cf971fd9b0c5d7 100644 --- a/ext/cron/lib.rs +++ b/ext/cron/lib.rs @@ -6,12 +6,13 @@ pub mod local; use std::borrow::Cow; use std::cell::RefCell; use std::rc::Rc; -use deno_core::error::{JsErrorClass, JsNativeError}; pub use crate::interface::*; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; +use deno_core::error::JsNativeError; +use deno_error::JsErrorClass; pub const UNSTABLE_FEATURE_NAME: &str = "cron"; @@ -49,7 +50,7 @@ impl Resource for CronResource { pub enum CronError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(type)] #[error("Cron name cannot exceed 64 characters: current length {0}")] NameExceeded(usize), @@ -73,7 +74,7 @@ pub enum CronError { AcquireError(#[from] tokio::sync::AcquireError), #[class(inherit)] #[error(transparent)] - Other(#[inherit] JsNativeError), + Other(JsNativeError), } #[op2] diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index 0774e7a3d7f216..10960d4e8f702b 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -165,10 +165,10 @@ deno_core::extension!(deno_fetch, pub enum FetchError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] PermissionCheckError), + Permission(#[from] PermissionCheckError), #[class(type)] #[error("NetworkError when attempting to fetch resource")] NetworkError, @@ -204,10 +204,10 @@ pub enum FetchError { Http(#[from] http::Error), #[class(inherit)] #[error(transparent)] - ClientCreate(#[from] #[inherit] HttpClientCreateError), + ClientCreate(#[from] HttpClientCreateError), #[class(inherit)] #[error(transparent)] - Url(#[from] #[inherit] url::ParseError), + Url(#[from] url::ParseError), #[class(type)] #[error(transparent)] Method(#[from] http::method::InvalidMethod), @@ -216,10 +216,13 @@ pub enum FetchError { ClientSend(#[from] ClientSendError), #[class(inherit)] #[error(transparent)] - RequestBuilderHook(#[inherit] JsNativeError), + RequestBuilderHook(JsNativeError), #[class(inherit)] #[error(transparent)] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), + #[class(generic)] + #[error(transparent)] + Dns(hickory_resolver::error::ResolveError), // Only used for node upgrade #[class("Http")] #[error(transparent)] @@ -913,9 +916,7 @@ where ca_certs, proxy: args.proxy, dns_resolver: if args.use_hickory_resolver { - dns::Resolver::hickory() - .map_err(deno_core::error::AnyError::new) - .map_err(FetchError::Resource)? + dns::Resolver::hickory().map_err(FetchError::Dns)? } else { dns::Resolver::default() }, @@ -992,7 +993,7 @@ pub enum HttpClientCreateError { HttpVersionSelectionInvalid, #[class(inherit)] #[error(transparent)] - RootCertStore(#[inherit] JsNativeError), + RootCertStore(JsNativeError), } /// Create new instance of async Client. This client supports diff --git a/ext/ffi/call.rs b/ext/ffi/call.rs index 5703c7f4a2638a..93cd8827356b2c 100644 --- a/ext/ffi/call.rs +++ b/ext/ffi/call.rs @@ -36,13 +36,13 @@ pub enum CallError { InvalidSymbol(String), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Callback(#[from] #[inherit] super::CallbackError), + Callback(#[from] super::CallbackError), } // SAFETY: Makes an FFI call diff --git a/ext/ffi/callback.rs b/ext/ffi/callback.rs index 1bb65208054cc5..e81f3cfb718add 100644 --- a/ext/ffi/callback.rs +++ b/ext/ffi/callback.rs @@ -37,13 +37,13 @@ thread_local! { pub enum CallbackError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error(transparent)] - Other(#[from] #[inherit] deno_core::error::JsNativeError), + Other(#[from] deno_core::error::JsNativeError), } #[derive(Clone)] diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index b59909e29bf13e..74b3ec80825082 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -6,7 +6,6 @@ use crate::symbol::Symbol; use crate::turbocall; use crate::turbocall::Turbocall; use crate::FfiPermissions; -use deno_core::error::{JsErrorClass}; use deno_core::error::{JsNativeError}; use deno_core::op2; use deno_core::v8; @@ -21,6 +20,7 @@ use std::cell::RefCell; use std::collections::HashMap; use std::ffi::c_void; use std::rc::Rc; +use deno_error::JsErrorClass; deno_error::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { match err { @@ -45,10 +45,10 @@ pub enum DlfcnError { Dlopen(#[from] dlopen2::Error), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error(transparent)] - Other(#[from] #[inherit] JsNativeError), + Other(#[from] JsNativeError), } pub struct DynamicLibraryResource { @@ -312,7 +312,7 @@ fn sync_fn_impl<'s>( unsafe { result.to_v8(scope, data.symbol.result_type.clone()) }; rv.set(result); } - Err(err) => err.throw(scope), + Err(err) => deno_core::error::throw_js_error_class(scope, &err), }; } diff --git a/ext/ffi/repr.rs b/ext/ffi/repr.rs index eab9c47f5d48db..4047e4330444c9 100644 --- a/ext/ffi/repr.rs +++ b/ext/ffi/repr.rs @@ -48,7 +48,7 @@ pub enum ReprError { InvalidPointer, #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), } #[op2(fast, stack_trace)] diff --git a/ext/ffi/static.rs b/ext/ffi/static.rs index 10142ef8141404..0b3d9ddb9cd9d6 100644 --- a/ext/ffi/static.rs +++ b/ext/ffi/static.rs @@ -12,7 +12,7 @@ use std::ptr; pub enum StaticError { #[class(inherit)] #[error(transparent)] - Dlfcn(#[inherit] super::DlfcnError), + Dlfcn(super::DlfcnError), #[class(type)] #[error("Invalid FFI static type 'void'")] InvalidTypeVoid, @@ -21,7 +21,7 @@ pub enum StaticError { InvalidTypeStruct, #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), } #[op2] diff --git a/ext/fs/Cargo.toml b/ext/fs/Cargo.toml index 1d7d5d3d9aabed..5fadfa44d3ec7e 100644 --- a/ext/fs/Cargo.toml +++ b/ext/fs/Cargo.toml @@ -21,6 +21,7 @@ async-trait.workspace = true base32.workspace = true boxed_error.workspace = true deno_core.workspace = true +deno_error.workspace = true deno_io.workspace = true deno_path_util.workspace = true deno_permissions.workspace = true diff --git a/ext/fs/ops.rs b/ext/fs/ops.rs index b14ddfe6937964..3740ce556b3e3f 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -42,16 +42,16 @@ pub struct FsOpsError(pub Box); pub enum FsOpsErrorKind { #[class(inherit)] #[error("{0}")] - Io(#[source] #[inherit] std::io::Error), + Io(#[source] std::io::Error), #[class(inherit)] #[error("{0}")] - OperationError(#[source] #[inherit] OperationError), + OperationError(#[source] OperationError), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] PermissionCheckError), + Permission(#[from] PermissionCheckError), #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] ResourceError), + Resource(#[from] ResourceError), #[class("InvalidData")] #[error("File name or path {0:?} is not valid UTF-8")] InvalidUtf8(std::ffi::OsString), @@ -60,7 +60,7 @@ pub enum FsOpsErrorKind { StripPrefix(#[from] StripPrefixError), #[class(inherit)] #[error("{0}")] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled(#[from] deno_core::Canceled), #[class(type)] #[error("Invalid seek mode: {0}")] InvalidSeekMode(i32), @@ -87,7 +87,7 @@ pub enum FsOpsErrorKind { NotCapable(&'static str), #[class(inherit)] #[error(transparent)] - Other(#[inherit] JsNativeError), + Other(JsNativeError), } impl From for FsOpsError { diff --git a/ext/http/Cargo.toml b/ext/http/Cargo.toml index 5dc3cd9a7b83c0..896a8233564536 100644 --- a/ext/http/Cargo.toml +++ b/ext/http/Cargo.toml @@ -28,6 +28,7 @@ brotli.workspace = true bytes.workspace = true cache_control.workspace = true deno_core.workspace = true +deno_error.workspace = true deno_net.workspace = true deno_websocket.workspace = true flate2.workspace = true diff --git a/ext/http/http_next.rs b/ext/http/http_next.rs index fa631d9e8498c0..a85d9d5dc1f87d 100644 --- a/ext/http/http_next.rs +++ b/ext/http/http_next.rs @@ -150,13 +150,13 @@ macro_rules! clone_external { pub enum HttpNextError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] io::Error), + Io(#[from] io::Error), #[class(inherit)] #[error(transparent)] - WebSocketUpgrade(#[inherit] crate::websocket_upgrade::WebSocketUpgradeError), + WebSocketUpgrade(crate::websocket_upgrade::WebSocketUpgradeError), #[class("Http")] #[error("{0}")] Hyper(#[from] hyper::Error), diff --git a/ext/http/lib.rs b/ext/http/lib.rs index 1efc68f73c7394..7fce0ce3e9df58 100644 --- a/ext/http/lib.rs +++ b/ext/http/lib.rs @@ -169,10 +169,10 @@ deno_core::extension!( pub enum HttpError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled(#[from] deno_core::Canceled), #[class("Http")] #[error("{0}")] HyperV014(#[source] Arc), @@ -196,7 +196,7 @@ pub enum HttpError { AlreadyInUse, #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), #[class("Http")] #[error("no response headers")] NoResponseHeaders, diff --git a/ext/io/fs.rs b/ext/io/fs.rs index 2a3ec1b8596cb5..f4546105753983 100644 --- a/ext/io/fs.rs +++ b/ext/io/fs.rs @@ -18,7 +18,7 @@ use tokio::task::JoinError; #[derive(Debug, deno_error::JsError)] pub enum FsError { #[class(inherit)] - Io(#[inherit] io::Error), + Io(io::Error), #[class("Busy")] FileBusy, #[class(not_supported)] diff --git a/ext/kv/Cargo.toml b/ext/kv/Cargo.toml index 972aabfbb7cdb7..1c3852060264c8 100644 --- a/ext/kv/Cargo.toml +++ b/ext/kv/Cargo.toml @@ -21,6 +21,7 @@ boxed_error.workspace = true bytes.workspace = true chrono = { workspace = true, features = ["now"] } deno_core.workspace = true +deno_error.workspace = true deno_fetch.workspace = true deno_path_util.workspace = true deno_permissions.workspace = true diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs index 23a1603409402e..de7fa4a5f7603f 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -17,7 +17,7 @@ use base64::Engine; use boxed_error::Boxed; use chrono::DateTime; use chrono::Utc; -use deno_core::error::JsErrorClass; +use deno_error::JsErrorClass; use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::op2; @@ -123,10 +123,10 @@ pub struct KvError(pub Box); pub enum KvErrorKind { #[class(inherit)] #[error(transparent)] - DatabaseHandler( #[inherit] JsNativeError), + DatabaseHandler( JsNativeError), #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(type)] #[error("Too many ranges (max {0})")] TooManyRanges(usize), @@ -165,7 +165,7 @@ pub enum KvErrorKind { Kv(deno_core::error::AnyError), #[class(inherit)] #[error(transparent)] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), #[class(type)] #[error("Queue message not found")] QueueMessageNotFound, @@ -180,13 +180,13 @@ pub enum KvErrorKind { StartKeyGreaterThanEndKey, #[class(inherit)] #[error("Invalid check")] - InvalidCheck(#[source] #[inherit] KvCheckError), + InvalidCheck(#[source] KvCheckError), #[class(inherit)] #[error("Invalid mutation")] - InvalidMutation(#[source]#[inherit] KvMutationError), + InvalidMutation(#[source] KvMutationError), #[class(inherit)] #[error("Invalid enqueue")] - InvalidEnqueue(#[source] #[inherit] std::io::Error), + InvalidEnqueue(#[source] std::io::Error), #[class(type)] #[error("key cannot be empty")] EmptyKey, @@ -604,7 +604,7 @@ pub enum KvCheckError { InvalidVersionstamp, #[class(inherit)] #[error(transparent)] - Io(#[inherit] std::io::Error), + Io(std::io::Error), } type V8KvCheck = (KvKey, Option); diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index 6f91fba3b07d29..9efcd0edc547ad 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -66,7 +66,7 @@ pub enum NApiError { ModuleNotFound(PathBuf), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] PermissionCheckError), + Permission(#[from] PermissionCheckError), } pub type napi_status = i32; diff --git a/ext/net/io.rs b/ext/net/io.rs index 475879f3ada69f..0d8cec82feeaa8 100644 --- a/ext/net/io.rs +++ b/ext/net/io.rs @@ -95,7 +95,7 @@ where pub enum MapError { #[class(inherit)] #[error("{0}")] - Io(#[inherit] std::io::Error), + Io(std::io::Error), #[class(generic)] #[error("Unable to get resources")] NoResources, diff --git a/ext/net/ops.rs b/ext/net/ops.rs index 5c625fe7fa9459..fcfd0864d0022e 100644 --- a/ext/net/ops.rs +++ b/ext/net/ops.rs @@ -84,16 +84,16 @@ pub enum NetError { SocketBusy, #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), #[class("Busy")] #[error("Another accept task is ongoing")] AcceptTaskOngoing, #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error("{0}")] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(generic)] #[error("No resolved address found")] NoResolvedAddress, @@ -102,10 +102,10 @@ pub enum NetError { AddrParse(#[from] std::net::AddrParseError), #[class(inherit)] #[error("{0}")] - Map(#[inherit] crate::io::MapError), + Map(crate::io::MapError), #[class(inherit)] #[error("{0}")] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled(#[from] deno_core::Canceled), #[class("NotFound")] #[error("{0}")] DnsNotFound(ResolveError), @@ -138,13 +138,13 @@ pub enum NetError { Rustls(#[from] deno_tls::rustls::Error), #[class(inherit)] #[error("{0}")] - Tls(#[from] #[inherit] deno_tls::TlsError), + Tls(#[from] deno_tls::TlsError), #[class("InvalidData")] #[error("Error creating TLS certificate: Deno.listenTls requires a key")] ListenTlsRequiresKey, #[class(inherit)] #[error("{0}")] - RootCertStore(#[inherit] deno_core::error::JsNativeError), + RootCertStore(deno_core::error::JsNativeError), #[class(generic)] #[error("{0}")] Reunite(tokio::net::tcp::ReuniteError), diff --git a/ext/net/raw.rs b/ext/net/raw.rs index 604878f6aa65c3..284effa9a54c18 100644 --- a/ext/net/raw.rs +++ b/ext/net/raw.rs @@ -341,7 +341,7 @@ pub enum TakeNetworkStreamError { ReuniteUnix(#[from] tokio::net::unix::ReuniteError), #[class(inherit)] #[error(transparent)] - Resource(#[inherit] deno_core::error::ResourceError), + Resource(deno_core::error::ResourceError), } /// In some cases it may be more efficient to extract the resource from the resource table and use it directly (for example, an HTTP server). diff --git a/ext/node/Cargo.toml b/ext/node/Cargo.toml index 5e47a74e1dc352..247eef4e926280 100644 --- a/ext/node/Cargo.toml +++ b/ext/node/Cargo.toml @@ -29,6 +29,7 @@ cbc.workspace = true const-oid = "0.9.5" data-encoding.workspace = true deno_core.workspace = true +deno_error.workspace = true deno_fetch.workspace = true deno_fs.workspace = true deno_io.workspace = true diff --git a/ext/node/ops/crypto/cipher.rs b/ext/node/ops/crypto/cipher.rs index bf51ad489c59c1..beee125ad5f707 100644 --- a/ext/node/ops/crypto/cipher.rs +++ b/ext/node/ops/crypto/cipher.rs @@ -54,10 +54,10 @@ pub enum CipherContextError { ContextInUse, #[class(inherit)] #[error("{0}")] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Cipher(#[from] #[inherit] CipherError), + Cipher(#[from] CipherError), } impl CipherContext { @@ -104,10 +104,10 @@ pub enum DecipherContextError { ContextInUse, #[class(inherit)] #[error("{0}")] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Decipher(#[from] #[inherit] DecipherError), + Decipher(#[from] DecipherError), } impl DecipherContext { diff --git a/ext/node/ops/crypto/mod.rs b/ext/node/ops/crypto/mod.rs index 5dc30933be2930..fb65d64cc1c9e5 100644 --- a/ext/node/ops/crypto/mod.rs +++ b/ext/node/ops/crypto/mod.rs @@ -414,7 +414,7 @@ pub enum Pbkdf2Error { UnsupportedDigest(String), #[class(inherit)] #[error(transparent)] - Join(#[from] #[inherit] tokio::task::JoinError), + Join(#[from] tokio::task::JoinError), } fn pbkdf2_sync( @@ -494,7 +494,7 @@ pub enum HkdfError { UnsupportedDigest(String), #[class(inherit)] #[error(transparent)] - Join(#[from] #[inherit] tokio::task::JoinError), + Join(#[from] tokio::task::JoinError), } fn hkdf_sync( @@ -634,10 +634,10 @@ pub fn op_node_scrypt_sync( pub enum ScryptAsyncError { #[class(inherit)] #[error(transparent)] - Join(#[from] #[inherit] tokio::task::JoinError), + Join(#[from] tokio::task::JoinError), #[class(inherit)] #[error(transparent)] - Other(#[inherit] JsNativeError), + Other(JsNativeError), } #[op2(async)] diff --git a/ext/node/ops/fs.rs b/ext/node/ops/fs.rs index 7ab00a4747d735..5ba961c2c3d6d1 100644 --- a/ext/node/ops/fs.rs +++ b/ext/node/ops/fs.rs @@ -14,7 +14,7 @@ use crate::NodePermissions; pub enum FsError { #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error("{0}")] Io(#[from] #[inherit] std::io::Error), diff --git a/ext/node/ops/ipc.rs b/ext/node/ops/ipc.rs index bfd0b06c7610c0..07c028bd89ffec 100644 --- a/ext/node/ops/ipc.rs +++ b/ext/node/ops/ipc.rs @@ -183,16 +183,16 @@ mod impl_ { pub enum IpcError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - IpcJsonStream(#[from] #[inherit] IpcJsonStreamError), + IpcJsonStream(#[from] IpcJsonStreamError), #[class(inherit)] #[error(transparent)] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled(#[from] deno_core::Canceled), #[class(inherit)] #[error("failed to serialize json value: {0}")] - SerdeJson(#[inherit] serde_json::Error), + SerdeJson(serde_json::Error), } #[op2(async)] @@ -477,7 +477,7 @@ mod impl_ { pub enum IpcJsonStreamError { #[class(inherit)] #[error("{0}")] - Io(#[source] #[inherit] std::io::Error), + Io(#[source] std::io::Error), #[class(generic)] #[error("{0}")] SimdJson(#[source] simd_json::Error), diff --git a/ext/node/ops/os/priority.rs b/ext/node/ops/os/priority.rs index 75068a8ef36d72..4304e0c7e0744e 100644 --- a/ext/node/ops/os/priority.rs +++ b/ext/node/ops/os/priority.rs @@ -6,7 +6,7 @@ pub use impl_::*; pub enum PriorityError { #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), #[cfg(windows)] #[class(type)] #[error("Invalid priority")] diff --git a/ext/node/ops/perf_hooks.rs b/ext/node/ops/perf_hooks.rs index 636d0b2adbb6b0..0a2fdc73a7de06 100644 --- a/ext/node/ops/perf_hooks.rs +++ b/ext/node/ops/perf_hooks.rs @@ -5,8 +5,9 @@ use deno_core::GarbageCollected; use std::cell::Cell; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum PerfHooksError { + #[class(generic)] #[error(transparent)] TokioEld(#[from] tokio_eld::Error), } diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index 73c8a8eb2415cc..7667349537a3f5 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use boxed_error::Boxed; -use deno_core::error::AnyError; use deno_core::op2; use deno_core::url::Url; use deno_core::v8; @@ -63,7 +62,7 @@ pub enum RequireErrorKind { PackageJsonLoad(#[from] node_resolver::errors::PackageJsonLoadError), #[class(generic)] #[error(transparent)] - ClosestPkgJson(#[from] node_resolver::errors::ClosestPkgJsonError), + ClosestPkgJson(#[from] ClosestPkgJsonError), #[class(generic)] #[error(transparent)] PackageImportsResolve( @@ -235,17 +234,16 @@ pub fn op_require_resolve_deno_dir( state: &mut OpState, #[string] request: String, #[string] parent_filename: String, -) -> Result, AnyError> { +) -> Result, deno_path_util::PathToUrlError> { let resolver = state.borrow::(); - Ok( - resolver - .resolve_package_folder_from_package( - &request, - &url_from_file_path(&PathBuf::from(parent_filename))?, - ) - .ok() - .map(|p| p.to_string_lossy().into_owned()), - ) + + Ok(resolver + .resolve_package_folder_from_package( + &request, + &url_from_file_path(&PathBuf::from(parent_filename))?, + ) + .ok() + .map(|p| p.to_string_lossy().into_owned())) } #[op2(fast)] @@ -582,7 +580,7 @@ where })) } -deno_error::js_error_wrapper!(node_resolver::errors::ClosestPkgJsonError, JsClosestPkgJsonError, "Error"); +deno_error::js_error_wrapper!(ClosestPkgJsonError, JsClosestPkgJsonError, "Error"); #[op2(fast)] pub fn op_require_is_maybe_cjs( diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index 1223a04cabc685..e19d3644cea68d 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -28,7 +28,7 @@ where pub enum WorkerThreadsFilenameError { #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] PermissionCheckError), + Permission(#[from] PermissionCheckError), #[class(inherit)] #[error("{0}")] UrlParse(#[from] #[inherit] url::ParseError), diff --git a/ext/tls/lib.rs b/ext/tls/lib.rs index 930e428556f45d..da05d1bfc73c50 100644 --- a/ext/tls/lib.rs +++ b/ext/tls/lib.rs @@ -38,7 +38,7 @@ pub enum TlsError { Rustls(#[from] rustls::Error), #[class(inherit)] #[error("Unable to add pem file to certificate store: {0}")] - UnableAddPemFileToCert(#[inherit] std::io::Error), + UnableAddPemFileToCert(std::io::Error), #[class("InvalidData")] #[error("Unable to decode certificate")] CertInvalid, diff --git a/ext/web/compression.rs b/ext/web/compression.rs index 7feca8d36e4355..fd9782636d8df8 100644 --- a/ext/web/compression.rs +++ b/ext/web/compression.rs @@ -24,7 +24,7 @@ pub enum CompressionError { IoTypeError(std::io::Error), #[class(inherit)] #[error(transparent)] - Io(#[inherit] std::io::Error), + Io(std::io::Error), } #[derive(Debug)] diff --git a/ext/web/message_port.rs b/ext/web/message_port.rs index 3a842bf43348f3..3009e4656a9751 100644 --- a/ext/web/message_port.rs +++ b/ext/web/message_port.rs @@ -34,10 +34,10 @@ pub enum MessagePortError { TransferSelf, #[class(inherit)] #[error(transparent)] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled(#[from] deno_core::Canceled), #[class(inherit)] #[error(transparent)] - Resource(#[inherit] deno_core::error::ResourceError), + Resource(deno_core::error::ResourceError), } pub enum Transferable { diff --git a/ext/web/stream_resource.rs b/ext/web/stream_resource.rs index fd55bbb05232a3..b71abc22aeece4 100644 --- a/ext/web/stream_resource.rs +++ b/ext/web/stream_resource.rs @@ -34,7 +34,7 @@ use std::task::Waker; pub enum StreamResourceError { #[class(inherit)] #[error(transparent)] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled(#[from] deno_core::Canceled), #[class(type)] #[error("{0}")] Js(String), diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index cbef273fee318b..2eed7a8de8cfb3 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -76,19 +76,19 @@ static USE_WRITEV: Lazy = Lazy::new(|| { pub enum WebsocketError { #[class(inherit)] #[error(transparent)] - Url(#[inherit] url::ParseError), + Url(url::ParseError), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] PermissionCheckError), + Permission(#[from] PermissionCheckError), #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(generic)] #[error(transparent)] Uri(#[from] http::uri::InvalidUri), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), #[class(type)] #[error(transparent)] WebSocket(#[from] fastwebsockets::WebSocketError), @@ -97,7 +97,7 @@ pub enum WebsocketError { ConnectionFailed(#[from] HandshakeError), #[class(inherit)] #[error(transparent)] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled(#[from] deno_core::Canceled), } #[derive(Clone)] @@ -213,7 +213,7 @@ pub enum HandshakeError { Rustls(#[from] deno_tls::rustls::Error), #[class(inherit)] #[error(transparent)] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), #[class(generic)] #[error(transparent)] H2(#[from] h2::Error), @@ -222,10 +222,10 @@ pub enum HandshakeError { InvalidHostname(String), #[class(inherit)] #[error(transparent)] - RootStoreError(#[inherit] JsNativeError), + RootStoreError(JsNativeError), #[class(inherit)] #[error(transparent)] - Tls(#[inherit] deno_tls::TlsError), + Tls(deno_tls::TlsError), #[class(type)] #[error(transparent)] HeaderName(#[from] http::header::InvalidHeaderName), diff --git a/ext/webstorage/lib.rs b/ext/webstorage/lib.rs index 1f92223d8ea29d..0062fd0ea8d572 100644 --- a/ext/webstorage/lib.rs +++ b/ext/webstorage/lib.rs @@ -21,7 +21,7 @@ pub enum WebStorageError { Sqlite(#[from] rusqlite::Error), #[class(inherit)] #[error(transparent)] - Io(#[inherit] std::io::Error), + Io(std::io::Error), #[class("DOMExceptionQuotaExceededError")] #[error("Exceeded maximum storage size")] StorageExceeded, diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 94fe4ce02bd2ac..c896c7de5196ab 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -98,6 +98,7 @@ deno_webgpu.workspace = true deno_webidl.workspace = true deno_websocket.workspace = true deno_webstorage.workspace = true +deno_error.workspace = true node_resolver = { workspace = true, features = ["sync"] } async-trait.workspace = true diff --git a/runtime/ops/fs_events.rs b/runtime/ops/fs_events.rs index 477e6c07d66fcd..2dd0f279609534 100644 --- a/runtime/ops/fs_events.rs +++ b/runtime/ops/fs_events.rs @@ -27,7 +27,8 @@ use std::path::Path; use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; -use deno_core::error::GENERIC_ERROR; +use deno_error::builtin_classes::GENERIC_ERROR; +use deno_error::JsErrorClass; use tokio::sync::mpsc; deno_core::extension!( @@ -125,16 +126,16 @@ deno_error::js_error_wrapper!(NotifyError, JsNotifyError, |err| { pub enum FsEventsError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error(transparent)] - Notify(#[inherit] JsNotifyError), + Notify(JsNotifyError), #[class(inherit)] #[error(transparent)] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled(#[from] deno_core::Canceled), } fn start_watcher( diff --git a/runtime/ops/os/mod.rs b/runtime/ops/os/mod.rs index d5959ddcf98ca4..545be11bb1fc58 100644 --- a/runtime/ops/os/mod.rs +++ b/runtime/ops/os/mod.rs @@ -73,7 +73,7 @@ deno_core::extension!( pub enum OsError { #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] PermissionCheckError), + Permission(#[from] PermissionCheckError), #[class("InvalidData")] #[error("File name or path {0:?} is not valid UTF-8")] InvalidUtf8(std::ffi::OsString), @@ -88,10 +88,10 @@ pub enum OsError { EnvInvalidValue(String), #[class(inherit)] #[error(transparent)] - Var(#[from] #[inherit] env::VarError), + Var(#[from] env::VarError), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), } #[op2(stack_trace)] diff --git a/runtime/ops/otel.rs b/runtime/ops/otel.rs index 61a7b0ef0dff8f..c1413e87b2edf5 100644 --- a/runtime/ops/otel.rs +++ b/runtime/ops/otel.rs @@ -667,6 +667,24 @@ fn op_otel_log( struct TemporarySpan(SpanData); +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(generic)] +pub enum OtelError { + #[error("instrumentation scope not available")] + ScopeUnavailable, + #[error("invalid trace_id")] + InvalidTraceId, + #[error("invalid span_id")] + InvalidSpanId, + #[error("invalid span kind")] + InvalidSpanKind, + #[error("invalid start time")] + InvalidStartTime, + #[class(inherit)] + #[error("{0}")] + Data(deno_core::error::DataError), +} + #[allow(clippy::too_many_arguments)] #[op2(fast)] fn op_otel_span_start<'s>( @@ -679,7 +697,7 @@ fn op_otel_span_start<'s>( name: v8::Local<'s, v8::Value>, start_time: f64, end_time: f64, -) -> Result<(), anyhow::Error> { +) -> Result<(), OtelError> { if let Some(temporary_span) = state.try_take::() { let Some((span_processor, _)) = OTEL_PROCESSORS.get() else { return Ok(()); @@ -690,23 +708,23 @@ fn op_otel_span_start<'s>( let Some(InstrumentationScope(instrumentation_scope)) = state.try_borrow::() else { - return Err(anyhow!("instrumentation scope not available")); + return Err(OtelError::ScopeUnavailable); }; let trace_id = parse_trace_id(scope, trace_id); if trace_id == TraceId::INVALID { - return Err(anyhow!("invalid trace_id")); + return Err(OtelError::InvalidTraceId); } let span_id = parse_span_id(scope, span_id); if span_id == SpanId::INVALID { - return Err(anyhow!("invalid span_id")); + return Err(OtelError::InvalidTraceId); } let parent_span_id = parse_span_id(scope, parent_span_id); let name = { - let x = v8::ValueView::new(scope, name.try_cast()?); + let x = v8::ValueView::new(scope, name.try_cast().map_err(|e: v8::DataError| OtelError::Data(e.into()))?); match x.data() { v8::ValueViewData::OneByte(bytes) => { String::from_utf8_lossy(bytes).into_owned() @@ -730,15 +748,15 @@ fn op_otel_span_start<'s>( 2 => SpanKind::Client, 3 => SpanKind::Producer, 4 => SpanKind::Consumer, - _ => return Err(anyhow!("invalid span kind")), + _ => return Err(OtelError::InvalidSpanKind), }, name: Cow::Owned(name), start_time: SystemTime::UNIX_EPOCH .checked_add(std::time::Duration::from_secs_f64(start_time)) - .ok_or_else(|| anyhow!("invalid start time"))?, + .ok_or_else(|| OtelError::InvalidStartTime)?, end_time: SystemTime::UNIX_EPOCH .checked_add(std::time::Duration::from_secs_f64(end_time)) - .ok_or_else(|| anyhow!("invalid start time"))?, + .ok_or_else(|| OtelError::InvalidStartTime)?, attributes: Vec::new(), dropped_attributes_count: 0, events: Default::default(), diff --git a/runtime/ops/permissions.rs b/runtime/ops/permissions.rs index 374f011fa635f6..50814ef3742d86 100644 --- a/runtime/ops/permissions.rs +++ b/runtime/ops/permissions.rs @@ -47,7 +47,7 @@ impl From for PermissionStatus { #[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum PermissionError { - #[class("ReferenceError")] + #[class(reference)] #[error("No such permission name: {0}")] InvalidPermissionName(String), #[class(inherit)] diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index fbd174498ac017..bb3e834dd8cf16 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -220,23 +220,23 @@ pub enum ProcessError { }, #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), #[cfg(unix)] #[class(inherit)] #[error(transparent)] - Nix(#[inherit] JsNixError), + Nix(JsNixError), #[class(inherit)] #[error("failed resolving cwd: {0}")] - FailedResolvingCwd(#[source] #[inherit] std::io::Error), + FailedResolvingCwd(#[source] std::io::Error), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error(transparent)] - RunPermission(#[from] #[inherit] CheckRunPermissionError), + RunPermission(#[from] CheckRunPermissionError), #[class(inherit)] #[error(transparent)] - Resource(#[inherit] deno_core::error::ResourceError), + Resource(deno_core::error::ResourceError), #[class(generic)] #[error(transparent)] BorrowMut(std::cell::BorrowMutError), @@ -251,10 +251,10 @@ pub enum ProcessError { InvalidPid, #[class(inherit)] #[error(transparent)] - Signal(#[from] #[inherit] SignalError), + Signal(#[from] SignalError), #[class(inherit)] #[error(transparent)] - Other(#[from] #[inherit] JsNativeError), + Other(#[from] JsNativeError), #[class(type)] #[error("Missing cmd")] MissingCmd, // only for Deno.run @@ -774,10 +774,10 @@ fn resolve_path(path: &str, cwd: &Path) -> PathBuf { pub enum CheckRunPermissionError { #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error("{0}")] - Other(#[inherit] JsNativeError), + Other(JsNativeError), } fn check_run_permission( diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index 8aea9704fcecff..86dda1d1fdad5e 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -27,7 +27,9 @@ use nix::sys::termios; use std::cell::RefCell; #[cfg(unix)] use std::collections::HashMap; -use deno_core::error::{JsNativeError, GENERIC_ERROR}; +use deno_core::error::{JsNativeError}; +use deno_error::builtin_classes::{GENERIC_ERROR}; +use deno_error::JsErrorClass; #[cfg(unix)] #[derive(Default, Clone)] diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs index acc87cd5833f06..d1d5f98748affa 100644 --- a/runtime/ops/worker_host.rs +++ b/runtime/ops/worker_host.rs @@ -125,16 +125,16 @@ pub enum CreateWorkerError { ClassicWorkers, #[class(inherit)] #[error(transparent)] - Permission(#[inherit] deno_permissions::ChildPermissionError), + Permission(deno_permissions::ChildPermissionError), #[class(inherit)] #[error(transparent)] - ModuleResolution(#[from] #[inherit] deno_core::ModuleResolutionError), + ModuleResolution(#[from] deno_core::ModuleResolutionError), #[class(inherit)] #[error(transparent)] - MessagePort(#[from] #[inherit] MessagePortError), + MessagePort(#[from] MessagePortError), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), } /// Create worker as the host diff --git a/runtime/permissions/lib.rs b/runtime/permissions/lib.rs index 8b8b110ba99c6c..1cf2a1965e0b11 100644 --- a/runtime/permissions/lib.rs +++ b/runtime/permissions/lib.rs @@ -948,7 +948,7 @@ pub enum NetDescriptorFromUrlParseError { MissingHost(Url), #[class(inherit)] #[error("{0}")] - Host(#[from] #[inherit] HostParseError), + Host(#[from] HostParseError), } impl NetDescriptor { @@ -1317,7 +1317,7 @@ pub enum RunQueryDescriptor { pub enum PathResolveError { #[class(inherit)] #[error("failed resolving cwd: {0}")] - CwdResolve(#[source] #[inherit] std::io::Error), + CwdResolve(#[source] std::io::Error), #[class(generic)] #[error("Empty path is not allowed")] EmptyPath, @@ -1482,7 +1482,7 @@ pub enum RunDescriptorParseError { Which(#[from] which::Error), #[class(inherit)] #[error("{0}")] - PathResolve(#[from] #[inherit] PathResolveError), + PathResolve(#[from] PathResolveError), #[class(generic)] #[error("Empty run query is not allowed")] EmptyRunQuery, From 8fc695bfc198a0f2e645a1ad888ac14f69dcaf22 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Sat, 23 Nov 2024 21:06:34 +0100 Subject: [PATCH 04/36] start some cli work --- Cargo.lock | 282 ++++++++-------------- Cargo.toml | 6 +- cli/Cargo.toml | 5 +- cli/args/mod.rs | 3 +- cli/errors.rs | 119 --------- cli/factory.rs | 6 +- cli/file_fetcher.rs | 24 +- cli/graph_util.rs | 29 +-- cli/http_util.rs | 18 +- cli/lsp/analysis.rs | 6 +- cli/lsp/documents.rs | 4 +- cli/lsp/text.rs | 6 +- cli/main.rs | 1 - cli/mainrt.rs | 2 - cli/module_loader.rs | 13 +- cli/npm/byonm.rs | 1 - cli/npm/managed/cache/registry_info.rs | 4 +- cli/npm/managed/cache/tarball.rs | 1 - cli/npm/managed/mod.rs | 2 +- cli/npm/managed/resolvers/common.rs | 2 +- cli/ops/bench.rs | 11 +- cli/ops/testing.rs | 11 +- cli/standalone/mod.rs | 50 ++-- cli/tools/bench/mod.rs | 8 +- cli/tools/compile.rs | 4 +- cli/tools/coverage/mod.rs | 7 +- cli/tools/fmt.rs | 9 +- cli/tools/info.rs | 8 +- cli/tools/installer.rs | 21 +- cli/tools/jupyter/mod.rs | 8 +- cli/tools/lint/mod.rs | 7 +- cli/tools/lint/rules/no_sloppy_imports.rs | 2 +- cli/tools/test/mod.rs | 29 +-- cli/worker.rs | 12 +- resolvers/deno/Cargo.toml | 1 + resolvers/deno/npm/byonm.rs | 6 +- resolvers/deno/npm/mod.rs | 24 +- resolvers/node/Cargo.toml | 1 + resolvers/node/errors.rs | 141 +++++++---- 39 files changed, 376 insertions(+), 518 deletions(-) delete mode 100644 cli/errors.rs diff --git a/Cargo.lock b/Cargo.lock index 5fe79a6faa5953..f36d3472e056a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -128,19 +128,6 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" -[[package]] -name = "ammonia" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab99eae5ee58501ab236beb6f20f6ca39be615267b014899c89b2f0bc18a459" -dependencies = [ - "html5ever", - "maplit", - "once_cell", - "tendril", - "url", -] - [[package]] name = "android_system_properties" version = "0.1.5" @@ -592,9 +579,9 @@ dependencies = [ [[package]] name = "boxed_error" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69aae56aaf59d1994b902ed5c0c79024012bdc2426741def75a635999a030e7e" +checksum = "17d4f95e880cfd28c4ca5a006cf7f6af52b4bcb7b5866f573b2faa126fb7affb" dependencies = [ "quote", "syn 2.0.87", @@ -799,13 +786,13 @@ version = "0.0.0" dependencies = [ "bytes", "chrono", - "deno_ast", + "deno_ast 0.44.0", "deno_bench_util", "deno_cache_dir", "deno_core", "deno_fetch", "deno_lockfile", - "deno_semver", + "deno_semver 0.5.16", "deno_terminal 0.2.0", "deno_tls", "deno_tower_lsp", @@ -1217,12 +1204,13 @@ dependencies = [ "console_static_text", "dashmap", "data-encoding", - "deno_ast", + "deno_ast 0.44.0", "deno_bench_util", "deno_cache_dir", "deno_config", "deno_core", "deno_doc", + "deno_error", "deno_graph", "deno_lint", "deno_lockfile", @@ -1231,7 +1219,7 @@ dependencies = [ "deno_path_util", "deno_resolver", "deno_runtime", - "deno_semver", + "deno_semver 0.5.16", "deno_sqlformat", "deno_task_shell", "deno_terminal 0.2.0", @@ -1254,7 +1242,7 @@ dependencies = [ "http-body 1.0.0", "http-body-util", "hyper-util", - "import_map", + "import_map 0.20.1", "indexmap 2.3.0", "jsonc-parser", "junction", @@ -1331,13 +1319,37 @@ version = "0.43.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48d00b724e06d2081a141ec1155756a0b465d413d8e2a7515221f61d482eb2ee" dependencies = [ - "base64 0.21.7", "deno_media_type", "deno_terminal 0.1.1", "dprint-swc-ext", "once_cell", "percent-encoding", "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_eq_ignore_macros", + "text_lines", + "thiserror 1.0.64", + "unicode-width", + "url", +] + +[[package]] +name = "deno_ast" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebc7aaabfdb3ddcad32aee1b62d250149dc8b35dfbdccbb125df2bdc62da952" +dependencies = [ + "base64 0.21.7", + "deno_error", + "deno_media_type", + "deno_terminal 0.2.0", + "dprint-swc-ext", + "once_cell", + "percent-encoding", + "serde", "sourcemap 9.0.0", "swc_atoms", "swc_bundler", @@ -1364,7 +1376,7 @@ dependencies = [ "swc_visit", "swc_visit_macros", "text_lines", - "thiserror 1.0.64", + "thiserror 2.0.3", "unicode-width", "url", ] @@ -1445,10 +1457,10 @@ dependencies = [ "anyhow", "deno_package_json", "deno_path_util", - "deno_semver", + "deno_semver 0.5.16", "glob", "ignore", - "import_map", + "import_map 0.20.1", "indexmap 2.3.0", "jsonc-parser", "log", @@ -1498,7 +1510,7 @@ dependencies = [ "tokio", "url", "v8", - "wasm_dep_analyzer 0.2.0", + "wasm_dep_analyzer", ] [[package]] @@ -1561,21 +1573,16 @@ dependencies = [ [[package]] name = "deno_doc" -version = "0.160.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2baa33e5d1ed235209c2990f5fe9644bac6b9e7bcb789dd92894f907b09ad7" +version = "0.161.0" dependencies = [ - "ammonia", - "anyhow", "cfg-if", "comrak", - "deno_ast", + "deno_ast 0.44.0", "deno_graph", "deno_path_util", - "futures", "handlebars", "html-escape", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "itoa", "js-sys", @@ -1586,6 +1593,7 @@ dependencies = [ "serde-wasm-bindgen", "serde_json", "termcolor", + "thiserror 2.0.3", "url", "wasm-bindgen", ] @@ -1693,19 +1701,17 @@ dependencies = [ [[package]] name = "deno_graph" -version = "0.85.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d097305aba3f119781fe82b4d5a85a1ad10c586a388ee4d754e5bf82901cc5c" +version = "0.85.1" dependencies = [ - "anyhow", "async-trait", "data-url", - "deno_ast", - "deno_semver", + "deno_ast 0.44.0", + "deno_error", + "deno_semver 0.6.0", "deno_unsync", "encoding_rs", "futures", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "log", "monch", @@ -1715,10 +1721,10 @@ dependencies = [ "serde", "serde_json", "sha2", - "thiserror 1.0.64", + "thiserror 2.0.3", "twox-hash", "url", - "wasm_dep_analyzer 0.1.0", + "wasm_dep_analyzer", ] [[package]] @@ -1819,11 +1825,9 @@ dependencies = [ [[package]] name = "deno_lint" version = "0.68.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb994e6d1b18223df0a756c7948143b35682941d615edffef60d5b38822f38ac" dependencies = [ "anyhow", - "deno_ast", + "deno_ast 0.44.0", "derive_more", "if_chain", "log", @@ -1840,7 +1844,7 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "579117d5815aa9bae0212637d6f4d5f45f9649bb2c8988dca434077545535039" dependencies = [ - "deno_semver", + "deno_semver 0.5.16", "serde", "serde_json", "thiserror 1.0.64", @@ -2006,7 +2010,7 @@ dependencies = [ "anyhow", "async-trait", "deno_lockfile", - "deno_semver", + "deno_semver 0.5.16", "futures", "log", "monch", @@ -2036,7 +2040,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6cbc4c4d3eb0960b58e8f43f9fc2d3f620fcac9a03cd85203e08db5b04e83c1f" dependencies = [ - "deno_semver", + "deno_semver 0.5.16", "indexmap 2.3.0", "serde", "serde_json", @@ -2082,10 +2086,11 @@ dependencies = [ "boxed_error", "dashmap", "deno_config", + "deno_error", "deno_media_type", "deno_package_json", "deno_path_util", - "deno_semver", + "deno_semver 0.5.16", "node_resolver", "test_server", "thiserror 1.0.64", @@ -2098,7 +2103,7 @@ version = "0.188.0" dependencies = [ "async-trait", "color-print", - "deno_ast", + "deno_ast 0.44.0", "deno_broadcast_channel", "deno_cache", "deno_canvas", @@ -2181,6 +2186,20 @@ dependencies = [ "url", ] +[[package]] +name = "deno_semver" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4756be7351289726087408984db18b9eb5e0186907673f39f858d119d0162071" +dependencies = [ + "deno_error", + "monch", + "once_cell", + "serde", + "thiserror 2.0.3", + "url", +] + [[package]] name = "deno_sqlformat" version = "0.3.2" @@ -2739,7 +2758,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ff29fd136541e59d51946f0d2d353fefc886776f61a799ebfb5838b06cef13b" dependencies = [ "anyhow", - "deno_ast", + "deno_ast 0.43.3", "dprint-core", "dprint-core-macros", "percent-encoding", @@ -3301,16 +3320,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - [[package]] name = "futures" version = "0.3.30" @@ -3838,20 +3847,6 @@ dependencies = [ "utf8-width", ] -[[package]] -name = "html5ever" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" -dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "http" version = "0.2.12" @@ -4228,6 +4223,23 @@ dependencies = [ "url", ] +[[package]] +name = "import_map" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1215d4d92511fbbdaea50e750e91f2429598ef817f02b579158e92803b52c00a" +dependencies = [ + "boxed_error", + "deno_error", + "indexmap 2.3.0", + "log", + "percent-encoding", + "serde", + "serde_json", + "thiserror 2.0.3", + "url", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -4699,12 +4711,6 @@ dependencies = [ "serde_repr", ] -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - [[package]] name = "malloc_buf" version = "0.0.6" @@ -4727,26 +4733,6 @@ dependencies = [ "tiny_pretty", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "markup5ever" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" -dependencies = [ - "log", - "phf", - "phf_codegen", - "string_cache", - "string_cache_codegen", - "tendril", -] - [[package]] name = "markup_fmt" version = "0.16.0" @@ -4987,6 +4973,7 @@ dependencies = [ "anyhow", "async-trait", "boxed_error", + "deno_error", "deno_media_type", "deno_package_json", "deno_path_util", @@ -5504,27 +5491,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ "phf_macros", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_codegen" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" -dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared 0.10.0", - "rand", + "phf_shared", ] [[package]] @@ -5533,7 +5500,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ - "phf_shared 0.11.2", + "phf_shared", "rand", ] @@ -5543,22 +5510,13 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", + "phf_generator", + "phf_shared", "proc-macro2", "quote", "syn 2.0.87", ] -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - [[package]] name = "phf_shared" version = "0.11.2" @@ -5681,12 +5639,6 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "pretty_assertions" version = "1.4.0" @@ -7008,32 +6960,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", -] - [[package]] name = "string_enum" version = "0.4.4" @@ -7621,17 +7547,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", -] - [[package]] name = "termcolor" version = "1.4.1" @@ -8509,15 +8424,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wasm_dep_analyzer" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f270206a91783fd90625c8bb0d8fbd459d0b1d1bf209b656f713f01ae7c04b8" -dependencies = [ - "thiserror 1.0.64", -] - [[package]] name = "wasm_dep_analyzer" version = "0.2.0" @@ -9185,6 +9091,10 @@ dependencies = [ "pkg-config", ] +[[patch.unused]] +name = "deno_package_json" +version = "0.2.0" + [[patch.unused]] name = "v8" version = "0.89.0" diff --git a/Cargo.toml b/Cargo.toml index d6665179366a8d..535062bc7f399f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,7 +45,7 @@ license = "MIT" repository = "https://github.com/denoland/deno" [workspace.dependencies] -deno_ast = { version = "=0.43.3", features = ["transpiling"] } +deno_ast = { version = "=0.44.0", features = ["transpiling"] } deno_core = { version = "0.322.0" } deno_bench_util = { version = "0.173.0", path = "./bench_util" } @@ -343,3 +343,7 @@ serde_v8 = { path = "../deno_core/serde_v8" } v8 = { path = "../rusty_v8" } deno_error = { path = "../deno_error" } deno_path_util = { path = "../deno_path_util" } +deno_graph = { path = "../deno_graph" } +deno_package_json = { path = "../deno_package_json" } +deno_doc = { path = "../deno_doc" } +deno_lint = { path = "../deno_lint" } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 6a1fc51bc45d8d..f06fdbfd6f7a29 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -72,8 +72,9 @@ deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposa deno_cache_dir.workspace = true deno_config.workspace = true deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } -deno_doc = { version = "0.160.0", features = ["rust", "comrak"] } -deno_graph = { version = "=0.85.0" } +deno_doc = { version = "0.161.0", features = ["rust", "comrak"] } +deno_error.workspace = true +deno_graph = { version = "=0.85.1" } deno_lint = { version = "=0.68.0", features = ["docs"] } deno_lockfile.workspace = true deno_npm.workspace = true diff --git a/cli/args/mod.rs b/cli/args/mod.rs index a1a9c49cbe4421..52ff8e009182e6 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -642,7 +642,8 @@ pub fn create_default_npmrc() -> Arc { }) } -#[derive(Error, Debug, Clone)] +#[derive(Error, Debug, Clone, deno_error::JsError)] +#[class(generic)] pub enum RootCertStoreLoadError { #[error( "Unknown certificate store \"{0}\" specified (allowed: \"system,mozilla\")" diff --git a/cli/errors.rs b/cli/errors.rs deleted file mode 100644 index 38dc8259e3c61c..00000000000000 --- a/cli/errors.rs +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -//! There are many types of errors in Deno: -//! - AnyError: a generic wrapper that can encapsulate any type of error. -//! - JsError: a container for the error message and stack trace for exceptions -//! thrown in JavaScript code. We use this to pretty-print stack traces. -//! - Diagnostic: these are errors that originate in TypeScript's compiler. -//! They're similar to JsError, in that they have line numbers. But -//! Diagnostics are compile-time type errors, whereas JsErrors are runtime -//! exceptions. - -use deno_ast::ParseDiagnostic; -use deno_core::error::AnyError; -use deno_graph::source::ResolveError; -use deno_graph::ModuleError; -use deno_graph::ModuleGraphError; -use deno_graph::ModuleLoadError; -use deno_graph::ResolutionError; -use import_map::ImportMapError; - -fn get_import_map_error_class(_: &ImportMapError) -> &'static str { - "URIError" -} - -fn get_diagnostic_class(_: &ParseDiagnostic) -> &'static str { - "SyntaxError" -} - -fn get_module_graph_error_class(err: &ModuleGraphError) -> &'static str { - use deno_graph::JsrLoadError; - use deno_graph::NpmLoadError; - - match err { - ModuleGraphError::ResolutionError(err) - | ModuleGraphError::TypesResolutionError(err) => { - get_resolution_error_class(err) - } - ModuleGraphError::ModuleError(err) => match err { - ModuleError::InvalidTypeAssertion { .. } => "SyntaxError", - ModuleError::ParseErr(_, diagnostic) => get_diagnostic_class(diagnostic), - ModuleError::WasmParseErr(..) => "SyntaxError", - ModuleError::UnsupportedMediaType { .. } - | ModuleError::UnsupportedImportAttributeType { .. } => "TypeError", - ModuleError::Missing(_, _) | ModuleError::MissingDynamic(_, _) => { - "NotFound" - } - ModuleError::LoadingErr(_, _, err) => match err { - ModuleLoadError::Loader(err) => get_error_class_name(err.as_ref()), - ModuleLoadError::HttpsChecksumIntegrity(_) - | ModuleLoadError::TooManyRedirects => "Error", - ModuleLoadError::NodeUnknownBuiltinModule(_) => "NotFound", - ModuleLoadError::Decode(_) => "TypeError", - ModuleLoadError::Npm(err) => match err { - NpmLoadError::NotSupportedEnvironment - | NpmLoadError::PackageReqResolution(_) - | NpmLoadError::RegistryInfo(_) => "Error", - NpmLoadError::PackageReqReferenceParse(_) => "TypeError", - }, - ModuleLoadError::Jsr(err) => match err { - JsrLoadError::UnsupportedManifestChecksum - | JsrLoadError::PackageFormat(_) => "TypeError", - JsrLoadError::ContentLoadExternalSpecifier - | JsrLoadError::ContentLoad(_) - | JsrLoadError::ContentChecksumIntegrity(_) - | JsrLoadError::PackageManifestLoad(_, _) - | JsrLoadError::PackageVersionManifestChecksumIntegrity(..) - | JsrLoadError::PackageVersionManifestLoad(_, _) - | JsrLoadError::RedirectInPackage(_) => "Error", - JsrLoadError::PackageNotFound(_) - | JsrLoadError::PackageReqNotFound(_) - | JsrLoadError::PackageVersionNotFound(_) - | JsrLoadError::UnknownExport { .. } => "NotFound", - }, - }, - }, - } -} - -fn get_resolution_error_class(err: &ResolutionError) -> &'static str { - match err { - ResolutionError::ResolverError { error, .. } => { - use ResolveError::*; - match error.as_ref() { - Specifier(_) => "TypeError", - Other(e) => get_error_class_name(e), - } - } - _ => "TypeError", - } -} - -fn get_try_from_int_error_class(_: &std::num::TryFromIntError) -> &'static str { - "TypeError" -} - -pub fn get_error_class_name(e: &AnyError) -> &'static str { - deno_runtime::errors::get_error_class_name(e) - .or_else(|| { - e.downcast_ref::() - .map(get_import_map_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_diagnostic_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_module_graph_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_resolution_error_class) - }) - .or_else(|| { - e.downcast_ref::() - .map(get_try_from_int_error_class) - }) - .unwrap_or("Error") -} diff --git a/cli/factory.rs b/cli/factory.rs index 98149982f04edf..89bc2082945724 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -68,7 +68,7 @@ use std::path::PathBuf; use deno_cache_dir::npm::NpmCacheDir; use deno_config::workspace::PackageJsonDepResolution; use deno_config::workspace::WorkspaceResolver; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, JsNativeError}; use deno_core::futures::FutureExt; use deno_core::FeatureChecker; @@ -116,7 +116,7 @@ impl CliRootCertStoreProvider { } impl RootCertStoreProvider for CliRootCertStoreProvider { - fn get_or_try_init(&self) -> Result<&RootCertStore, AnyError> { + fn get_or_try_init(&self) -> Result<&RootCertStore, JsNativeError> { self .cell .get_or_try_init(|| { @@ -126,7 +126,7 @@ impl RootCertStoreProvider for CliRootCertStoreProvider { self.maybe_ca_data.clone(), ) }) - .map_err(|e| e.into()) + .map_err(JsNativeError::from_err) } } diff --git a/cli/file_fetcher.rs b/cli/file_fetcher.rs index 640f83c35cbb98..1b261671ae792b 100644 --- a/cli/file_fetcher.rs +++ b/cli/file_fetcher.rs @@ -12,9 +12,7 @@ use crate::util::progress_bar::ProgressBar; use deno_ast::MediaType; use deno_core::anyhow::Context; -use deno_core::error::custom_error; -use deno_core::error::generic_error; -use deno_core::error::uri_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::parking_lot::Mutex; use deno_core::url::Url; @@ -135,11 +133,19 @@ impl MemoryFiles { } } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +enum FetchLocalError { + #[class(uri)] + #[error("Invalid file path.\n Specifier: {0}")] + InvalidFilePath(ModuleSpecifier), + #[class(inherit)] + #[error(transparent)] + Io(std::io::Error), +} + /// Fetch a source file from the local file system. -fn fetch_local(specifier: &ModuleSpecifier) -> Result { - let local = url_to_file_path(specifier).map_err(|_| { - uri_error(format!("Invalid file path.\n Specifier: {specifier}")) - })?; +fn fetch_local(specifier: &ModuleSpecifier) -> Result { + let local = url_to_file_path(specifier).map_err(|_| FetchLocalError::InvalidFilePath(specifier.clone()))?; // If it doesnt have a extension, we want to treat it as typescript by default let headers = if local.extension().is_none() { Some(HashMap::from([( @@ -149,7 +155,7 @@ fn fetch_local(specifier: &ModuleSpecifier) -> Result { } else { None }; - let bytes = fs::read(local)?; + let bytes = fs::read(local).map_err(FetchLocalError::Io)?; Ok(File { specifier: specifier.clone(), @@ -175,7 +181,7 @@ fn get_validated_scheme( .collect::>() .join("\n"); Err(generic_error(format!( - "Unsupported scheme \"{scheme}\" for module \"{specifier}\". Supported schemes:\n{}", + "Unsupported scheme \"{scheme}\" for module \"{specifier}\". Supported schemes:\n{}", scheme_list ))) } else { diff --git a/cli/graph_util.rs b/cli/graph_util.rs index 6ed0506dd70b30..64968cb19f6a4e 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -10,7 +10,6 @@ use crate::cache::GlobalHttpCache; use crate::cache::ModuleInfoCache; use crate::cache::ParsedSourceCache; use crate::colors; -use crate::errors::get_error_class_name; use crate::file_fetcher::FileFetcher; use crate::npm::CliNpmResolver; use crate::resolver::CjsTracker; @@ -31,7 +30,7 @@ use deno_graph::JsrLoadError; use deno_graph::ModuleLoadError; use deno_graph::WorkspaceFastCheckOption; -use deno_core::error::custom_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::parking_lot::Mutex; use deno_core::ModuleSpecifier; @@ -57,6 +56,7 @@ use std::error::Error; use std::ops::Deref; use std::path::PathBuf; use std::sync::Arc; +use deno_error::JsErrorClass; #[derive(Clone)] pub struct GraphValidOptions { @@ -80,7 +80,7 @@ pub fn graph_valid( fs: &Arc, roots: &[ModuleSpecifier], options: GraphValidOptions, -) -> Result<(), AnyError> { +) -> Result<(), JsNativeError> { if options.exit_integrity_errors { graph_exit_integrity_errors(graph); } @@ -99,9 +99,9 @@ pub fn graph_valid( } else { // finally surface the npm resolution result if let Err(err) = &graph.npm_dep_graph_result { - return Err(custom_error( - get_error_class_name(err), - format_deno_graph_error(err.as_ref().deref()), + return Err(JsNativeError::new( + err.get_class(), + format_deno_graph_error(err), )); } Ok(()) @@ -121,7 +121,7 @@ pub fn graph_walk_errors<'a>( fs: &'a Arc, roots: &'a [ModuleSpecifier], options: GraphWalkErrorsOptions, -) -> impl Iterator + 'a { +) -> impl Iterator + 'a { graph .walk( roots.iter(), @@ -175,7 +175,7 @@ pub fn graph_walk_errors<'a>( return None; } - Some(custom_error(get_error_class_name(&error.into()), message)) + Some(JsNativeError::new(error.get_class(), message)) }) } @@ -350,7 +350,7 @@ impl ModuleGraphCreator { } } - pub fn graph_valid(&self, graph: &ModuleGraph) -> Result<(), AnyError> { + pub fn graph_valid(&self, graph: &ModuleGraph) -> Result<(), JsNativeError> { self.module_graph_builder.graph_valid(graph) } @@ -718,7 +718,7 @@ impl ModuleGraphBuilder { /// Check if `roots` and their deps are available. Returns `Ok(())` if /// so. Returns `Err(_)` if there is a known module graph or resolution /// error statically reachable from `roots` and not a dynamic import. - pub fn graph_valid(&self, graph: &ModuleGraph) -> Result<(), AnyError> { + pub fn graph_valid(&self, graph: &ModuleGraph) -> Result<(), JsNativeError> { self.graph_roots_valid( graph, &graph.roots.iter().cloned().collect::>(), @@ -729,7 +729,7 @@ impl ModuleGraphBuilder { &self, graph: &ModuleGraph, roots: &[ModuleSpecifier], - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { graph_valid( graph, &self.fs, @@ -944,6 +944,7 @@ fn get_import_prefix_missing_error(error: &ResolutionError) -> Option<&str> { maybe_specifier = Some(specifier); } } + ResolveError::ImportMap(_) => {} } } } @@ -1044,7 +1045,6 @@ impl<'a> deno_graph::source::FileSystem for DenoGraphFsAdapter<'a> { &self, dir_url: &deno_graph::ModuleSpecifier, ) -> Vec { - use deno_core::anyhow; use deno_graph::source::DirEntry; use deno_graph::source::DirEntryKind; @@ -1065,10 +1065,7 @@ impl<'a> deno_graph::source::FileSystem for DenoGraphFsAdapter<'a> { } Err(err) => { return vec![DirEntry { - kind: DirEntryKind::Error( - anyhow::Error::from(err) - .context("Failed to read directory.".to_string()), - ), + kind: DirEntryKind::Error(deno_graph::source::DirEntryError::Dir(err.into_io_error())), url: dir_url.clone(), }]; } diff --git a/cli/http_util.rs b/cli/http_util.rs index 4b17936d688d9f..c72bdb414a7765 100644 --- a/cli/http_util.rs +++ b/cli/http_util.rs @@ -7,8 +7,7 @@ use crate::version; use cache_control::Cachability; use cache_control::CacheControl; use chrono::DateTime; -use deno_core::error::custom_error; -use deno_core::error::generic_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::futures::StreamExt; use deno_core::parking_lot::Mutex; @@ -276,7 +275,7 @@ pub struct BadResponseError { #[derive(Debug, Error)] pub enum DownloadError { #[error(transparent)] - Fetch(AnyError), + Fetch(deno_fetch::ClientSendError), #[error(transparent)] UrlParse(#[from] deno_core::url::ParseError), #[error(transparent)] @@ -291,6 +290,9 @@ pub enum DownloadError { TooManyRedirects, #[error(transparent)] BadResponse(#[from] BadResponseError), + #[class("Http")] + #[error("Not Found.")] + NotFound, } #[derive(Debug)] @@ -466,11 +468,11 @@ impl HttpClient { Ok(String::from_utf8(bytes)?) } - pub async fn download(&self, url: Url) -> Result, AnyError> { + pub async fn download(&self, url: Url) -> Result, DownloadError> { let maybe_bytes = self.download_inner(url, None, None).await?; match maybe_bytes { Some(bytes) => Ok(bytes), - None => Err(custom_error("Http", "Not found.")), + None => Err(DownloadError::NotFound), } } @@ -543,7 +545,7 @@ impl HttpClient { .clone() .send(req) .await - .map_err(|e| DownloadError::Fetch(e.into()))?; + .map_err(DownloadError::Fetch)?; let status = response.status(); if status.is_redirection() { for _ in 0..5 { @@ -563,7 +565,7 @@ impl HttpClient { .clone() .send(req) .await - .map_err(|e| DownloadError::Fetch(e.into()))?; + .map_err(DownloadError::Fetch)?; let status = new_response.status(); if status.is_redirection() { response = new_response; @@ -582,7 +584,7 @@ impl HttpClient { async fn get_response_body_with_progress( response: http::Response, progress_guard: Option<&UpdateGuard>, -) -> Result, AnyError> { +) -> Result, JsNativeError> { use http_body::Body as _; if let Some(progress_guard) = progress_guard { let mut total_size = response.body().size_hint().exact(); diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index 044b1573b9bb9d..52b71588e95d82 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -21,7 +21,7 @@ use deno_lint::diagnostic::LintDiagnosticRange; use deno_ast::SourceRange; use deno_ast::SourceRangedForSpanned; use deno_ast::SourceTextInfo; -use deno_core::error::custom_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; @@ -1036,10 +1036,10 @@ impl CodeActionCollection { // we wrap tsc, we can't handle the asynchronous response, so it is // actually easier to return errors if we ever encounter one of these, // which we really wouldn't expect from the Deno lsp. - return Err(custom_error( + return Err(JsNativeError::new( "UnsupportedFix", "The action returned from TypeScript is unsupported.", - )); + ).into()); } let Some(action) = fix_ts_import_action(specifier, specifier_kind, action, language_server) diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index cdc25f3ac32656..2b65e4fe8cbd52 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -20,7 +20,7 @@ use deno_ast::swc::visit::VisitWith; use deno_ast::MediaType; use deno_ast::ParsedSource; use deno_ast::SourceTextInfo; -use deno_core::error::custom_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::futures::future; use deno_core::futures::future::Shared; @@ -1053,7 +1053,7 @@ impl Documents { .or_else(|| self.file_system_docs.remove_document(specifier)) .map(Ok) .unwrap_or_else(|| { - Err(custom_error( + Err(JsNativeError::new( "NotFound", format!("The specifier \"{specifier}\" was not found."), )) diff --git a/cli/lsp/text.rs b/cli/lsp/text.rs index 88f27915bb0f56..535b0988257d1c 100644 --- a/cli/lsp/text.rs +++ b/cli/lsp/text.rs @@ -1,6 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::custom_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use dissimilar::diff; use dissimilar::Chunk; @@ -136,7 +136,7 @@ impl LineIndex { if let Some(line_offset) = self.utf8_offsets.get(position.line as usize) { Ok(line_offset + col) } else { - Err(custom_error("OutOfRange", "The position is out of range.")) + Err(JsNativeError::new("OutOfRange", "The position is out of range.").into()) } } @@ -156,7 +156,7 @@ impl LineIndex { if let Some(line_offset) = self.utf16_offsets.get(position.line as usize) { Ok(line_offset + TextSize::from(position.character)) } else { - Err(custom_error("OutOfRange", "The position is out of range.")) + Err(JsNativeError::new("OutOfRange", "The position is out of range.").into()) } } diff --git a/cli/main.rs b/cli/main.rs index c49c8a83a6d54e..850d5f011f6692 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -5,7 +5,6 @@ mod auth_tokens; mod cache; mod cdp; mod emit; -mod errors; mod factory; mod file_fetcher; mod graph_container; diff --git a/cli/mainrt.rs b/cli/mainrt.rs index 2951aa711a46d0..8df351fc767001 100644 --- a/cli/mainrt.rs +++ b/cli/mainrt.rs @@ -11,7 +11,6 @@ mod args; mod auth_tokens; mod cache; mod emit; -mod errors; mod file_fetcher; mod http_util; mod js; @@ -24,7 +23,6 @@ mod util; mod version; mod worker; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::error::JsError; use deno_runtime::fmt_errors::format_js_error; diff --git a/cli/module_loader.rs b/cli/module_loader.rs index af983466776e64..a1bee89a1f2a35 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -44,8 +44,7 @@ use deno_ast::ModuleKind; use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; -use deno_core::error::custom_error; -use deno_core::error::generic_error; +use deno_core::error::{JsNativeError, ModuleLoaderError}; use deno_core::error::AnyError; use deno_core::futures::future::FutureExt; use deno_core::futures::Future; @@ -367,7 +366,7 @@ impl specifier: &ModuleSpecifier, maybe_referrer: Option<&ModuleSpecifier>, requested_module_type: RequestedModuleType, - ) -> Result { + ) -> Result { let code_source = self.load_code_source(specifier, maybe_referrer).await?; let code = if self.shared.is_inspecting || code_source.media_type == MediaType::Wasm @@ -390,7 +389,7 @@ impl if module_type == ModuleType::Json && requested_module_type != RequestedModuleType::Json { - return Err(generic_error("Attempted to load JSON module without specifying \"type\": \"json\" attribute in the import statement.")); + return Err(JsNativeError::generic("Attempted to load JSON module without specifying \"type\": \"json\" attribute in the import statement.").into()); } let code_cache = if module_type == ModuleType::JavaScript { @@ -807,16 +806,16 @@ impl ModuleLoader specifier: &str, referrer: &str, _kind: ResolutionKind, - ) -> Result { + ) -> Result { fn ensure_not_jsr_non_jsr_remote_import( specifier: &ModuleSpecifier, referrer: &ModuleSpecifier, - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { if referrer.as_str().starts_with(jsr_url().as_str()) && !specifier.as_str().starts_with(jsr_url().as_str()) && matches!(specifier.scheme(), "http" | "https") { - bail!("Importing {} blocked. JSR packages cannot import non-JSR remote modules for security reasons.", specifier); + return Err(JsNativeError::generic(format!("Importing {} blocked. JSR packages cannot import non-JSR remote modules for security reasons.", specifier))); } Ok(()) } diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index ba152c387b6e1f..e3983a98e6ca29 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -4,7 +4,6 @@ use std::borrow::Cow; use std::path::Path; use std::sync::Arc; -use deno_core::error::AnyError; use deno_core::serde_json; use deno_resolver::npm::ByonmNpmResolver; use deno_resolver::npm::ByonmNpmResolverCreateOptions; diff --git a/cli/npm/managed/cache/registry_info.rs b/cli/npm/managed/cache/registry_info.rs index 6d39d3c13f88c0..42da4bebdb9eb0 100644 --- a/cli/npm/managed/cache/registry_info.rs +++ b/cli/npm/managed/cache/registry_info.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; -use deno_core::error::custom_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; @@ -95,7 +95,7 @@ impl RegistryInfoDownloader { name: &str, ) -> Result>, AnyError> { if *self.cache.cache_setting() == CacheSetting::Only { - return Err(custom_error( + return Err(JsNativeError::new( "NotCached", format!( "An npm specifier not found in cache: \"{name}\", --cached-only is specified." diff --git a/cli/npm/managed/cache/tarball.rs b/cli/npm/managed/cache/tarball.rs index 7cf88d6d64d54e..f11ee66d8fe3f0 100644 --- a/cli/npm/managed/cache/tarball.rs +++ b/cli/npm/managed/cache/tarball.rs @@ -6,7 +6,6 @@ use std::sync::Arc; use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; -use deno_core::error::custom_error; use deno_core::error::AnyError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 88094d51414f74..193f104e3d139e 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -713,7 +713,7 @@ impl CliNpmResolver for ManagedCliNpmResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { self.fs_resolver.ensure_read_permission(permissions, path) } diff --git a/cli/npm/managed/resolvers/common.rs b/cli/npm/managed/resolvers/common.rs index eee11c7604952f..800035ede1fdb2 100644 --- a/cli/npm/managed/resolvers/common.rs +++ b/cli/npm/managed/resolvers/common.rs @@ -64,7 +64,7 @@ pub trait NpmPackageFsResolver: Send + Sync { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError>; + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError>; } #[derive(Debug)] diff --git a/cli/ops/bench.rs b/cli/ops/bench.rs index a7c788a1899884..3c61e9a771f6c2 100644 --- a/cli/ops/bench.rs +++ b/cli/ops/bench.rs @@ -3,8 +3,7 @@ use std::sync::atomic::AtomicUsize; use std::sync::atomic::Ordering; -use deno_core::error::generic_error; -use deno_core::error::type_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::op2; use deno_core::v8; @@ -78,7 +77,7 @@ pub fn op_pledge_test_permissions( pub fn op_restore_test_permissions( state: &mut OpState, #[serde] token: Uuid, -) -> Result<(), AnyError> { +) -> Result<(), JsNativeError> { if let Some(permissions_holder) = state.try_take::() { if token != permissions_holder.0 { panic!("restore test permissions token does not match the stored token"); @@ -88,7 +87,7 @@ pub fn op_restore_test_permissions( state.put::(permissions); Ok(()) } else { - Err(generic_error("no permissions to restore")) + Err(JsNativeError::generic("no permissions to restore")) } } @@ -106,9 +105,9 @@ fn op_register_bench( only: bool, warmup: bool, #[buffer] ret_buf: &mut [u8], -) -> Result<(), AnyError> { +) -> Result<(), JsNativeError> { if ret_buf.len() != 4 { - return Err(type_error(format!( + return Err(JsNativeError::type_error(format!( "Invalid ret_buf length: {}", ret_buf.len() ))); diff --git a/cli/ops/testing.rs b/cli/ops/testing.rs index 3c6936971a5ae3..1b27d3b828e20b 100644 --- a/cli/ops/testing.rs +++ b/cli/ops/testing.rs @@ -9,8 +9,7 @@ use crate::tools::test::TestLocation; use crate::tools::test::TestStepDescription; use crate::tools::test::TestStepResult; -use deno_core::error::generic_error; -use deno_core::error::type_error; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::op2; use deno_core::v8; @@ -72,7 +71,7 @@ pub fn op_pledge_test_permissions( pub fn op_restore_test_permissions( state: &mut OpState, #[serde] token: Uuid, -) -> Result<(), AnyError> { +) -> Result<(), JsNativeError> { if let Some(permissions_holder) = state.try_take::() { if token != permissions_holder.0 { panic!("restore test permissions token does not match the stored token"); @@ -82,7 +81,7 @@ pub fn op_restore_test_permissions( state.put::(permissions); Ok(()) } else { - Err(generic_error("no permissions to restore")) + Err(JsNativeError::generic("no permissions to restore")) } } @@ -102,9 +101,9 @@ fn op_register_test( #[smi] line_number: u32, #[smi] column_number: u32, #[buffer] ret_buf: &mut [u8], -) -> Result<(), AnyError> { +) -> Result<(), JsNativeError> { if ret_buf.len() != 4 { - return Err(type_error(format!( + return Err(JsNativeError::type_error(format!( "Invalid ret_buf length: {}", ret_buf.len() ))); diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index e32a7c839c3e30..c3e16cf74f8a87 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -15,8 +15,8 @@ use deno_config::workspace::MappedResolutionError; use deno_config::workspace::ResolverWorkspaceJsrPackage; use deno_config::workspace::WorkspaceResolver; use deno_core::anyhow::Context; -use deno_core::error::generic_error; -use deno_core::error::type_error; +use deno_core::error::ModuleLoaderError; +use deno_core::error::JsNativeError; use deno_core::error::AnyError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; @@ -170,25 +170,25 @@ impl ModuleLoader for EmbeddedModuleLoader { raw_specifier: &str, referrer: &str, kind: ResolutionKind, - ) -> Result { + ) -> Result { let referrer = if referrer == "." { if kind != ResolutionKind::MainModule { - return Err(generic_error(format!( + return Err(JsNativeError::generic(format!( "Expected to resolve main module, got {:?} instead.", kind - ))); + )).into()); } let current_dir = std::env::current_dir().unwrap(); deno_core::resolve_path(".", ¤t_dir)? } else { ModuleSpecifier::parse(referrer).map_err(|err| { - type_error(format!("Referrer uses invalid specifier: {}", err)) + JsNativeError::type_error(format!("Referrer uses invalid specifier: {}", err)) })? }; let referrer_kind = if self .shared .cjs_tracker - .is_maybe_cjs(&referrer, MediaType::from_specifier(&referrer))? + .is_maybe_cjs(&referrer, MediaType::from_specifier(&referrer)).map_err(JsNativeError::from_err)? { NodeModuleKind::Cjs } else { @@ -205,7 +205,7 @@ impl ModuleLoader for EmbeddedModuleLoader { &referrer, referrer_kind, NodeResolutionMode::Execution, - )? + ).map_err(JsNativeError::from_err)? .into_url(), ); } @@ -233,14 +233,14 @@ impl ModuleLoader for EmbeddedModuleLoader { Some(&referrer), referrer_kind, NodeResolutionMode::Execution, - )?, + ).map_err(JsNativeError::from_err)?, ), Ok(MappedResolution::PackageJson { dep_result, sub_path, alias, .. - }) => match dep_result.as_ref().map_err(|e| AnyError::from(e.clone()))? { + }) => match dep_result.as_ref().map_err(|e| JsNativeError::from_err(e.clone()))? { PackageJsonDepValue::Req(req) => self .shared .npm_req_resolver @@ -251,7 +251,7 @@ impl ModuleLoader for EmbeddedModuleLoader { referrer_kind, NodeResolutionMode::Execution, ) - .map_err(AnyError::from), + .map_err(|e| JsNativeError::from_err(e).into()), PackageJsonDepValue::Workspace(version_req) => { let pkg_folder = self .shared @@ -259,7 +259,7 @@ impl ModuleLoader for EmbeddedModuleLoader { .resolve_workspace_pkg_json_folder_for_pkg_json_dep( alias, version_req, - )?; + ).map_err(JsNativeError::from_err)?; Ok( self .shared @@ -270,7 +270,7 @@ impl ModuleLoader for EmbeddedModuleLoader { Some(&referrer), referrer_kind, NodeResolutionMode::Execution, - )?, + ).map_err(JsNativeError::from_err)?, ) } }, @@ -348,9 +348,9 @@ impl ModuleLoader for EmbeddedModuleLoader { { Ok(response) => response, Err(err) => { - return deno_core::ModuleLoadResponse::Sync(Err(type_error( + return deno_core::ModuleLoadResponse::Sync(Err(JsNativeError::type_error( format!("{:#}", err), - ))); + ).into())); } }; return deno_core::ModuleLoadResponse::Sync(Ok( @@ -404,9 +404,9 @@ impl ModuleLoader for EmbeddedModuleLoader { { Ok(is_maybe_cjs) => is_maybe_cjs, Err(err) => { - return deno_core::ModuleLoadResponse::Sync(Err(type_error( + return deno_core::ModuleLoadResponse::Sync(Err(JsNativeError::type_error( format!("{:?}", err), - ))); + ).into())); } }; if is_maybe_cjs { @@ -466,12 +466,12 @@ impl ModuleLoader for EmbeddedModuleLoader { )) } } - Ok(None) => deno_core::ModuleLoadResponse::Sync(Err(type_error( + Ok(None) => deno_core::ModuleLoadResponse::Sync(Err(JsNativeError::type_error( format!("{MODULE_NOT_FOUND}: {}", original_specifier), - ))), - Err(err) => deno_core::ModuleLoadResponse::Sync(Err(type_error( + ).into())), + Err(err) => deno_core::ModuleLoadResponse::Sync(Err(JsNativeError::type_error( format!("{:?}", err), - ))), + ).into())), } } @@ -513,8 +513,8 @@ impl NodeRequireLoader for EmbeddedModuleLoader { fn load_text_file_lossy( &self, path: &std::path::Path, - ) -> Result { - Ok(self.shared.fs.read_text_file_lossy_sync(path, None)?) + ) -> Result { + Ok(self.shared.fs.read_text_file_lossy_sync(path, None).map_err(JsNativeError::from_err)?) } fn is_maybe_cjs( @@ -566,10 +566,10 @@ struct StandaloneRootCertStoreProvider { } impl RootCertStoreProvider for StandaloneRootCertStoreProvider { - fn get_or_try_init(&self) -> Result<&RootCertStore, AnyError> { + fn get_or_try_init(&self) -> Result<&RootCertStore, JsNativeError> { self.cell.get_or_try_init(|| { get_root_cert_store(None, self.ca_stores.clone(), self.ca_data.clone()) - .map_err(|err| err.into()) + .map_err(JsNativeError::from_err) }) } } diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs index c00727e66be43c..90b3149b75c331 100644 --- a/cli/tools/bench/mod.rs +++ b/cli/tools/bench/mod.rs @@ -18,7 +18,6 @@ use crate::worker::CliMainWorkerFactory; use deno_config::glob::WalkEntry; use deno_core::error::AnyError; use deno_core::error::JsError; -use deno_core::error::JsNativeError::generic; use deno_core::futures::future; use deno_core::futures::stream; use deno_core::futures::StreamExt; @@ -42,6 +41,7 @@ use std::collections::HashSet; use std::path::Path; use std::sync::Arc; use std::time::Duration; +use deno_core::anyhow::anyhow; use tokio::sync::mpsc::unbounded_channel; use tokio::sync::mpsc::UnboundedSender; @@ -354,13 +354,13 @@ async fn bench_specifiers( reporter.report_end(&report); if used_only { - return Err(generic_error( + return Err(anyhow!( "Bench failed because the \"only\" option was used", )); } if report.failed > 0 { - return Err(generic_error("Bench failed")); + return Err(anyhow!("Bench failed")); } Ok(()) @@ -438,7 +438,7 @@ pub async fn run_benchmarks( .collect::>(); if specifiers.is_empty() { - return Err(generic_error("No bench modules found")); + return Err(anyhow!("No bench modules found")); } let main_graph_container = factory.main_module_graph_container().await?; diff --git a/cli/tools/compile.rs b/cli/tools/compile.rs index 4fa996368308ef..451718de3cd4a1 100644 --- a/cli/tools/compile.rs +++ b/cli/tools/compile.rs @@ -9,9 +9,9 @@ use crate::standalone::binary::StandaloneRelativeFileBaseUrl; use crate::standalone::is_standalone_binary; use deno_ast::MediaType; use deno_ast::ModuleSpecifier; +use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_graph::GraphKind; @@ -289,7 +289,7 @@ async fn resolve_compile_executable_output_path( .map(PathBuf::from) } - output_path.ok_or_else(|| generic_error( + output_path.ok_or_else(|| anyhow!( "An executable name was not provided. One could not be inferred from the URL. Aborting.", )).map(|output_path| { get_os_specific_filepath(output_path, &compile_flags.target) diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index 2a554c13359ad2..1e0056d4fd07ea 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -19,7 +19,6 @@ use deno_config::glob::PathOrPattern; use deno_config::glob::PathOrPatternSet; use deno_core::anyhow::anyhow; use deno_core::anyhow::Context; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::serde_json; use deno_core::sourcemap::SourceMap; @@ -502,7 +501,7 @@ pub fn cover_files( coverage_flags: CoverageFlags, ) -> Result<(), AnyError> { if coverage_flags.files.include.is_empty() { - return Err(generic_error("No matching coverage profiles found")); + return Err(anyhow!("No matching coverage profiles found")); } let factory = CliFactory::from_flags(flags); @@ -524,7 +523,7 @@ pub fn cover_files( cli_options.initial_cwd(), )?; if script_coverages.is_empty() { - return Err(generic_error("No coverage files found")); + return Err(anyhow!("No coverage files found")); } let script_coverages = filter_coverages( script_coverages, @@ -533,7 +532,7 @@ pub fn cover_files( in_npm_pkg_checker.as_ref(), ); if script_coverages.is_empty() { - return Err(generic_error("No covered files included in the report")); + return Err(anyhow!("No covered files included in the report")); } let proc_coverages: Vec<_> = script_coverages diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index c2c2a6bb6bf3ca..5a51ae9ebbd717 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -28,7 +28,6 @@ use deno_config::glob::FilePatterns; use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::futures; use deno_core::parking_lot::Mutex; @@ -174,7 +173,7 @@ fn resolve_paths_with_options_batches( } } if paths_with_options_batches.is_empty() { - return Err(generic_error("No target files found.")); + return Err(anyhow!("No target files found.")); } Ok(paths_with_options_batches) } @@ -479,7 +478,7 @@ pub fn format_html( } if let Some(error_msg) = inner(&error, file_path) { - AnyError::from(generic_error(error_msg)) + AnyError::msg(error_msg) } else { AnyError::from(error) } @@ -727,9 +726,9 @@ impl Formatter for CheckFormatter { Ok(()) } else { let not_formatted_files_str = files_str(not_formatted_files_count); - Err(generic_error(format!( + Err(anyhow!( "Found {not_formatted_files_count} not formatted {not_formatted_files_str} in {checked_files_str}", - ))) + )) } } } diff --git a/cli/tools/info.rs b/cli/tools/info.rs index c3c37f02685715..16a8fcb4c77145 100644 --- a/cli/tools/info.rs +++ b/cli/tools/info.rs @@ -12,6 +12,7 @@ use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_core::serde_json; use deno_core::url; +use deno_error::JsErrorClass; use deno_graph::Dependency; use deno_graph::GraphKind; use deno_graph::Module; @@ -665,9 +666,10 @@ impl<'a> GraphDisplayContext<'a> { HttpsChecksumIntegrity(_) => "(checksum integrity error)", Decode(_) => "(loading decode error)", Loader(err) => { - match deno_runtime::errors::get_error_class_name(err) { - Some("NotCapable") => "(not capable, requires --allow-import)", - _ => "(loading error)", + if err.get_class() == "NotCapable" { + "(not capable, requires --allow-import)" + } else { + "(loading error)" } } Jsr(_) => "(loading error)", diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs index df5981e6e7b85e..f2ad0efdca2dc8 100644 --- a/cli/tools/installer.rs +++ b/cli/tools/installer.rs @@ -21,9 +21,9 @@ use crate::jsr::JsrFetchResolver; use crate::npm::NpmFetchResolver; use crate::util::fs::canonicalize_path_maybe_not_exists; +use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_core::url::Url; @@ -55,9 +55,9 @@ fn validate_name(exec_name: &str) -> Result<(), AnyError> { if EXEC_NAME_RE.is_match(exec_name) { Ok(()) } else { - Err(generic_error(format!( + Err(anyhow!( "Invalid executable name: {exec_name}" - ))) + )) } } @@ -224,7 +224,7 @@ pub async fn uninstall( // ensure directory exists if let Ok(metadata) = fs::metadata(&installation_dir) { if !metadata.is_dir() { - return Err(generic_error("Installation path is not a directory")); + return Err(anyhow!("Installation path is not a directory")); } } @@ -248,10 +248,7 @@ pub async fn uninstall( } if !removed { - return Err(generic_error(format!( - "No installation found for {}", - uninstall_flags.name - ))); + return Err(anyhow!("No installation found for {}", uninstall_flags.name)); } // There might be some extra files to delete @@ -423,14 +420,14 @@ async fn create_install_shim( // ensure directory exists if let Ok(metadata) = fs::metadata(&shim_data.installation_dir) { if !metadata.is_dir() { - return Err(generic_error("Installation path is not a directory")); + return Err(anyhow!("Installation path is not a directory")); } } else { fs::create_dir_all(&shim_data.installation_dir)?; }; if shim_data.file_path.exists() && !install_flags_global.force { - return Err(generic_error( + return Err(anyhow!( "Existing installation found. Aborting (Use -f to overwrite).", )); }; @@ -492,7 +489,7 @@ async fn resolve_shim_data( let name = match name { Some(name) => name, - None => return Err(generic_error( + None => return Err(anyhow!( "An executable name was not provided. One could not be inferred from the URL. Aborting.", )), }; @@ -525,7 +522,7 @@ async fn resolve_shim_data( Level::Debug => "debug", Level::Info => "info", _ => { - return Err(generic_error(format!("invalid log level {log_level}"))) + return Err(anyhow!(format!("invalid log level {log_level}"))) } }; executable_args.push(log_level.to_string()); diff --git a/cli/tools/jupyter/mod.rs b/cli/tools/jupyter/mod.rs index 732f95c49f25f7..7545c62f7889b9 100644 --- a/cli/tools/jupyter/mod.rs +++ b/cli/tools/jupyter/mod.rs @@ -13,9 +13,9 @@ use crate::tools::test::reporters::PrettyTestReporter; use crate::tools::test::TestEventWorkerSender; use crate::tools::test::TestFailureFormatOptions; use crate::CliFactory; -use deno_core::anyhow::bail; +use deno_core::anyhow::{anyhow}; +use deno_core::anyhow::{bail}; use deno_core::anyhow::Context; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::futures::FutureExt; use deno_core::located_script_name; @@ -136,10 +136,10 @@ pub async fn kernel( } let cwd_url = Url::from_directory_path(cli_options.initial_cwd()).map_err(|_| { - generic_error(format!( + anyhow!( "Unable to construct URL from the path of cwd: {}", cli_options.initial_cwd().to_string_lossy(), - )) + ) })?; repl_session.set_test_reporter_factory(Box::new(move || { Box::new( diff --git a/cli/tools/lint/mod.rs b/cli/tools/lint/mod.rs index fcefb458746f03..faced6f091cc26 100644 --- a/cli/tools/lint/mod.rs +++ b/cli/tools/lint/mod.rs @@ -10,7 +10,6 @@ use deno_config::glob::FileCollector; use deno_config::glob::FilePatterns; use deno_config::workspace::WorkspaceDirectory; use deno_core::anyhow::anyhow; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; @@ -71,7 +70,7 @@ pub async fn lint( ) -> Result<(), AnyError> { if let Some(watch_flags) = &lint_flags.watch { if lint_flags.is_stdin() { - return Err(generic_error( + return Err(anyhow!( "Lint watch on standard input is not supported.", )); } @@ -224,7 +223,7 @@ fn resolve_paths_with_options_batches( } } if paths_with_options_batches.is_empty() { - return Err(generic_error("No target files found.")); + return Err(anyhow!("No target files found.")); } Ok(paths_with_options_batches) } @@ -500,7 +499,7 @@ fn lint_stdin( ) -> Result<(ParsedSource, Vec), AnyError> { let mut source_code = String::new(); if stdin().read_to_string(&mut source_code).is_err() { - return Err(generic_error("Failed to read from stdin")); + return Err(anyhow!("Failed to read from stdin")); } let linter = CliLinter::new(CliLinterOptions { diff --git a/cli/tools/lint/rules/no_sloppy_imports.rs b/cli/tools/lint/rules/no_sloppy_imports.rs index 94bf9a7c676685..39804d4165cb0d 100644 --- a/cli/tools/lint/rules/no_sloppy_imports.rs +++ b/cli/tools/lint/rules/no_sloppy_imports.rs @@ -188,7 +188,7 @@ impl<'a> deno_graph::source::Resolver for SloppyImportCaptureResolver<'a> { let resolution = self .workspace_resolver .resolve(specifier_text, &referrer_range.specifier) - .map_err(|err| ResolveError::Other(err.into()))?; + .map_err(|err| ResolveError::Other(Box::new(err)))?; match resolution { deno_config::workspace::MappedResolution::Normal { diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index 6357ebcae24a14..27f03a69ffbb71 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -26,7 +26,8 @@ use deno_config::glob::WalkEntry; use deno_core::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context as _; -use deno_core::error::generic_error; +use deno_core::error::{generic_error}; +use deno_core::error::CoreError; use deno_core::error::AnyError; use deno_core::error::JsError; use deno_core::futures::future; @@ -635,21 +636,17 @@ async fn configure_main_worker( let mut worker = worker.into_main_worker(); match res { Ok(()) => Ok(()), - Err(error) => { - // TODO(mmastrac): It would be nice to avoid having this error pattern repeated - if error.is::() { - send_test_event( - &worker.js_runtime.op_state(), - TestEvent::UncaughtError( - specifier.to_string(), - Box::new(error.downcast::().unwrap()), - ), - )?; - Ok(()) - } else { - Err(error) - } + Err(CoreError::Js(err)) => { + send_test_event( + &worker.js_runtime.op_state(), + TestEvent::UncaughtError( + specifier.to_string(), + Box::new(err), + ), + )?; + Ok(()) } + Err(err) => Err(err) }?; Ok((coverage_collector, worker)) } @@ -760,7 +757,7 @@ pub fn worker_has_tests(worker: &mut MainWorker) -> bool { /// Yields to tokio to allow async work to process, and then polls /// the event loop once. #[must_use = "The event loop result should be checked"] -pub async fn poll_event_loop(worker: &mut MainWorker) -> Result<(), AnyError> { +pub async fn poll_event_loop(worker: &mut MainWorker) -> Result<(), CoreError> { // Allow any ops that to do work in the tokio event loop to do so tokio::task::yield_now().await; // Spin the event loop once diff --git a/cli/worker.rs b/cli/worker.rs index 5761571c5c0e56..6814efb51d1d7d 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -7,7 +7,7 @@ use std::sync::Arc; use deno_ast::ModuleSpecifier; use deno_core::anyhow::bail; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, CoreError}; use deno_core::futures::FutureExt; use deno_core::url::Url; use deno_core::v8; @@ -214,7 +214,7 @@ impl CliMainWorker { result = hmr_result; }, event_loop_result = event_loop_future => { - result = event_loop_result; + result = event_loop_result.map_err(Into::into); } } if let Err(e) = result { @@ -326,12 +326,12 @@ impl CliMainWorker { executor.execute().await } - pub async fn execute_main_module(&mut self) -> Result<(), AnyError> { + pub async fn execute_main_module(&mut self) -> Result<(), CoreError> { let id = self.worker.preload_main_module(&self.main_module).await?; self.worker.evaluate_module(id).await } - pub async fn execute_side_module(&mut self) -> Result<(), AnyError> { + pub async fn execute_side_module(&mut self) -> Result<(), CoreError> { let id = self.worker.preload_side_module(&self.main_module).await?; self.worker.evaluate_module(id).await } @@ -388,7 +388,7 @@ impl CliMainWorker { &mut self, name: &'static str, source_code: &'static str, - ) -> Result, AnyError> { + ) -> Result, CoreError> { self.worker.js_runtime.execute_script(name, source_code) } } @@ -612,7 +612,6 @@ impl CliMainWorkerFactory { should_break_on_first_statement: shared.options.inspect_brk, should_wait_for_inspector_session: shared.options.inspect_wait, strace_ops: shared.options.strace_ops.clone(), - get_error_class_fn: Some(&errors::get_error_class_name), cache_storage_dir, origin_storage_dir, stdio, @@ -809,7 +808,6 @@ fn create_web_worker_callback( create_web_worker_cb, format_js_error_fn: Some(Arc::new(format_js_error)), worker_type: args.worker_type, - get_error_class_fn: Some(&errors::get_error_class_name), stdio: stdio.clone(), cache_storage_dir, strace_ops: shared.options.strace_ops.clone(), diff --git a/resolvers/deno/Cargo.toml b/resolvers/deno/Cargo.toml index b2c4bd2384ccb7..b5b949f2aefc74 100644 --- a/resolvers/deno/Cargo.toml +++ b/resolvers/deno/Cargo.toml @@ -16,6 +16,7 @@ path = "lib.rs" [dependencies] anyhow.workspace = true base32.workspace = true +deno_error.workspace = true boxed_error.workspace = true dashmap.workspace = true deno_config.workspace = true diff --git a/resolvers/deno/npm/byonm.rs b/resolvers/deno/npm/byonm.rs index e9182d47a1fdb4..736cf1d5d35c08 100644 --- a/resolvers/deno/npm/byonm.rs +++ b/resolvers/deno/npm/byonm.rs @@ -27,14 +27,18 @@ use super::local::normalize_pkg_name_for_node_modules_deno_folder; use super::CliNpmReqResolver; use super::ResolvePkgFolderFromDenoReqError; -#[derive(Debug, Error)] +#[derive(Debug, Error, deno_error::JsError)] pub enum ByonmResolvePkgFolderFromDenoReqError { + #[class(generic)] #[error("Could not find \"{}\" in a node_modules folder. Deno expects the node_modules/ directory to be up to date. Did you forget to run `deno install`?", .0)] MissingAlias(String), + #[class(inherit)] #[error(transparent)] PackageJson(#[from] PackageJsonLoadError), + #[class(generic)] #[error("Could not find a matching package for 'npm:{}' in the node_modules directory. Ensure you have all your JSR and npm dependencies listed in your deno.json or package.json, then run `deno install`. Alternatively, turn on auto-install by specifying `\"nodeModulesDir\": \"auto\"` in your deno.json file.", .0)] UnmatchedReq(PackageReq), + #[class(inherit)] #[error(transparent)] Io(#[from] std::io::Error), } diff --git a/resolvers/deno/npm/mod.rs b/resolvers/deno/npm/mod.rs index 09e35b15c352cc..364d244323008c 100644 --- a/resolvers/deno/npm/mod.rs +++ b/resolvers/deno/npm/mod.rs @@ -5,6 +5,7 @@ use std::path::PathBuf; use std::sync::Arc; use boxed_error::Boxed; +use deno_error::JsError; use deno_semver::npm::NpmPackageReqReference; use deno_semver::package::PackageReq; use node_resolver::env::NodeResolverEnv; @@ -34,49 +35,58 @@ pub use local::normalize_pkg_name_for_node_modules_deno_folder; mod byonm; mod local; -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(generic)] #[error("Could not resolve \"{}\", but found it in a package.json. Deno expects the node_modules/ directory to be up to date. Did you forget to run `deno install`?", specifier)] pub struct NodeModulesOutOfDateError { pub specifier: String, } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(generic)] #[error("Could not find '{}'. Deno expects the node_modules/ directory to be up to date. Did you forget to run `deno install`?", package_json_path.display())] pub struct MissingPackageNodeModulesFolderError { pub package_json_path: PathBuf, } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct ResolveIfForNpmPackageError( pub Box, ); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum ResolveIfForNpmPackageErrorKind { + #[class(inherit)] #[error(transparent)] NodeResolve(#[from] NodeResolveError), + #[class(inherit)] #[error(transparent)] NodeModulesOutOfDate(#[from] NodeModulesOutOfDateError), } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct ResolveReqWithSubPathError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum ResolveReqWithSubPathErrorKind { + #[class(inherit)] #[error(transparent)] MissingPackageNodeModulesFolder(#[from] MissingPackageNodeModulesFolderError), + #[class(inherit)] #[error(transparent)] ResolvePkgFolderFromDenoReq(#[from] ResolvePkgFolderFromDenoReqError), + #[class(inherit)] #[error(transparent)] PackageSubpathResolve(#[from] PackageSubpathResolveError), } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum ResolvePkgFolderFromDenoReqError { // todo(dsherret): don't use anyhow here + #[class(generic)] #[error(transparent)] Managed(anyhow::Error), + #[class(inherit)] #[error(transparent)] Byonm(#[from] ByonmResolvePkgFolderFromDenoReqError), } diff --git a/resolvers/node/Cargo.toml b/resolvers/node/Cargo.toml index fb302705730a04..6c3df02fbca7fa 100644 --- a/resolvers/node/Cargo.toml +++ b/resolvers/node/Cargo.toml @@ -19,6 +19,7 @@ sync = ["deno_package_json/sync"] [dependencies] anyhow.workspace = true async-trait.workspace = true +deno_error.workspace = true boxed_error.workspace = true deno_media_type.workspace = true deno_package_json.workspace = true diff --git a/resolvers/node/errors.rs b/resolvers/node/errors.rs index 0f332d2c931685..7d4ec2fc19c52f 100644 --- a/resolvers/node/errors.rs +++ b/resolvers/node/errors.rs @@ -5,6 +5,7 @@ use std::fmt::Write; use std::path::PathBuf; use boxed_error::Boxed; +use deno_error::JsError; use thiserror::Error; use url::Url; @@ -55,8 +56,7 @@ pub trait NodeJsErrorCoded { fn code(&self) -> NodeJsErrorCode; } -// todo(https://github.com/denoland/deno_core/issues/810): make this a TypeError -#[derive(Debug, Clone, Error)] +#[derive(Debug, Clone, Error, JsError)] #[error( "[{}] Invalid module '{}' {}{}", self.code(), @@ -64,6 +64,7 @@ pub trait NodeJsErrorCoded { reason, maybe_referrer.as_ref().map(|referrer| format!(" imported from '{}'", referrer)).unwrap_or_default() )] +#[class(type)] pub struct InvalidModuleSpecifierError { pub request: String, pub reason: Cow<'static, str>, @@ -76,13 +77,15 @@ impl NodeJsErrorCoded for InvalidModuleSpecifierError { } } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct LegacyResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum LegacyResolveErrorKind { + #[class(inherit)] #[error(transparent)] TypesNotFound(#[from] TypesNotFoundError), + #[class(inherit)] #[error(transparent)] ModuleNotFound(#[from] ModuleNotFoundError), } @@ -96,13 +99,14 @@ impl NodeJsErrorCoded for LegacyResolveError { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] #[error( "Could not find package '{}' from referrer '{}'{}.", package_name, referrer, referrer_extra.as_ref().map(|r| format!(" ({})", r)).unwrap_or_default() )] +#[class(generic)] pub struct PackageNotFoundError { pub package_name: String, pub referrer: Url, @@ -116,12 +120,13 @@ impl NodeJsErrorCoded for PackageNotFoundError { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] #[error( "Could not find referrer npm package '{}'{}.", referrer, referrer_extra.as_ref().map(|r| format!(" ({})", r)).unwrap_or_default() )] +#[class(generic)] pub struct ReferrerNotFoundError { pub referrer: Url, /// Extra information about the referrer. @@ -134,12 +139,14 @@ impl NodeJsErrorCoded for ReferrerNotFoundError { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(inherit)] #[error("Failed resolving '{package_name}' from referrer '{referrer}'.")] pub struct PackageFolderResolveIoError { pub package_name: String, pub referrer: Url, #[source] + #[inherit] pub source: std::io::Error, } @@ -159,15 +166,18 @@ impl NodeJsErrorCoded for PackageFolderResolveError { } } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct PackageFolderResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum PackageFolderResolveErrorKind { + #[class(inherit)] #[error(transparent)] PackageNotFound(#[from] PackageNotFoundError), + #[class(inherit)] #[error(transparent)] ReferrerNotFound(#[from] ReferrerNotFoundError), + #[class(inherit)] #[error(transparent)] Io(#[from] PackageFolderResolveIoError), } @@ -182,20 +192,24 @@ impl NodeJsErrorCoded for PackageSubpathResolveError { } } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct PackageSubpathResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum PackageSubpathResolveErrorKind { + #[class(inherit)] #[error(transparent)] PkgJsonLoad(#[from] PackageJsonLoadError), + #[class(inherit)] #[error(transparent)] Exports(PackageExportsResolveError), + #[class(inherit)] #[error(transparent)] LegacyResolve(LegacyResolveError), } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(generic)] #[error( "Target '{}' not found from '{}'{}{}.", target, @@ -241,19 +255,24 @@ impl NodeJsErrorCoded for PackageTargetResolveError { } } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct PackageTargetResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum PackageTargetResolveErrorKind { + #[class(inherit)] #[error(transparent)] NotFound(#[from] PackageTargetNotFoundError), + #[class(inherit)] #[error(transparent)] InvalidPackageTarget(#[from] InvalidPackageTargetError), + #[class(inherit)] #[error(transparent)] InvalidModuleSpecifier(#[from] InvalidModuleSpecifierError), + #[class(inherit)] #[error(transparent)] PackageResolve(#[from] PackageResolveError), + #[class(inherit)] #[error(transparent)] TypesNotFound(#[from] TypesNotFoundError), } @@ -267,24 +286,27 @@ impl NodeJsErrorCoded for PackageExportsResolveError { } } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct PackageExportsResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum PackageExportsResolveErrorKind { + #[class(inherit)] #[error(transparent)] PackagePathNotExported(#[from] PackagePathNotExportedError), + #[class(inherit)] #[error(transparent)] PackageTargetResolve(#[from] PackageTargetResolveError), } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] #[error( "[{}] Could not find types for '{}'{}", self.code(), self.0.code_specifier, self.0.maybe_referrer.as_ref().map(|r| format!(" imported from '{}'", r)).unwrap_or_default(), )] +#[class(generic)] pub struct TypesNotFoundError(pub Box); #[derive(Debug)] @@ -299,7 +321,7 @@ impl NodeJsErrorCoded for TypesNotFoundError { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] #[error( "[{}] Invalid package config. {}", self.code(), @@ -326,22 +348,26 @@ impl NodeJsErrorCoded for ClosestPkgJsonError { } } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct ClosestPkgJsonError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum ClosestPkgJsonErrorKind { + #[class(inherit)] #[error(transparent)] CanonicalizingDir(#[from] CanonicalizingPkgJsonDirError), + #[class(inherit)] #[error(transparent)] Load(#[from] PackageJsonLoadError), } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(inherit)] #[error("[{}] Failed canonicalizing package.json directory '{}'.", self.code(), dir_path.display())] pub struct CanonicalizingPkgJsonDirError { pub dir_path: PathBuf, #[source] + #[inherit] pub source: std::io::Error, } @@ -351,8 +377,8 @@ impl NodeJsErrorCoded for CanonicalizingPkgJsonDirError { } } -// todo(https://github.com/denoland/deno_core/issues/810): make this a TypeError -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(type)] #[error( "[{}] Package import specifier \"{}\" is not defined{}{}", self.code(), @@ -372,17 +398,21 @@ impl NodeJsErrorCoded for PackageImportNotDefinedError { } } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct PackageImportsResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum PackageImportsResolveErrorKind { + #[class(inherit)] #[error(transparent)] ClosestPkgJson(ClosestPkgJsonError), + #[class(inherit)] #[error(transparent)] InvalidModuleSpecifier(#[from] InvalidModuleSpecifierError), + #[class(inherit)] #[error(transparent)] NotDefined(#[from] PackageImportNotDefinedError), + #[class(inherit)] #[error(transparent)] Target(#[from] PackageTargetResolveError), } @@ -410,24 +440,30 @@ impl NodeJsErrorCoded for PackageResolveError { } } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct PackageResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum PackageResolveErrorKind { + #[class(inherit)] #[error(transparent)] ClosestPkgJson(#[from] ClosestPkgJsonError), + #[class(inherit)] #[error(transparent)] InvalidModuleSpecifier(#[from] InvalidModuleSpecifierError), + #[class(inherit)] #[error(transparent)] PackageFolderResolve(#[from] PackageFolderResolveError), + #[class(inherit)] #[error(transparent)] ExportsResolve(#[from] PackageExportsResolveError), + #[class(inherit)] #[error(transparent)] SubpathResolve(#[from] PackageSubpathResolveError), } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(generic)] #[error("Failed joining '{path}' from '{base}'.")] pub struct NodeResolveRelativeJoinError { pub path: String, @@ -436,43 +472,54 @@ pub struct NodeResolveRelativeJoinError { pub source: url::ParseError, } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(generic)] #[error("Failed resolving specifier from data url referrer.")] pub struct DataUrlReferrerError { #[source] pub source: url::ParseError, } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct NodeResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum NodeResolveErrorKind { + #[class(inherit)] #[error(transparent)] RelativeJoin(#[from] NodeResolveRelativeJoinError), + #[class(inherit)] #[error(transparent)] PackageImportsResolve(#[from] PackageImportsResolveError), + #[class(inherit)] #[error(transparent)] UnsupportedEsmUrlScheme(#[from] UnsupportedEsmUrlSchemeError), + #[class(inherit)] #[error(transparent)] DataUrlReferrer(#[from] DataUrlReferrerError), + #[class(inherit)] #[error(transparent)] PackageResolve(#[from] PackageResolveError), + #[class(inherit)] #[error(transparent)] TypesNotFound(#[from] TypesNotFoundError), + #[class(inherit)] #[error(transparent)] FinalizeResolution(#[from] FinalizeResolutionError), } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct FinalizeResolutionError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum FinalizeResolutionErrorKind { + #[class(inherit)] #[error(transparent)] InvalidModuleSpecifierError(#[from] InvalidModuleSpecifierError), + #[class(inherit)] #[error(transparent)] ModuleNotFound(#[from] ModuleNotFoundError), + #[class(inherit)] #[error(transparent)] UnsupportedDirImport(#[from] UnsupportedDirImportError), } @@ -487,7 +534,8 @@ impl NodeJsErrorCoded for FinalizeResolutionError { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(generic)] #[error( "[{}] Cannot find {} '{}'{}", self.code(), @@ -507,7 +555,8 @@ impl NodeJsErrorCoded for ModuleNotFoundError { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(generic)] #[error( "[{}] Directory import '{}' is not supported resolving ES modules{}", self.code(), @@ -525,7 +574,8 @@ impl NodeJsErrorCoded for UnsupportedDirImportError { } } -#[derive(Debug)] +#[derive(Debug, JsError)] +#[class(generic)] pub struct InvalidPackageTargetError { pub pkg_json_path: PathBuf, pub sub_path: String, @@ -581,7 +631,8 @@ impl NodeJsErrorCoded for InvalidPackageTargetError { } } -#[derive(Debug)] +#[derive(Debug, JsError)] +#[class(generic)] pub struct PackagePathNotExportedError { pub pkg_json_path: PathBuf, pub subpath: String, @@ -631,7 +682,8 @@ impl std::fmt::Display for PackagePathNotExportedError { } } -#[derive(Debug, Clone, Error)] +#[derive(Debug, Clone, Error, JsError)] +#[class(type)] #[error( "[{}] Only file and data URLs are supported by the default ESM loader.{} Received protocol '{}'", self.code(), @@ -648,20 +700,25 @@ impl NodeJsErrorCoded for UnsupportedEsmUrlSchemeError { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum ResolvePkgJsonBinExportError { + #[class(inherit)] #[error(transparent)] PkgJsonLoad(#[from] PackageJsonLoadError), + #[class(generic)] #[error("Failed resolving binary export. '{}' did not exist", pkg_json_path.display())] MissingPkgJson { pkg_json_path: PathBuf }, + #[class(generic)] #[error("Failed resolving binary export. {message}")] InvalidBinProperty { message: String }, } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum ResolveBinaryCommandsError { + #[class(inherit)] #[error(transparent)] PkgJsonLoad(#[from] PackageJsonLoadError), + #[class(generic)] #[error("'{}' did not have a name", pkg_json_path.display())] MissingPkgJsonName { pkg_json_path: PathBuf }, } @@ -676,7 +733,7 @@ mod test { assert_eq!( PackagePathNotExportedError { pkg_json_path: PathBuf::from("test_path").join("package.json"), - subpath: "./jsx-runtime".to_string(), + subpath: "./jsx-runtime".to_string(), maybe_referrer: None, mode: NodeResolutionMode::Types }.to_string(), @@ -685,7 +742,7 @@ mod test { assert_eq!( PackagePathNotExportedError { pkg_json_path: PathBuf::from("test_path").join("package.json"), - subpath: ".".to_string(), + subpath: ".".to_string(), maybe_referrer: None, mode: NodeResolutionMode::Types }.to_string(), From 097bdac830cd2ab98e6e5311e0f2673560f88441 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Fri, 13 Dec 2024 13:39:37 +0100 Subject: [PATCH 05/36] progress --- Cargo.lock | 129 +++++++++++++++------- Cargo.toml | 13 +-- cli/Cargo.toml | 2 +- cli/args/lockfile.rs | 8 +- cli/args/mod.rs | 2 +- cli/cache/mod.rs | 5 +- cli/graph_util.rs | 1 - cli/lsp/config.rs | 2 +- cli/lsp/language_server.rs | 4 +- cli/lsp/tsc.rs | 43 +++++--- cli/module_loader.rs | 29 +++-- cli/npm/managed/mod.rs | 45 ++++++-- cli/npm/managed/resolution.rs | 6 +- cli/npm/managed/resolvers/common.rs | 22 ++-- cli/npm/managed/resolvers/global.rs | 6 +- cli/npm/managed/resolvers/local.rs | 4 +- cli/npm/managed/resolvers/mod.rs | 1 + cli/npm/mod.rs | 8 +- cli/ops/bench.rs | 1 - cli/ops/jupyter.rs | 4 +- cli/ops/testing.rs | 1 - cli/resolver.rs | 22 ++-- cli/standalone/mod.rs | 8 +- cli/tools/coverage/mod.rs | 2 +- cli/tools/fmt.rs | 4 +- cli/tools/lint/mod.rs | 4 +- cli/tools/lint/rules/no_sloppy_imports.rs | 4 +- cli/tools/registry/paths.rs | 4 +- cli/tools/repl/channel.rs | 10 +- cli/tools/repl/session.rs | 15 +-- cli/tools/task.rs | 2 +- cli/tools/test/mod.rs | 28 +++-- cli/tools/test/reporters/junit.rs | 2 +- cli/tsc/mod.rs | 74 +++++++++---- cli/util/fs.rs | 2 +- cli/worker.rs | 1 - ext/fetch/lib.rs | 2 +- ext/fs/ops.rs | 27 +---- ext/node/ops/v8.rs | 8 +- ext/telemetry/Cargo.toml | 2 + ext/telemetry/lib.rs | 8 +- resolvers/deno/lib.rs | 15 ++- resolvers/deno/npm/mod.rs | 7 +- resolvers/npm_cache/Cargo.toml | 1 + resolvers/npm_cache/lib.rs | 7 +- resolvers/npm_cache/registry_info.rs | 93 ++++++++++------ resolvers/npm_cache/remote.rs | 19 +++- resolvers/npm_cache/tarball.rs | 8 +- runtime/ops/signal.rs | 3 +- 49 files changed, 425 insertions(+), 293 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d82040854c31b3..e32cb2e85b2562 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -596,9 +596,9 @@ dependencies = [ [[package]] name = "boxed_error" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69aae56aaf59d1994b902ed5c0c79024012bdc2426741def75a635999a030e7e" +checksum = "17d4f95e880cfd28c4ca5a006cf7f6af52b4bcb7b5866f573b2faa126fb7affb" dependencies = [ "quote", "syn 2.0.87", @@ -1237,6 +1237,7 @@ dependencies = [ "deno_config", "deno_core", "deno_doc", + "deno_error", "deno_graph", "deno_lint", "deno_lockfile", @@ -1269,7 +1270,7 @@ dependencies = [ "http-body 1.0.0", "http-body-util", "hyper-util", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "jsonc-parser", "junction", @@ -1401,6 +1402,7 @@ version = "0.176.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "thiserror 2.0.3", "tokio", "uuid", @@ -1412,6 +1414,7 @@ version = "0.114.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "rusqlite", "serde", "sha2", @@ -1444,6 +1447,7 @@ name = "deno_canvas" version = "0.51.0" dependencies = [ "deno_core", + "deno_error", "deno_webgpu", "image", "serde", @@ -1452,17 +1456,16 @@ dependencies = [ [[package]] name = "deno_config" -version = "0.39.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce717af3fe6788dae63965d58d5637fd62be8fe4f345f189137ffc06c51837d2" +version = "0.40.0" dependencies = [ - "anyhow", + "boxed_error", + "deno_error", "deno_package_json", "deno_path_util", "deno_semver", "glob", "ignore", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "jsonc-parser", "log", @@ -1470,7 +1473,7 @@ dependencies = [ "phf", "serde", "serde_json", - "thiserror 1.0.64", + "thiserror 2.0.3", "url", ] @@ -1483,9 +1486,7 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.324.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24503eda646f246aa6eb0f794909f9a857c8f05095fed66f36e0eaef92edce23" +version = "0.325.0" dependencies = [ "anyhow", "az", @@ -1493,8 +1494,10 @@ dependencies = [ "bit-set", "bit-vec", "bytes", + "capacity_builder", "cooked-waker", "deno_core_icudata", + "deno_error", "deno_ops", "deno_unsync", "futures", @@ -1510,6 +1513,7 @@ dependencies = [ "smallvec", "sourcemap 8.0.1", "static_assertions", + "thiserror 2.0.3", "tokio", "url", "v8", @@ -1530,6 +1534,7 @@ dependencies = [ "async-trait", "chrono", "deno_core", + "deno_error", "saffron", "thiserror 2.0.3", "tokio", @@ -1548,6 +1553,7 @@ dependencies = [ "ctr", "curve25519-dalek", "deno_core", + "deno_error", "deno_web", "ed448-goldilocks", "elliptic-curve", @@ -1586,7 +1592,7 @@ dependencies = [ "deno_path_util", "handlebars", "html-escape", - "import_map", + "import_map 0.20.1", "indexmap 2.3.0", "itoa", "js-sys", @@ -1604,20 +1610,18 @@ dependencies = [ [[package]] name = "deno_error" version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199c66ffd17ee1a948904d33f3d3f364573951c1f9fb3f859bfe7770bf33862a" dependencies = [ "deno_error_macro", "libc", "serde", "serde_json", + "tokio", + "url", ] [[package]] name = "deno_error_macro" version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd99df6ae75443907e1f959fc42ec6dcea67a7bd083e76cf23a117102c9a2ce" dependencies = [ "proc-macro2", "quote", @@ -1632,6 +1636,7 @@ dependencies = [ "bytes", "data-url", "deno_core", + "deno_error", "deno_path_util", "deno_permissions", "deno_tls", @@ -1664,6 +1669,7 @@ name = "deno_ffi" version = "0.169.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "dlopen2", "dynasmrt", @@ -1687,6 +1693,7 @@ dependencies = [ "base32", "boxed_error", "deno_core", + "deno_error", "deno_io", "deno_path_util", "deno_permissions", @@ -1705,18 +1712,17 @@ dependencies = [ [[package]] name = "deno_graph" version = "0.86.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc78ed0b4bbcb4197300f0d6e7d1edc2d2c5019cdb9dedba7ff229158441885b" dependencies = [ - "anyhow", "async-trait", + "capacity_builder", "data-url", "deno_ast", + "deno_error", "deno_semver", "deno_unsync", "encoding_rs", "futures", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "log", "monch", @@ -1744,6 +1750,7 @@ dependencies = [ "bytes", "cache_control", "deno_core", + "deno_error", "deno_net", "deno_websocket", "flate2", @@ -1777,6 +1784,7 @@ version = "0.92.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "filetime", "fs3", "libc", @@ -1803,6 +1811,7 @@ dependencies = [ "bytes", "chrono", "deno_core", + "deno_error", "deno_fetch", "deno_path_util", "deno_permissions", @@ -1870,6 +1879,7 @@ name = "deno_napi" version = "0.113.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "libc", "libloading 0.7.4", @@ -1898,6 +1908,7 @@ name = "deno_net" version = "0.174.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "deno_tls", "hickory-proto", @@ -1926,6 +1937,7 @@ dependencies = [ "const-oid", "data-encoding", "deno_core", + "deno_error", "deno_fetch", "deno_fs", "deno_io", @@ -2005,11 +2017,9 @@ dependencies = [ [[package]] name = "deno_npm" version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f125a5dba7839c46394a0a9c835da9fe60f5f412587ab4956a76492a1cc6a8" dependencies = [ - "anyhow", "async-trait", + "deno_error", "deno_lockfile", "deno_semver", "futures", @@ -2031,6 +2041,7 @@ dependencies = [ "boxed_error", "deno_cache_dir", "deno_core", + "deno_error", "deno_npm", "deno_semver", "deno_unsync", @@ -2052,9 +2063,7 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.200.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a529a2c488cd3042f12f35666569ebe5b3cf89d2b7d1cafc1a652f6d7bcc8f" +version = "0.201.0" dependencies = [ "proc-macro-rules", "proc-macro2", @@ -2063,7 +2072,7 @@ dependencies = [ "strum", "strum_macros", "syn 2.0.87", - "thiserror 1.0.64", + "thiserror 2.0.3", ] [[package]] @@ -2084,12 +2093,13 @@ dependencies = [ [[package]] name = "deno_path_util" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff25f6e08e7a0214bbacdd6f7195c7f1ebcd850c87a624e4ff06326b68b42d99" +checksum = "b02c7d341e1b2cf089daff0f4fb2b4be8f3b5511b1d96040b3f7ed63a66c737b" dependencies = [ + "deno_error", "percent-encoding", - "thiserror 1.0.64", + "thiserror 2.0.3", "url", ] @@ -2099,6 +2109,7 @@ version = "0.42.0" dependencies = [ "capacity_builder", "deno_core", + "deno_error", "deno_path_util", "deno_terminal 0.2.0", "fqdn", @@ -2121,6 +2132,7 @@ dependencies = [ "boxed_error", "dashmap", "deno_config", + "deno_error", "deno_media_type", "deno_package_json", "deno_path_util", @@ -2144,6 +2156,7 @@ dependencies = [ "deno_core", "deno_cron", "deno_crypto", + "deno_error", "deno_fetch", "deno_ffi", "deno_fs", @@ -2238,6 +2251,7 @@ version = "0.4.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "http-body-util", "hyper 1.4.1", "hyper-util", @@ -2250,6 +2264,7 @@ dependencies = [ "opentelemetry_sdk", "pin-project", "serde", + "thiserror 2.0.3", "tokio", ] @@ -2278,6 +2293,7 @@ name = "deno_tls" version = "0.169.0" dependencies = [ "deno_core", + "deno_error", "deno_native_certs", "rustls", "rustls-pemfile", @@ -2330,6 +2346,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_webidl", "thiserror 2.0.3", "urlpattern", @@ -2345,6 +2362,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_permissions", "deno_url", "deno_webidl", @@ -2362,6 +2380,7 @@ name = "deno_webgpu" version = "0.149.0" dependencies = [ "deno_core", + "deno_error", "raw-window-handle", "serde", "thiserror 2.0.3", @@ -2384,6 +2403,7 @@ version = "0.187.0" dependencies = [ "bytes", "deno_core", + "deno_error", "deno_net", "deno_permissions", "deno_tls", @@ -2405,6 +2425,7 @@ name = "deno_webstorage" version = "0.177.0" dependencies = [ "deno_core", + "deno_error", "deno_web", "rusqlite", "thiserror 2.0.3", @@ -4236,6 +4257,23 @@ dependencies = [ "url", ] +[[package]] +name = "import_map" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1215d4d92511fbbdaea50e750e91f2429598ef817f02b579158e92803b52c00a" +dependencies = [ + "boxed_error", + "deno_error", + "indexmap 2.3.0", + "log", + "percent-encoding", + "serde", + "serde_json", + "thiserror 2.0.3", + "url", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -4977,6 +5015,7 @@ dependencies = [ "anyhow", "async-trait", "boxed_error", + "deno_error", "deno_media_type", "deno_package_json", "deno_path_util", @@ -5771,7 +5810,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ "bytes", - "heck 0.5.0", + "heck 0.4.1", "itertools 0.13.0", "log", "multimap", @@ -6695,14 +6734,13 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.233.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307f176b7475480cee690c34c7118f96fe564d1f2a974bf990294b8310ae4983" +version = "0.234.0" dependencies = [ + "deno_error", "num-bigint", "serde", "smallvec", - "thiserror 1.0.64", + "thiserror 2.0.3", "v8", ] @@ -8282,9 +8320,9 @@ dependencies = [ [[package]] name = "v8" -version = "130.0.1" +version = "130.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c23b5c2caff00209b03a716609b275acae94b02dd3b63c4648e7232a84a8402f" +checksum = "2ee0be58935708fa4d7efb970c6cf9f2d9511d24ee24246481a65b6ee167348d" dependencies = [ "bindgen", "bitflags 2.6.0", @@ -8476,11 +8514,12 @@ dependencies = [ [[package]] name = "wasm_dep_analyzer" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f270206a91783fd90625c8bb0d8fbd459d0b1d1bf209b656f713f01ae7c04b8" +checksum = "2eeee3bdea6257cc36d756fa745a70f9d393571e47d69e0ed97581676a5369ca" dependencies = [ - "thiserror 1.0.64", + "deno_error", + "thiserror 2.0.3", ] [[package]] @@ -9155,3 +9194,11 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "deno_doc" +version = "0.161.0" + +[[patch.unused]] +name = "v8" +version = "0.89.0" diff --git a/Cargo.toml b/Cargo.toml index 5ea9dc44d55cae..65963d3bce45fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,15 +48,15 @@ repository = "https://github.com/denoland/deno" [workspace.dependencies] deno_ast = { version = "=0.44.0", features = ["transpiling"] } -deno_core = { version = "0.324.0" } +deno_core = { version = "0.325.0" } deno_bench_util = { version = "0.176.0", path = "./bench_util" } -deno_config = { version = "=0.39.3", features = ["workspace", "sync"] } +deno_config = { version = "=0.40.0", features = ["workspace", "sync"] } deno_error = { version = "=0.5.2" } deno_lockfile = "=0.23.2" deno_media_type = { version = "0.2.0", features = ["module_specifier"] } deno_npm = "=0.26.0" -deno_path_util = "=0.2.1" +deno_path_util = "=0.2.2" deno_permissions = { version = "0.42.0", path = "./runtime/permissions" } deno_runtime = { version = "0.191.0", path = "./runtime" } deno_semver = "=0.6.1" @@ -105,7 +105,7 @@ async-trait = "0.1.73" base32 = "=0.5.1" base64 = "0.21.7" bencher = "0.1" -boxed_error = "0.2.2" +boxed_error = "0.2.3" brotli = "6.0.0" bytes = "1.4.0" cache_control = "=0.2.0" @@ -348,8 +348,7 @@ deno_ops = { path = "../deno_core/ops" } serde_v8 = { path = "../deno_core/serde_v8" } v8 = { path = "../rusty_v8" } deno_error = { path = "../deno_error" } -deno_path_util = { path = "../deno_path_util" } deno_graph = { path = "../deno_graph" } -deno_package_json = { path = "../deno_package_json" } +deno_npm = { path = "../deno_npm" } deno_doc = { path = "../deno_doc" } -deno_lint = { path = "../deno_lint" } +deno_config = { path = "../deno_config" } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index fb63c04dee61bb..9f1e86ee581063 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -122,7 +122,7 @@ http.workspace = true http-body.workspace = true http-body-util.workspace = true hyper-util.workspace = true -import_map = { version = "=0.20.1", features = ["ext"] } +import_map = { version = "=0.21.0", features = ["ext"] } indexmap.workspace = true jsonc-parser = { workspace = true, features = ["cst", "serde"] } jupyter_runtime = { package = "runtimelib", version = "=0.19.0", features = ["tokio-runtime"] } diff --git a/cli/args/lockfile.rs b/cli/args/lockfile.rs index 74eab78f1cabb6..db030be07c2206 100644 --- a/cli/args/lockfile.rs +++ b/cli/args/lockfile.rs @@ -6,7 +6,7 @@ use std::path::PathBuf; use deno_config::deno_json::ConfigFile; use deno_config::workspace::Workspace; use deno_core::anyhow::Context; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, JsNativeError}; use deno_core::parking_lot::Mutex; use deno_core::parking_lot::MutexGuard; use deno_lockfile::WorkspaceMemberConfig; @@ -241,7 +241,7 @@ impl CliLockfile { }) } - pub fn error_if_changed(&self) -> Result<(), AnyError> { + pub fn error_if_changed(&self) -> Result<(), JsNativeError> { if !self.frozen { return Ok(()); } @@ -253,9 +253,7 @@ impl CliLockfile { let diff = crate::util::diff::diff(&contents, &new_contents); // has an extra newline at the end let diff = diff.trim_end(); - Err(deno_core::anyhow::anyhow!( - "The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it.\nchanges:\n{diff}" - )) + Err(JsNativeError::generic(format!("The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it.\nchanges:\n{diff}"))) } else { Ok(()) } diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 8245d63d73ec9f..7cec21077416f4 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1100,7 +1100,7 @@ impl CliOptions { pkg_json_dep_resolution, specified_import_map: cli_arg_specified_import_map, }, - |path| Ok(std::fs::read_to_string(path)?), + |path| std::fs::read_to_string(path).map_err(Box::new), )?) } diff --git a/cli/cache/mod.rs b/cli/cache/mod.rs index e3e242e975bb7e..b51fe77dfc294a 100644 --- a/cli/cache/mod.rs +++ b/cli/cache/mod.rs @@ -178,6 +178,7 @@ pub type LocalHttpCache = deno_cache_dir::LocalHttpCache; pub type LocalLspHttpCache = deno_cache_dir::LocalLspHttpCache; pub use deno_cache_dir::HttpCache; +use deno_core::error::JsNativeError; pub struct FetchCacherOptions { pub file_header_overrides: HashMap>, @@ -311,9 +312,9 @@ impl Loader for FetchCacher { LoaderCacheSetting::Use => None, LoaderCacheSetting::Reload => { if matches!(file_fetcher.cache_setting(), CacheSetting::Only) { - return Err(deno_core::anyhow::anyhow!( + return Err(JsNativeError::generic( "Could not resolve version constraint using only cached data. Try running again without --cached-only" - )); + ).into()); } Some(CacheSetting::ReloadAll) } diff --git a/cli/graph_util.rs b/cli/graph_util.rs index 80d636396323aa..de2cbdc89a46fb 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -55,7 +55,6 @@ use import_map::ImportMapError; use node_resolver::InNpmPackageChecker; use std::collections::HashSet; use std::error::Error; -use std::ops::Deref; use std::path::PathBuf; use std::sync::Arc; use deno_error::JsErrorClass; diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index a62975778806dc..2ed7ba3b27a124 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -1561,7 +1561,7 @@ impl ConfigData { pkg_json_dep_resolution, specified_import_map, }, - |path| Ok(std::fs::read_to_string(path)?), + |path| std::fs::read_to_string(path).map_err(Box::new), ) .inspect_err(|err| { lsp_warn!( diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 3c4cb0930e7eb0..7bb3bc98dc3047 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -4,7 +4,7 @@ use deno_ast::MediaType; use deno_config::workspace::WorkspaceDirectory; use deno_config::workspace::WorkspaceDiscoverOptions; use deno_core::anyhow::anyhow; -use deno_core::error::AnyError; +use deno_core::error::{AnyError}; use deno_core::resolve_url; use deno_core::serde_json; use deno_core::serde_json::json; @@ -120,7 +120,7 @@ use crate::util::sync::AsyncFlag; struct LspRootCertStoreProvider(RootCertStore); impl RootCertStoreProvider for LspRootCertStoreProvider { - fn get_or_try_init(&self) -> Result<&RootCertStore, AnyError> { + fn get_or_try_init(&self) -> Result<&RootCertStore, deno_core::error::JsNativeError> { Ok(&self.0) } } diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index 931e008a727e5e..2ce63a3787bee7 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -37,7 +37,6 @@ use crate::util::v8::convert; use crate::worker::create_isolate_create_params; use deno_core::convert::Smi; use deno_core::convert::ToV8; -use deno_core::error::StdAnyError; use deno_core::futures::stream::FuturesOrdered; use deno_core::futures::StreamExt; @@ -4304,7 +4303,7 @@ impl TscSpecifierMap { pub fn normalize>( &self, specifier: S, - ) -> Result { + ) -> Result { let original = specifier.as_ref(); if let Some(specifier) = self.normalized_specifiers.get(original) { return Ok(specifier.clone()); @@ -4312,7 +4311,7 @@ impl TscSpecifierMap { let specifier_str = original.replace(".d.ts.d.ts", ".d.ts"); let specifier = match ModuleSpecifier::parse(&specifier_str) { Ok(s) => s, - Err(err) => return Err(err.into()), + Err(err) => return Err(err), }; if specifier.as_str() != original { self @@ -4410,6 +4409,16 @@ fn op_is_node_file(state: &mut OpState, #[string] path: String) -> bool { r } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +enum LoadError { + #[error("{0}")] + #[class(inherit)] + UrlParse(#[from] deno_core::url::ParseError), + #[error("{0}")] + #[class(inherit)] + SerdeV8(#[from] serde_v8::Error), +} + #[derive(Debug, Serialize)] #[serde(rename_all = "camelCase")] struct LoadResponse { @@ -4424,7 +4433,7 @@ fn op_load<'s>( scope: &'s mut v8::HandleScope, state: &mut OpState, #[string] specifier: &str, -) -> Result, AnyError> { +) -> Result, LoadError> { let state = state.borrow_mut::(); let mark = state .performance @@ -4455,7 +4464,7 @@ fn op_load<'s>( fn op_release( state: &mut OpState, #[string] specifier: &str, -) -> Result<(), AnyError> { +) -> Result<(), deno_core::url::ParseError> { let state = state.borrow_mut::(); let mark = state .performance @@ -4472,7 +4481,7 @@ fn op_resolve( state: &mut OpState, #[string] base: String, #[serde] specifiers: Vec<(bool, String)>, -) -> Result>, AnyError> { +) -> Result>, deno_core::url::ParseError> { op_resolve_inner(state, ResolveArgs { base, specifiers }) } @@ -4483,8 +4492,16 @@ struct TscRequestArray { change: convert::OptionNull, } +#[derive(Debug, thiserror::Error)] +pub enum TscRequestArrayError { + #[error(transparent)] + FastStringV8AllocationError(#[from] deno_core::FastStringV8AllocationError), + #[error(transparent)] + SerdeV8(#[from] serde_v8::Error), +} + impl<'a> ToV8<'a> for TscRequestArray { - type Error = StdAnyError; + type Error = TscRequestArrayError; fn to_v8( self, @@ -4495,12 +4512,10 @@ impl<'a> ToV8<'a> for TscRequestArray { let (method_name, args) = self.request.to_server_request(scope)?; let method_name = deno_core::FastString::from_static(method_name) - .v8_string(scope) + .v8_string(scope)? .into(); let args = args.unwrap_or_else(|| v8::Array::new(scope, 0).into()); - let scope_url = serde_v8::to_v8(scope, self.scope) - .map_err(AnyError::from) - .map_err(StdAnyError::from)?; + let scope_url = serde_v8::to_v8(scope, self.scope)?; let change = self.change.to_v8(scope).unwrap_infallible(); @@ -4558,7 +4573,7 @@ async fn op_poll_requests( fn op_resolve_inner( state: &mut OpState, args: ResolveArgs, -) -> Result>, AnyError> { +) -> Result>, deno_core::url::ParseError> { let state = state.borrow_mut::(); let mark = state.performance.mark_with_args("tsc.op.op_resolve", &args); let referrer = state.specifier_map.normalize(&args.base)?; @@ -4715,7 +4730,7 @@ fn op_script_names(state: &mut OpState) -> ScriptNames { fn op_script_version( state: &mut OpState, #[string] specifier: &str, -) -> Result, AnyError> { +) -> Result, deno_core::url::ParseError> { let state = state.borrow_mut::(); let mark = state.performance.mark("tsc.op.op_script_version"); let specifier = state.specifier_map.normalize(specifier)?; @@ -5370,7 +5385,7 @@ impl TscRequest { fn to_server_request<'s>( &self, scope: &mut v8::HandleScope<'s>, - ) -> Result<(&'static str, Option>), AnyError> { + ) -> Result<(&'static str, Option>), serde_v8::Error> { let args = match self { TscRequest::GetDiagnostics(args) => { ("$getDiagnostics", Some(serde_v8::to_v8(scope, args)?)) diff --git a/cli/module_loader.rs b/cli/module_loader.rs index e1dfa9f63ecca6..04c000cdb425a1 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -44,9 +44,9 @@ use crate::worker::ModuleLoaderFactory; use deno_ast::MediaType; use deno_ast::ModuleKind; use deno_core::anyhow::anyhow; -use deno_core::anyhow::bail; use deno_core::anyhow::Context; -use deno_core::error::{JsNativeError, ModuleLoaderError}; +use deno_core::error::{JsNativeError}; +use deno_core::error::{ModuleLoaderError}; use deno_core::error::AnyError; use deno_core::futures::future::FutureExt; use deno_core::futures::Future; @@ -199,7 +199,7 @@ impl ModuleLoadPreparer { &self, graph: &ModuleGraph, roots: &[ModuleSpecifier], - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { self.module_graph_builder.graph_roots_valid(graph, roots) } } @@ -494,7 +494,7 @@ impl fn resolve_referrer( &self, referrer: &str, - ) -> Result { + ) -> Result { let referrer = if referrer.is_empty() && self.shared.is_repl { // FIXME(bartlomieju): this is a hacky way to provide compatibility with REPL // and `Deno.core.evalContext` API. Ideally we should always have a referrer filled @@ -520,7 +520,7 @@ impl &self, raw_specifier: &str, referrer: &ModuleSpecifier, - ) -> Result { + ) -> Result { let graph = self.graph_container.graph(); let resolution = match graph.get(referrer) { Some(Module::Js(module)) => module @@ -534,10 +534,9 @@ impl let specifier = match resolution { Resolution::Ok(resolved) => Cow::Borrowed(&resolved.specifier), Resolution::Err(err) => { - return Err(custom_error( - "TypeError", + return Err(JsNativeError::type_error( format!("{}\n", err.to_string_with_range()), - )); + ).into()); } Resolution::None => Cow::Owned(self.shared.resolver.resolve( raw_specifier, @@ -546,7 +545,7 @@ impl // if we're here, that means it's resolving a dynamic import ResolutionMode::Import, NodeResolutionKind::Execution, - )?), + ).map_err(JsNativeError::from_err)?), }; if self.shared.is_repl { @@ -561,7 +560,7 @@ impl ResolutionMode::Import, NodeResolutionKind::Execution, ) - .map_err(AnyError::from); + .map_err(|e| JsNativeError::from_err(e).into()); } } @@ -572,7 +571,7 @@ impl .npm_resolver .as_managed() .unwrap() // byonm won't create a Module::Npm - .resolve_pkg_folder_from_deno_module(module.nv_reference.nv())?; + .resolve_pkg_folder_from_deno_module(module.nv_reference.nv()).map_err(JsNativeError::from_err)?; self .shared .node_resolver @@ -910,7 +909,7 @@ impl ModuleLoader specifier: &ModuleSpecifier, _maybe_referrer: Option, is_dynamic: bool, - ) -> Pin>>> { + ) -> Pin>>> { self.0.shared.in_flight_loads_tracker.increase(); if self.0.shared.in_npm_pkg_checker.in_npm_package(specifier) { return Box::pin(deno_core::futures::future::ready(Ok(()))); @@ -1116,12 +1115,12 @@ impl NodeRequireLoader fn load_text_file_lossy( &self, path: &Path, - ) -> Result, AnyError> { + ) -> Result, JsNativeError> { // todo(dsherret): use the preloaded module from the graph if available? let media_type = MediaType::from_path(path); - let text = self.fs.read_text_file_lossy_sync(path, None)?; + let text = self.fs.read_text_file_lossy_sync(path, None).map_err(JsNativeError::from_err)?; if media_type.is_emittable() { - let specifier = deno_path_util::url_from_file_path(path)?; + let specifier = deno_path_util::url_from_file_path(path).map_err(JsNativeError::from_err)?; if self.in_npm_pkg_checker.in_npm_package(&specifier) { return Err( NotSupportedKindInNpmError { diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 483a25110541ef..176bbe6319f26f 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -8,7 +8,8 @@ use std::sync::Arc; use deno_ast::ModuleSpecifier; use deno_cache_dir::npm::NpmCacheDir; use deno_core::anyhow::Context; -use deno_core::error::AnyError; +use deno_core::error::{AnyError}; +use deno_core::error::{JsNativeError}; use deno_core::serde_json; use deno_core::url::Url; use deno_npm::npm_rc::ResolvedNpmRc; @@ -327,6 +328,26 @@ impl std::fmt::Debug for ManagedCliNpmResolver { } } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum ResolvePkgFolderFromPkgIdError { + #[class(inherit)] + #[error("{0}")] + NpmPackageFsResolverPackageFolder(#[from] resolvers::NpmPackageFsResolverPackageFolderError), + #[class(inherit)] + #[error("{0}")] + Io(#[from] std::io::Error), +} + +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum ResolvePkgFolderFromDenoModuleError { + #[class(inherit)] + #[error("{0}")] + PackageNvNotFound(#[from] deno_npm::resolution::PackageNvNotFoundError), + #[class(inherit)] + #[error("{0}")] + ResolvePkgFolderFromPkgId(#[from] ResolvePkgFolderFromPkgIdError), +} + impl ManagedCliNpmResolver { #[allow(clippy::too_many_arguments)] pub fn new( @@ -361,7 +382,7 @@ impl ManagedCliNpmResolver { pub fn resolve_pkg_folder_from_pkg_id( &self, pkg_id: &NpmPackageId, - ) -> Result { + ) -> Result { let path = self.fs_resolver.package_folder(pkg_id)?; let path = canonicalize_path_maybe_not_exists_with_fs(&path, self.fs.as_ref())?; @@ -429,7 +450,7 @@ impl ManagedCliNpmResolver { pub async fn add_and_cache_package_reqs( &self, packages: &[PackageReq], - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { self .add_package_reqs_raw( packages, @@ -442,7 +463,7 @@ impl ManagedCliNpmResolver { pub async fn add_package_reqs_no_cache( &self, packages: &[PackageReq], - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { self .add_package_reqs_raw(packages, None) .await @@ -453,7 +474,7 @@ impl ManagedCliNpmResolver { &self, packages: &[PackageReq], caching: PackageCaching<'_>, - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { self .add_package_reqs_raw(packages, Some(caching)) .await @@ -523,7 +544,7 @@ impl ManagedCliNpmResolver { pub async fn inject_synthetic_types_node_package( &self, - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { let reqs = &[PackageReq::from_str("@types/node").unwrap()]; // add and ensure this isn't added to the lockfile self @@ -536,16 +557,16 @@ impl ManagedCliNpmResolver { pub async fn cache_packages( &self, caching: PackageCaching<'_>, - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { self.fs_resolver.cache_packages(caching).await } pub fn resolve_pkg_folder_from_deno_module( &self, nv: &PackageNv, - ) -> Result { + ) -> Result { let pkg_id = self.resolution.resolve_pkg_id_from_deno_module(nv)?; - self.resolve_pkg_folder_from_pkg_id(&pkg_id) + Ok(self.resolve_pkg_folder_from_pkg_id(&pkg_id)?) } pub fn resolve_pkg_id_from_pkg_req( @@ -586,7 +607,7 @@ impl ManagedCliNpmResolver { /// return value of `false` means that new packages were added to the NPM resolution. pub async fn ensure_top_level_package_json_install( &self, - ) -> Result { + ) -> Result { if !self.top_level_install_flag.raise() { return Ok(true); // already did this } @@ -694,10 +715,10 @@ impl CliNpmReqResolver for ManagedCliNpmResolver { ) -> Result { let pkg_id = self .resolve_pkg_id_from_pkg_req(req) - .map_err(|err| ResolvePkgFolderFromDenoReqError::Managed(err.into()))?; + .map_err(|err| ResolvePkgFolderFromDenoReqError::Managed(Box::new(err)))?; self .resolve_pkg_folder_from_pkg_id(&pkg_id) - .map_err(ResolvePkgFolderFromDenoReqError::Managed) + .map_err(|err| ResolvePkgFolderFromDenoReqError::Managed(Box::new(err))) } } diff --git a/cli/npm/managed/resolution.rs b/cli/npm/managed/resolution.rs index 73c5c31cafd1db..dcbbd54673fd63 100644 --- a/cli/npm/managed/resolution.rs +++ b/cli/npm/managed/resolution.rs @@ -4,7 +4,7 @@ use std::collections::HashMap; use std::collections::HashSet; use std::sync::Arc; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, JsNativeError}; use deno_lockfile::NpmPackageDependencyLockfileInfo; use deno_lockfile::NpmPackageLockfileInfo; use deno_npm::registry::NpmRegistryApi; @@ -37,7 +37,7 @@ pub struct AddPkgReqsResult { /// package requirements. pub results: Vec>, /// The final result of resolving and caching all the package requirements. - pub dependencies_result: Result<(), AnyError>, + pub dependencies_result: Result<(), JsNativeError>, } /// Handles updating and storing npm resolution in memory where the underlying @@ -104,7 +104,7 @@ impl NpmResolution { *snapshot_lock.write() = snapshot; Ok(()) } - Err(err) => Err(err.into()), + Err(err) => Err(JsNativeError::from_err(err)), }, } } diff --git a/cli/npm/managed/resolvers/common.rs b/cli/npm/managed/resolvers/common.rs index 24fde44f2c2a69..c802834b0c336b 100644 --- a/cli/npm/managed/resolvers/common.rs +++ b/cli/npm/managed/resolvers/common.rs @@ -15,7 +15,7 @@ use super::super::PackageCaching; use async_trait::async_trait; use deno_ast::ModuleSpecifier; use deno_core::anyhow::Context; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, JsNativeError}; use deno_core::futures; use deno_core::futures::StreamExt; use deno_npm::NpmPackageCacheFolderId; @@ -27,6 +27,11 @@ use node_resolver::errors::PackageFolderResolveError; use crate::npm::CliNpmTarballCache; +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(generic)] +#[error("Package folder not found for '{0}'")] +pub struct NpmPackageFsResolverPackageFolderError(String); + /// Part of the resolution that interacts with the file system. #[async_trait(?Send)] pub trait NpmPackageFsResolver: Send + Sync { @@ -38,12 +43,9 @@ pub trait NpmPackageFsResolver: Send + Sync { fn package_folder( &self, package_id: &NpmPackageId, - ) -> Result { + ) -> Result { self.maybe_package_folder(package_id).ok_or_else(|| { - deno_core::anyhow::anyhow!( - "Package folder not found for '{}'", - package_id.as_serialized() - ) + NpmPackageFsResolverPackageFolderError(package_id.as_serialized()) }) } @@ -61,7 +63,7 @@ pub trait NpmPackageFsResolver: Send + Sync { async fn cache_packages<'a>( &self, caching: PackageCaching<'a>, - ) -> Result<(), AnyError>; + ) -> Result<(), JsNativeError>; #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"] fn ensure_read_permission<'a>( @@ -91,7 +93,7 @@ impl RegistryReadPermissionChecker { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { if permissions.query_read_all() { return Ok(Cow::Borrowed(path)); // skip permissions checks below } @@ -137,7 +139,7 @@ impl RegistryReadPermissionChecker { } } - permissions.check_read_path(path).map_err(Into::into) + permissions.check_read_path(path) } } @@ -145,7 +147,7 @@ impl RegistryReadPermissionChecker { pub async fn cache_packages( packages: &[NpmResolutionPackage], tarball_cache: &Arc, -) -> Result<(), AnyError> { +) -> Result<(), JsNativeError> { let mut futures_unordered = futures::stream::FuturesUnordered::new(); for package in packages { futures_unordered.push(async move { diff --git a/cli/npm/managed/resolvers/global.rs b/cli/npm/managed/resolvers/global.rs index 4e79941af6515f..4b5b6f24e48abe 100644 --- a/cli/npm/managed/resolvers/global.rs +++ b/cli/npm/managed/resolvers/global.rs @@ -13,7 +13,7 @@ use crate::npm::CliNpmCache; use crate::npm::CliNpmTarballCache; use async_trait::async_trait; use deno_ast::ModuleSpecifier; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, JsNativeError}; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; @@ -154,7 +154,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { async fn cache_packages<'a>( &self, caching: PackageCaching<'a>, - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { let package_partitions = match caching { PackageCaching::All => self .resolution @@ -192,7 +192,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { self .registry_read_permission_checker .ensure_registry_read_permission(permissions, path) diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index 1e83717f15a660..9eab3bc2c9363a 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -24,7 +24,7 @@ use async_trait::async_trait; use deno_ast::ModuleSpecifier; use deno_cache_dir::npm::mixed_case_package_name_decode; use deno_core::anyhow::Context; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, JsNativeError}; use deno_core::futures::stream::FuturesUnordered; use deno_core::futures::StreamExt; use deno_core::parking_lot::Mutex; @@ -312,7 +312,7 @@ async fn sync_resolution_with_fs( root_node_modules_dir_path: &Path, system_info: &NpmSystemInfo, lifecycle_scripts: &LifecycleScriptsConfig, -) -> Result<(), AnyError> { +) -> Result<(), JsNativeError> { if snapshot.is_empty() && npm_install_deps_provider.workspace_pkgs().is_empty() { diff --git a/cli/npm/managed/resolvers/mod.rs b/cli/npm/managed/resolvers/mod.rs index 736270749f8b38..b4a66398d83789 100644 --- a/cli/npm/managed/resolvers/mod.rs +++ b/cli/npm/managed/resolvers/mod.rs @@ -17,6 +17,7 @@ use crate::npm::CliNpmTarballCache; use crate::util::progress_bar::ProgressBar; pub use self::common::NpmPackageFsResolver; +pub use self::common::NpmPackageFsResolverPackageFolderError; use self::global::GlobalNpmPackageResolver; use self::local::LocalNpmPackageResolver; diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index 49c6b4b6ea104d..26e772603ff883 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -29,7 +29,8 @@ use node_resolver::InNpmPackageChecker; use node_resolver::NpmPackageFolderResolver; use crate::file_fetcher::FileFetcher; -use crate::http_util::HttpClientProvider; +use crate::http_util::{DownloadError}; +use crate::http_util::{HttpClientProvider}; use crate::util::fs::atomic_write_file_with_retries_and_fs; use crate::util::fs::hard_link_dir_recursive; use crate::util::fs::AtomicWriteFileFsAdapter; @@ -42,6 +43,8 @@ pub use self::managed::CliManagedNpmResolverCreateOptions; pub use self::managed::CliNpmResolverManagedSnapshotOption; pub use self::managed::ManagedCliNpmResolver; pub use self::managed::PackageCaching; +pub use self::managed::ResolvePkgFolderFromPkgIdError; +pub use self::managed::ResolvePkgFolderFromDenoModuleError; pub type CliNpmTarballCache = deno_npm_cache::TarballCache; pub type CliNpmCache = deno_npm_cache::NpmCache; @@ -123,7 +126,8 @@ impl deno_npm_cache::NpmCacheEnv for CliNpmCacheEnv { | Json { .. } | ToStr { .. } | NoRedirectHeader { .. } - | TooManyRedirects => None, + | TooManyRedirects + | NotFound => None, BadResponse(bad_response_error) => { Some(bad_response_error.status_code) } diff --git a/cli/ops/bench.rs b/cli/ops/bench.rs index 3c61e9a771f6c2..b905503c393a22 100644 --- a/cli/ops/bench.rs +++ b/cli/ops/bench.rs @@ -4,7 +4,6 @@ use std::sync::atomic::AtomicUsize; use std::sync::atomic::Ordering; use deno_core::error::JsNativeError; -use deno_core::error::AnyError; use deno_core::op2; use deno_core::v8; use deno_core::ModuleSpecifier; diff --git a/cli/ops/jupyter.rs b/cli/ops/jupyter.rs index 5bdf97e60f6c20..f1e520abe9c321 100644 --- a/cli/ops/jupyter.rs +++ b/cli/ops/jupyter.rs @@ -95,10 +95,12 @@ pub fn op_jupyter_input( None } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum JupyterBroadcastError { + #[class(inherit)] #[error(transparent)] SerdeJson(serde_json::Error), + #[class(generic)] #[error(transparent)] ZeroMq(AnyError), } diff --git a/cli/ops/testing.rs b/cli/ops/testing.rs index 1b27d3b828e20b..974bca81feef3c 100644 --- a/cli/ops/testing.rs +++ b/cli/ops/testing.rs @@ -10,7 +10,6 @@ use crate::tools::test::TestStepDescription; use crate::tools::test::TestStepResult; use deno_core::error::JsNativeError; -use deno_core::error::AnyError; use deno_core::op2; use deno_core::v8; use deno_core::ModuleSpecifier; diff --git a/cli/resolver.rs b/cli/resolver.rs index f5c3f68f36ad86..cf2da80cabb302 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -6,9 +6,9 @@ use dashmap::DashSet; use deno_ast::MediaType; use deno_config::workspace::MappedResolutionDiagnostic; use deno_config::workspace::MappedResolutionError; -use deno_core::anyhow::anyhow; use deno_core::anyhow::Context; -use deno_core::error::AnyError; +use deno_core::error::{AnyError}; +use deno_core::error::{JsNativeError}; use deno_core::url::Url; use deno_core::ModuleSourceCode; use deno_core::ModuleSpecifier; @@ -270,10 +270,10 @@ impl CliResolver { ) => match mapped_resolution_error { MappedResolutionError::Specifier(e) => ResolveError::Specifier(e), // deno_graph checks specifically for an ImportMapError - MappedResolutionError::ImportMap(e) => ResolveError::Other(e.into()), - err => ResolveError::Other(err.into()), + MappedResolutionError::ImportMap(e) => ResolveError::Other(Box::new(e)), + err => ResolveError::Other(Box::new(err)), }, - err => ResolveError::Other(err.into()), + err => ResolveError::Other(Box::new(err)), })?; if resolution.found_package_json_dep { @@ -401,27 +401,25 @@ impl<'a> deno_graph::source::NpmResolver for WorkerCliNpmGraphResolver<'a> { .map(|r| { r.map_err(|err| match err { NpmResolutionError::Registry(e) => { - NpmLoadError::RegistryInfo(Arc::new(e.into())) + NpmLoadError::RegistryInfo(Arc::new(e)) } NpmResolutionError::Resolution(e) => { - NpmLoadError::PackageReqResolution(Arc::new(e.into())) + NpmLoadError::PackageReqResolution(Arc::new(e)) } NpmResolutionError::DependencyEntry(e) => { - NpmLoadError::PackageReqResolution(Arc::new(e.into())) + NpmLoadError::PackageReqResolution(Arc::new(e)) } }) }) .collect(), dep_graph_result: match top_level_result { - Ok(()) => result.dependencies_result.map_err(Arc::new), + Ok(()) => result.dependencies_result.map_err(|e| Arc::new(e) as Arc), Err(err) => Err(Arc::new(err)), }, } } None => { - let err = Arc::new(anyhow!( - "npm specifiers were requested; but --no-npm is specified" - )); + let err = Arc::new(JsNativeError::generic("npm specifiers were requested; but --no-npm is specified")); NpmResolvePkgReqsResult { results: package_reqs .iter() diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 89cda9f135a34b..1f12d6577b60ce 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -288,7 +288,7 @@ impl ModuleLoader for EmbeddedModuleLoader { &referrer, referrer_kind, NodeResolutionKind::Execution, - )?); + ).map_err(JsNativeError::from_err)?); } if specifier.scheme() == "jsr" { @@ -315,7 +315,7 @@ impl ModuleLoader for EmbeddedModuleLoader { &referrer, referrer_kind, NodeResolutionKind::Execution, - )?; + ).map_err(JsNativeError::from_err)?; if let Some(res) = maybe_res { return Ok(res.into_url()); } @@ -518,11 +518,11 @@ impl NodeRequireLoader for EmbeddedModuleLoader { &self, path: &std::path::Path, ) -> Result, JsNativeError> { - let file_entry = self.shared.vfs.file_entry(path)?; + let file_entry = self.shared.vfs.file_entry(path).map_err(JsNativeError::from_err)?; let file_bytes = self .shared .vfs - .read_file_all(file_entry, VfsFileSubDataKind::ModuleGraph)?; + .read_file_all(file_entry, VfsFileSubDataKind::ModuleGraph).map_err(JsNativeError::from_err)?; Ok(from_utf8_lossy_cow(file_bytes)) } diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index 1e0056d4fd07ea..d815680c0df419 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -426,7 +426,7 @@ fn collect_coverages( .ignore_git_folder() .ignore_node_modules() .set_vendor_folder(cli_options.vendor_dir_path().map(ToOwned::to_owned)) - .collect_file_patterns(&deno_config::fs::RealDenoConfigFs, file_patterns)?; + .collect_file_patterns(&deno_config::fs::RealDenoConfigFs, file_patterns); let coverage_patterns = FilePatterns { base: initial_cwd.to_path_buf(), diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index 0edc24c8d3add5..afa61075ceffc8 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -163,7 +163,7 @@ fn resolve_paths_with_options_batches( Vec::with_capacity(members_fmt_options.len()); for (_ctx, member_fmt_options) in members_fmt_options { let files = - collect_fmt_files(cli_options, member_fmt_options.files.clone())?; + collect_fmt_files(cli_options, member_fmt_options.files.clone()); if !files.is_empty() { paths_with_options_batches.push(PathsWithOptions { base: member_fmt_options.files.base.clone(), @@ -220,7 +220,7 @@ async fn format_files( fn collect_fmt_files( cli_options: &CliOptions, files: FilePatterns, -) -> Result, AnyError> { +) -> Vec { FileCollector::new(|e| { is_supported_ext_fmt(e.path) || (e.path.extension().is_none() && cli_options.ext_flag().is_some()) diff --git a/cli/tools/lint/mod.rs b/cli/tools/lint/mod.rs index 3b4237380bfd60..46336eb8d2ded4 100644 --- a/cli/tools/lint/mod.rs +++ b/cli/tools/lint/mod.rs @@ -213,7 +213,7 @@ fn resolve_paths_with_options_batches( let mut paths_with_options_batches = Vec::with_capacity(members_lint_options.len()); for (dir, lint_options) in members_lint_options { - let files = collect_lint_files(cli_options, lint_options.files.clone())?; + let files = collect_lint_files(cli_options, lint_options.files.clone()); if !files.is_empty() { paths_with_options_batches.push(PathsWithOptions { dir, @@ -428,7 +428,7 @@ impl WorkspaceLinter { fn collect_lint_files( cli_options: &CliOptions, files: FilePatterns, -) -> Result, AnyError> { +) -> Vec { FileCollector::new(|e| { is_script_ext(e.path) || (e.path.extension().is_none() && cli_options.ext_flag().is_some()) diff --git a/cli/tools/lint/rules/no_sloppy_imports.rs b/cli/tools/lint/rules/no_sloppy_imports.rs index 5699abcd5a88a2..c7fc4ad4f72eb8 100644 --- a/cli/tools/lint/rules/no_sloppy_imports.rs +++ b/cli/tools/lint/rules/no_sloppy_imports.rs @@ -7,7 +7,7 @@ use std::sync::Arc; use deno_ast::SourceRange; use deno_config::workspace::WorkspaceResolver; -use deno_core::anyhow::anyhow; +use deno_core::error::JsNativeError; use deno_graph::source::ResolutionKind; use deno_graph::source::ResolveError; use deno_graph::Range; @@ -221,7 +221,7 @@ impl<'a> deno_graph::source::Resolver for SloppyImportCaptureResolver<'a> { } | deno_config::workspace::MappedResolution::PackageJson { .. } => { // this error is ignored - Err(ResolveError::Other(anyhow!(""))) + Err(ResolveError::Other(Box::new(JsNativeError::generic("")))) } } } diff --git a/cli/tools/registry/paths.rs b/cli/tools/registry/paths.rs index 8b6c05fc01e561..4f007f700e3ba8 100644 --- a/cli/tools/registry/paths.rs +++ b/cli/tools/registry/paths.rs @@ -233,7 +233,7 @@ pub fn collect_publish_paths( ) -> Result, AnyError> { let diagnostics_collector = opts.diagnostics_collector; let publish_paths = - collect_paths(opts.cli_options, diagnostics_collector, opts.file_patterns)?; + collect_paths(opts.cli_options, diagnostics_collector, opts.file_patterns); let publish_paths_set = publish_paths.iter().cloned().collect::>(); let capacity = publish_paths.len() + opts.force_include_paths.len(); let mut paths = HashSet::with_capacity(capacity); @@ -321,7 +321,7 @@ fn collect_paths( cli_options: &CliOptions, diagnostics_collector: &PublishDiagnosticsCollector, file_patterns: FilePatterns, -) -> Result, AnyError> { +) -> Vec { FileCollector::new(|e| { if !e.metadata.is_file { if let Ok(specifier) = ModuleSpecifier::from_file_path(e.path) { diff --git a/cli/tools/repl/channel.rs b/cli/tools/repl/channel.rs index 823a13d2884ce5..88d5d3f415e193 100644 --- a/cli/tools/repl/channel.rs +++ b/cli/tools/repl/channel.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use deno_core::anyhow::anyhow; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, CoreError, JsNativeError}; use deno_core::serde_json; use deno_core::serde_json::Value; use std::cell::RefCell; @@ -46,7 +46,7 @@ pub enum RustylineSyncMessage { } pub enum RustylineSyncResponse { - PostMessage(Result), + PostMessage(Result), LspCompletions(Vec), } @@ -60,7 +60,7 @@ impl RustylineSyncMessageSender { &self, method: &str, params: Option, - ) -> Result { + ) -> Result { if let Err(err) = self .message_tx @@ -68,10 +68,10 @@ impl RustylineSyncMessageSender { method: method.to_string(), params: params .map(|params| serde_json::to_value(params)) - .transpose()?, + .transpose().map_err(JsNativeError::from_err)?, }) { - Err(anyhow!("{}", err)) + Err(JsNativeError::from_err(err).into()) } else { match self.response_rx.borrow_mut().blocking_recv().unwrap() { RustylineSyncResponse::PostMessage(result) => result, diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index 02594f15197f3f..34897310d80fb9 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -32,7 +32,8 @@ use deno_ast::ParsedSource; use deno_ast::SourcePos; use deno_ast::SourceRangedForSpanned; use deno_ast::SourceTextInfo; -use deno_core::error::generic_error; +use deno_core::anyhow::anyhow; +use deno_core::error::{CoreError, JsNativeError}; use deno_core::error::AnyError; use deno_core::futures::channel::mpsc::UnboundedReceiver; use deno_core::futures::FutureExt; @@ -250,10 +251,10 @@ impl ReplSession { let cwd_url = Url::from_directory_path(cli_options.initial_cwd()).map_err(|_| { - generic_error(format!( + anyhow!( "Unable to construct URL from the path of cwd: {}", cli_options.initial_cwd().to_string_lossy(), - )) + ) })?; let ts_config_for_emit = cli_options .resolve_ts_config_for_emit(deno_config::deno_json::TsConfigType::Emit)?; @@ -322,7 +323,7 @@ impl ReplSession { &mut self, method: &str, params: Option, - ) -> Result { + ) -> Result { self .worker .js_runtime @@ -339,7 +340,7 @@ impl ReplSession { .await } - pub async fn run_event_loop(&mut self) -> Result<(), AnyError> { + pub async fn run_event_loop(&mut self) -> Result<(), CoreError> { self.worker.run_event_loop(true).await } @@ -742,7 +743,7 @@ impl ReplSession { async fn evaluate_expression( &mut self, expression: &str, - ) -> Result { + ) -> Result { self .post_message_with_event_loop( "Runtime.evaluate", @@ -765,7 +766,7 @@ impl ReplSession { }), ) .await - .and_then(|res| serde_json::from_value(res).map_err(|e| e.into())) + .and_then(|res| serde_json::from_value(res).map_err(|e| JsNativeError::from_err(e).into())) } } diff --git a/cli/tools/task.rs b/cli/tools/task.rs index 25d1d66710922f..b4cbe3dc41a0f5 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -829,7 +829,7 @@ fn print_available_tasks( is_deno: false, name: name.to_string(), task: deno_config::deno_json::TaskDefinition { - command: script.to_string(), + command: Some(script.to_string()), dependencies: vec![], description: None, }, diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index 9d60aedb522dad..a06bd5f1968f3a 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -24,9 +24,7 @@ use deno_ast::MediaType; use deno_config::glob::FilePatterns; use deno_config::glob::WalkEntry; use deno_core::anyhow; -use deno_core::anyhow::bail; -use deno_core::anyhow::Context as _; -use deno_core::error::{generic_error}; +use deno_core::anyhow::anyhow; use deno_core::error::CoreError; use deno_core::error::AnyError; use deno_core::error::JsError; @@ -978,12 +976,12 @@ async fn run_tests_for_worker_inner( let result = match result { Ok(r) => r, Err(error) => { - if error.is::() { + if let CoreError::Js(js_error) = error { send_test_event( &state_rc, TestEvent::UncaughtError( specifier.to_string(), - Box::new(error.downcast::().unwrap()), + Box::new(js_error), ), )?; fail_fast_tracker.add_failure(); @@ -994,7 +992,7 @@ async fn run_tests_for_worker_inner( had_uncaught_error = true; continue; } else { - return Err(error); + return Err(error.into()); } } }; @@ -1366,17 +1364,17 @@ pub async fn report_tests( reporter.report_summary(&elapsed, &tests, &test_steps); if let Err(err) = reporter.flush_report(&elapsed, &tests, &test_steps) { return ( - Err(generic_error(format!( + Err(anyhow!( "Test reporter failed to flush: {}", err - ))), + )), receiver, ); } if used_only { return ( - Err(generic_error( + Err(anyhow!( "Test failed because the \"only\" option was used", )), receiver, @@ -1384,7 +1382,7 @@ pub async fn report_tests( } if failed { - return (Err(generic_error("Test failed")), receiver); + return (Err(anyhow!("Test failed")), receiver); } (Ok(()), receiver) @@ -1567,7 +1565,7 @@ pub async fn run_tests( if !workspace_test_options.permit_no_files && specifiers_with_mode.is_empty() { - return Err(generic_error("No test modules found")); + return Err(anyhow!("No test modules found")); } let doc_tests = get_doc_tests(&specifiers_with_mode, file_fetcher).await?; @@ -1603,10 +1601,10 @@ pub async fn run_tests( TestSpecifiersOptions { cwd: Url::from_directory_path(cli_options.initial_cwd()).map_err( |_| { - generic_error(format!( + anyhow!( "Unable to construct URL from the path of cwd: {}", cli_options.initial_cwd().to_string_lossy(), - )) + ) }, )?, concurrent_jobs: workspace_test_options.concurrent_jobs, @@ -1785,10 +1783,10 @@ pub async fn run_tests_with_watch( TestSpecifiersOptions { cwd: Url::from_directory_path(cli_options.initial_cwd()).map_err( |_| { - generic_error(format!( + anyhow!( "Unable to construct URL from the path of cwd: {}", cli_options.initial_cwd().to_string_lossy(), - )) + ) }, )?, concurrent_jobs: workspace_test_options.concurrent_jobs, diff --git a/cli/tools/test/reporters/junit.rs b/cli/tools/test/reporters/junit.rs index 3998bee40de39b..62160e1f353505 100644 --- a/cli/tools/test/reporters/junit.rs +++ b/cli/tools/test/reporters/junit.rs @@ -2,7 +2,7 @@ use std::collections::VecDeque; use std::path::PathBuf; - +use deno_core::anyhow::Context; use super::fmt::to_relative_path_or_remote_url; use super::*; diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index a8e8d73b68b002..76b0978675cf58 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -47,7 +47,6 @@ use once_cell::sync::Lazy; use std::borrow::Cow; use std::collections::HashMap; use std::fmt; -use std::path::Path; use std::path::PathBuf; use std::sync::Arc; use thiserror::Error; @@ -464,13 +463,6 @@ impl State { } } -fn normalize_specifier( - specifier: &str, - current_dir: &Path, -) -> Result { - resolve_url_or_path(specifier, current_dir).map_err(|err| err.into()) -} - #[op2] #[string] fn op_create_hash(s: &mut OpState, #[string] text: &str) -> String { @@ -541,6 +533,23 @@ pub fn as_ts_script_kind(media_type: MediaType) -> i32 { pub const MISSING_DEPENDENCY_SPECIFIER: &str = "internal:///missing_dependency.d.ts"; +#[derive(Debug, Error, deno_error::JsError)] +pub enum LoadError { + #[class(generic)] + #[error("Unable to load {path}: {error}")] + LoadFromNodeModule { + path: String, + error: std::io::Error, + }, + #[class(inherit)] + #[error("Error converting a string module specifier for \"op_resolve\": {0}")] + ModuleResolution(#[from] deno_core::ModuleResolutionError), + #[class(inherit)] + #[error("{0}")] + ClosestPkgJson(#[from] node_resolver::errors::ClosestPkgJsonError), + +} + #[derive(Debug, Serialize)] #[serde(rename_all = "camelCase")] struct LoadResponse { @@ -555,24 +564,28 @@ struct LoadResponse { fn op_load( state: &mut OpState, #[string] load_specifier: &str, -) -> Result, AnyError> { +) -> Result, LoadError> { op_load_inner(state, load_specifier) } fn op_load_inner( state: &mut OpState, load_specifier: &str, -) -> Result, AnyError> { +) -> Result, LoadError> { fn load_from_node_modules( specifier: &ModuleSpecifier, npm_state: Option<&RequestNpmState>, media_type: &mut MediaType, is_cjs: &mut bool, - ) -> Result { + ) -> Result { *media_type = MediaType::from_specifier(specifier); let file_path = specifier.to_file_path().unwrap(); - let code = std::fs::read_to_string(&file_path) - .with_context(|| format!("Unable to load {}", file_path.display()))?; + let code = std::fs::read_to_string(&file_path).map_err(|err| { + LoadError::LoadFromNodeModule { + path: file_path.display().to_string(), + error: err, + } + })?; let code: Arc = code.into(); *is_cjs = npm_state .map(|npm_state| { @@ -585,8 +598,7 @@ fn op_load_inner( let state = state.borrow_mut::(); - let specifier = normalize_specifier(load_specifier, &state.current_dir) - .context("Error converting a string module specifier for \"op_load\".")?; + let specifier = resolve_url_or_path(load_specifier, &state.current_dir)?; let mut hash: Option = None; let mut media_type = MediaType::Unknown; @@ -701,6 +713,22 @@ fn op_load_inner( })) } +#[derive(Debug, Error, deno_error::JsError)] +pub enum ResolveError { + #[class(inherit)] + #[error("Error converting a string module specifier for \"op_resolve\": {0}")] + ModuleResolution(#[from] deno_core::ModuleResolutionError), + #[class(inherit)] + #[error("{0}")] + PackageSubpathResolve(PackageSubpathResolveError), + #[class(inherit)] + #[error("{0}")] + ResolvePkgFolderFromDenoModule(#[from] crate::npm::ResolvePkgFolderFromDenoModuleError), + #[class(inherit)] + #[error("{0}")] + ResolveNonGraphSpecifierTypes(#[from] ResolveNonGraphSpecifierTypesError), +} + #[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ResolveArgs { @@ -718,7 +746,7 @@ fn op_resolve( state: &mut OpState, #[string] base: String, #[serde] specifiers: Vec<(bool, String)>, -) -> Result, AnyError> { +) -> Result, ResolveError> { op_resolve_inner(state, ResolveArgs { base, specifiers }) } @@ -726,7 +754,7 @@ fn op_resolve( fn op_resolve_inner( state: &mut OpState, args: ResolveArgs, -) -> Result, AnyError> { +) -> Result, ResolveError> { let state = state.borrow_mut::(); let mut resolved: Vec<(String, &'static str)> = Vec::with_capacity(args.specifiers.len()); @@ -737,9 +765,7 @@ fn op_resolve_inner( } else if let Some(remapped_base) = state.root_map.get(&args.base) { remapped_base.clone() } else { - normalize_specifier(&args.base, &state.current_dir).context( - "Error converting a string module specifier for \"op_resolve\".", - )? + resolve_url_or_path(&args.base, &state.current_dir)? }; let referrer_module = state.graph.get(&referrer); for (is_cjs, specifier) in args.specifiers { @@ -851,7 +877,7 @@ fn resolve_graph_specifier_types( referrer: &ModuleSpecifier, resolution_mode: ResolutionMode, state: &State, -) -> Result, AnyError> { +) -> Result, ResolveError> { let graph = &state.graph; let maybe_module = match graph.try_get(specifier) { Ok(Some(module)) => Some(module), @@ -913,7 +939,7 @@ fn resolve_graph_specifier_types( Err(err) => match err.code() { NodeJsErrorCode::ERR_TYPES_NOT_FOUND | NodeJsErrorCode::ERR_MODULE_NOT_FOUND => None, - _ => return Err(err.into()), + _ => return Err(ResolveError::PackageSubpathResolve(err)), }, }; Ok(Some(into_specifier_and_media_type(maybe_url))) @@ -935,10 +961,12 @@ fn resolve_graph_specifier_types( } } -#[derive(Debug, Error)] +#[derive(Debug, Error, deno_error::JsError)] enum ResolveNonGraphSpecifierTypesError { + #[class(inherit)] #[error(transparent)] ResolvePkgFolderFromDenoReq(#[from] ResolvePkgFolderFromDenoReqError), + #[class(inherit)] #[error(transparent)] PackageSubpathResolve(#[from] PackageSubpathResolveError), } diff --git a/cli/util/fs.rs b/cli/util/fs.rs index ba84a0e8f33d06..6fb1c4672bf4e2 100644 --- a/cli/util/fs.rs +++ b/cli/util/fs.rs @@ -346,7 +346,7 @@ pub fn collect_specifiers( .ignore_git_folder() .ignore_node_modules() .set_vendor_folder(vendor_folder) - .collect_file_patterns(&deno_config::fs::RealDenoConfigFs, files)?; + .collect_file_patterns(&deno_config::fs::RealDenoConfigFs, files); let mut collected_files_as_urls = collected_files .iter() .map(|f| specifier_from_file_path(f).unwrap()) diff --git a/cli/worker.rs b/cli/worker.rs index abe5952811705d..f8ddd0c009a3ab 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -52,7 +52,6 @@ use crate::args::CliLockfile; use crate::args::DenoSubcommand; use crate::args::NpmCachingStrategy; use crate::args::StorageKeyResolver; -use crate::errors; use crate::npm::CliNpmResolver; use crate::util::checksum; use crate::util::file_watcher::WatcherCommunicator; diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index 69eb6880d77a94..a927dff53e8fc0 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -229,7 +229,7 @@ pub enum FetchError { Io(#[from] std::io::Error), #[class(generic)] #[error(transparent)] - Dns(hickory_resolver::error::ResolveError), + Dns(hickory_resolver::ResolveError), // Only used for node upgrade #[class("Http")] #[error(transparent)] diff --git a/ext/fs/ops.rs b/ext/fs/ops.rs index 18ffe868d2eddb..13d089fdf56724 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -1398,46 +1398,23 @@ where Ok(buf.into_owned().into_boxed_slice().into()) } -// todo(https://github.com/denoland/deno_core/pull/986): remove -// when upgrading deno_core -#[derive(Debug)] -pub struct FastStringV8AllocationError; - -impl std::error::Error for FastStringV8AllocationError {} - -impl std::fmt::Display for FastStringV8AllocationError { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - write!( - f, - "failed to allocate string; buffer exceeds maximum length" - ) - } -} - /// Maintains a static reference to the string if possible. pub struct V8MaybeStaticStr(pub Cow<'static, str>); impl<'s> ToV8<'s> for V8MaybeStaticStr { - type Error = FastStringV8AllocationError; + type Error = deno_core::FastStringV8AllocationError; #[inline] fn to_v8( self, scope: &mut v8::HandleScope<'s>, ) -> Result, Self::Error> { - // todo(https://github.com/denoland/deno_core/pull/986): remove this check - // when upgrading deno_core - const MAX_V8_STRING_LENGTH: usize = 536870888; - if self.0.len() > MAX_V8_STRING_LENGTH { - return Err(FastStringV8AllocationError); - } - Ok( match self.0 { Cow::Borrowed(text) => FastString::from_static(text), Cow::Owned(value) => value.into(), } - .v8_string(scope) + .v8_string(scope)? .into(), ) } diff --git a/ext/node/ops/v8.rs b/ext/node/ops/v8.rs index 966bfc8c8d8586..ab97056e97b178 100644 --- a/ext/node/ops/v8.rs +++ b/ext/node/ops/v8.rs @@ -69,6 +69,7 @@ impl v8::ValueSerializerImpl for SerializerDelegate { let obj = self.obj(scope); let key = FastString::from_static("_getSharedArrayBufferId") .v8_string(scope) + .ok()? .into(); if let Some(v) = obj.get(scope, key) { if let Ok(fun) = v.try_cast::() { @@ -90,6 +91,7 @@ impl v8::ValueSerializerImpl for SerializerDelegate { let obj = self.obj(scope); let key = FastString::from_static("_getDataCloneError") .v8_string(scope) + .unwrap() .into(); if let Some(v) = obj.get(scope, key) { let fun = v @@ -112,7 +114,7 @@ impl v8::ValueSerializerImpl for SerializerDelegate { ) -> Option { let obj = self.obj(scope); let key = FastString::from_static("_writeHostObject") - .v8_string(scope) + .v8_string(scope).ok()? .into(); if let Some(v) = obj.get(scope, key) { if let Ok(v) = v.try_cast::() { @@ -241,6 +243,7 @@ impl v8::ValueDeserializerImpl for DeserializerDelegate { let obj = v8::Local::new(scope, &self.obj); let key = FastString::from_static("_readHostObject") .v8_string(scope) + .ok()? .into(); let scope = &mut v8::AllowJavascriptExecutionScope::new(scope); if let Some(v) = obj.get(scope, key) { @@ -251,7 +254,8 @@ impl v8::ValueDeserializerImpl for DeserializerDelegate { Err(_) => { let msg = FastString::from_static("readHostObject must return an object") - .v8_string(scope); + .v8_string(scope) + .ok()?; let error = v8::Exception::type_error(scope, msg); scope.throw_exception(error); return None; diff --git a/ext/telemetry/Cargo.toml b/ext/telemetry/Cargo.toml index f3d4bbd336d685..629f39d921628e 100644 --- a/ext/telemetry/Cargo.toml +++ b/ext/telemetry/Cargo.toml @@ -29,3 +29,5 @@ opentelemetry_sdk.workspace = true pin-project.workspace = true serde.workspace = true tokio.workspace = true +thiserror.workspace = true +deno_error.workspace = true diff --git a/ext/telemetry/lib.rs b/ext/telemetry/lib.rs index 2ce7a1dda1c621..e96cd3f7e6b9f7 100644 --- a/ext/telemetry/lib.rs +++ b/ext/telemetry/lib.rs @@ -853,7 +853,9 @@ fn op_otel_span_start<'s>( let parent_span_id = parse_span_id(scope, parent_span_id); - let name = owned_string(scope, name.try_cast()?); + let name = owned_string(scope, name.try_cast().map_err(|e: v8::DataError| { + OtelError::Data(e.into()) + })?); let temporary_span = TemporarySpan(SpanData { span_context: SpanContext::new( @@ -875,10 +877,10 @@ fn op_otel_span_start<'s>( name: Cow::Owned(name), start_time: SystemTime::UNIX_EPOCH .checked_add(std::time::Duration::from_secs_f64(start_time)) - .ok_or_else(|| OtelError::InvalidStartTime)?, + .ok_or(OtelError::InvalidStartTime)?, end_time: SystemTime::UNIX_EPOCH .checked_add(std::time::Duration::from_secs_f64(end_time)) - .ok_or_else(|| OtelError::InvalidStartTime)?, + .ok_or(OtelError::InvalidStartTime)?, attributes: Vec::new(), dropped_attributes_count: 0, events: Default::default(), diff --git a/resolvers/deno/lib.rs b/resolvers/deno/lib.rs index 661caf836df436..adaa5af8075260 100644 --- a/resolvers/deno/lib.rs +++ b/resolvers/deno/lib.rs @@ -12,6 +12,7 @@ use deno_config::workspace::MappedResolutionDiagnostic; use deno_config::workspace::MappedResolutionError; use deno_config::workspace::WorkspaceResolvePkgJsonFolderError; use deno_config::workspace::WorkspaceResolver; +use deno_error::JsError; use deno_package_json::PackageJsonDepValue; use deno_package_json::PackageJsonDepValueParseError; use deno_semver::npm::NpmPackageReqReference; @@ -48,29 +49,39 @@ pub struct DenoResolution { pub found_package_json_dep: bool, } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct DenoResolveError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum DenoResolveErrorKind { + #[class(type)] #[error("Importing from the vendor directory is not permitted. Use a remote specifier instead or disable vendoring.")] InvalidVendorFolderImport, + #[class(inherit)] #[error(transparent)] MappedResolution(#[from] MappedResolutionError), + #[class(inherit)] #[error(transparent)] MissingPackageNodeModulesFolder(#[from] MissingPackageNodeModulesFolderError), + #[class(inherit)] #[error(transparent)] Node(#[from] NodeResolveError), + #[class(inherit)] #[error(transparent)] NodeModulesOutOfDate(#[from] NodeModulesOutOfDateError), + #[class(inherit)] #[error(transparent)] PackageJsonDepValueParse(#[from] PackageJsonDepValueParseError), + #[class(inherit)] #[error(transparent)] PackageJsonDepValueUrlParse(url::ParseError), + #[class(inherit)] #[error(transparent)] PackageSubpathResolve(#[from] PackageSubpathResolveError), + #[class(inherit)] #[error(transparent)] ResolvePkgFolderFromDenoReq(#[from] ResolvePkgFolderFromDenoReqError), + #[class(inherit)] #[error(transparent)] WorkspaceResolvePkgJsonFolder(#[from] WorkspaceResolvePkgJsonFolderError), } diff --git a/resolvers/deno/npm/mod.rs b/resolvers/deno/npm/mod.rs index 0d3900acef4c77..c037ba56c237a3 100644 --- a/resolvers/deno/npm/mod.rs +++ b/resolvers/deno/npm/mod.rs @@ -82,10 +82,9 @@ pub enum ResolveReqWithSubPathErrorKind { #[derive(Debug, Error, JsError)] pub enum ResolvePkgFolderFromDenoReqError { - // todo(dsherret): don't use anyhow here - #[class(generic)] - #[error(transparent)] - Managed(anyhow::Error), + #[class(inherit)] + #[error("{0}")] + Managed(Box), #[class(inherit)] #[error(transparent)] Byonm(#[from] ByonmResolvePkgFolderFromDenoReqError), diff --git a/resolvers/npm_cache/Cargo.toml b/resolvers/npm_cache/Cargo.toml index 1cc7237025e3eb..432b43bd8a37f1 100644 --- a/resolvers/npm_cache/Cargo.toml +++ b/resolvers/npm_cache/Cargo.toml @@ -24,6 +24,7 @@ base64.workspace = true boxed_error.workspace = true deno_cache_dir.workspace = true deno_npm.workspace = true +deno_error.workspace = true deno_semver.workspace = true deno_unsync = { workspace = true, features = ["tokio"] } faster-hex.workspace = true diff --git a/resolvers/npm_cache/lib.rs b/resolvers/npm_cache/lib.rs index 9f5424dc46fffa..2429ff45a69150 100644 --- a/resolvers/npm_cache/lib.rs +++ b/resolvers/npm_cache/lib.rs @@ -34,7 +34,8 @@ pub use tarball::TarballCache; pub use registry_info::get_package_url; pub use remote::maybe_auth_header_for_npm_registry; -#[derive(Debug)] +#[derive(Debug, deno_error::JsError)] +#[class(generic)] pub struct DownloadError { pub status_code: Option, pub error: AnyError, @@ -249,13 +250,13 @@ impl NpmCache { pub fn load_package_info( &self, name: &str, - ) -> Result, AnyError> { + ) -> Result, serde_json::Error> { let file_cache_path = self.get_registry_package_info_file_cache_path(name); let file_text = match std::fs::read_to_string(file_cache_path) { Ok(file_text) => file_text, Err(err) if err.kind() == ErrorKind::NotFound => return Ok(None), - Err(err) => return Err(err.into()), + Err(err) => return Err(serde_json::Error::io(err)), }; Ok(serde_json::from_str(&file_text)?) } diff --git a/resolvers/npm_cache/registry_info.rs b/resolvers/npm_cache/registry_info.rs index 279c24f4f48b12..da1a03e3fa452d 100644 --- a/resolvers/npm_cache/registry_info.rs +++ b/resolvers/npm_cache/registry_info.rs @@ -4,11 +4,7 @@ use std::collections::HashMap; use std::collections::HashSet; use std::sync::Arc; -use deno_core::anyhow::anyhow; -use deno_core::anyhow::bail; -use deno_core::anyhow::Context; use deno_core::error::JsNativeError; -use deno_core::error::AnyError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; use deno_core::parking_lot::Mutex; @@ -21,17 +17,13 @@ use deno_npm::registry::NpmRegistryApi; use deno_npm::registry::NpmRegistryPackageInfoLoadError; use deno_unsync::sync::AtomicFlag; use deno_unsync::sync::MultiRuntimeAsyncValueCreator; -use futures::future::LocalBoxFuture; -use futures::FutureExt; -use parking_lot::Mutex; -use url::Url; use crate::remote::maybe_auth_header_for_npm_registry; use crate::NpmCache; use crate::NpmCacheEnv; use crate::NpmCacheSetting; -type LoadResult = Result>; +type LoadResult = Result>; type LoadFuture = LocalBoxFuture<'static, LoadResult>; #[derive(Debug, Clone)] @@ -51,7 +43,7 @@ enum MemoryCacheItem { FsCached, /// An item is memory cached when it fails saving to the file system cache /// or the package does not exist. - MemoryCached(Result>, Arc>), + MemoryCached(Result>, Arc>), } #[derive(Debug, Default)] @@ -96,6 +88,37 @@ impl MemoryCache { } } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(generic)] +pub enum LoadFileCachedPackageInfoError { + #[error("Previously saved '{name}' from the npm cache, but now it fails to load: {err}")] + LoadPackageInfo { + err: serde_json::Error, + name: String, + }, + #[error("The package '{0}' previously saved its registry information to the file system cache, but that file no longer exists.")] + FileMissing(String), +} + +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(inherit)] +#[error(r#"Failed loading {url} for package \"{name}\": {inner}"#)] +pub struct LoadPackageInfoError { + url: Url, + name: String, + #[inherit] inner: LoadPackageInfoInnerError, +} + +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum LoadPackageInfoInnerError { + #[class(inherit)] + #[error("{0}")] + LoadFileCachedPackageInfo(LoadFileCachedPackageInfoError), + #[class(inherit)] + #[error("{0}")] + Other(Arc), +} + // todo(#27198): refactor to store this only in the http cache /// Downloads packuments from the npm registry. @@ -164,7 +187,7 @@ impl RegistryInfoProvider { package_name: name.to_string(), }), Err(err) => { - Err(NpmRegistryPackageInfoLoadError::LoadError(Arc::new(err))) + Err(NpmRegistryPackageInfoLoadError::LoadError(Arc::new(JsNativeError::from_err(err)))) } } } @@ -172,20 +195,18 @@ impl RegistryInfoProvider { pub async fn maybe_package_info( self: &Arc, name: &str, - ) -> Result>, AnyError> { - self.load_package_info_inner(name).await.with_context(|| { - format!( - "Failed loading {} for package \"{}\"", - get_package_url(&self.npmrc, name), - name - ) + ) -> Result>, LoadPackageInfoError> { + self.load_package_info_inner(name).await.map_err(|err| LoadPackageInfoError { + url: get_package_url(&self.npmrc, name), + name: name.to_string(), + inner: err }) } async fn load_package_info_inner( self: &Arc, name: &str, - ) -> Result>, AnyError> { + ) -> Result>, LoadPackageInfoInnerError> { let (cache_item, clear_id) = { let mut mem_cache = self.memory_cache.lock(); let cache_item = if let Some(cache_item) = mem_cache.get(name) { @@ -210,9 +231,10 @@ impl RegistryInfoProvider { .load_file_cached_package_info(name) .await .map(|info| Some(Arc::new(info))) + .map_err(LoadPackageInfoInnerError::LoadFileCachedPackageInfo) } MemoryCacheItem::MemoryCached(maybe_info) => { - maybe_info.clone().map_err(|e| anyhow!("{}", e)) + maybe_info.clone().map_err(LoadPackageInfoInnerError::Other) } MemoryCacheItem::Pending(value_creator) => { match value_creator.get().await { @@ -244,13 +266,13 @@ impl RegistryInfoProvider { Ok(None) } Err(err) => { - let return_err = anyhow!("{:#}", err); + let return_err = err.clone(); self.memory_cache.lock().try_insert( clear_id, name, MemoryCacheItem::MemoryCached(Err(err)), ); - Err(return_err) + Err(LoadPackageInfoInnerError::Other(return_err)) } } } @@ -260,7 +282,7 @@ impl RegistryInfoProvider { async fn load_file_cached_package_info( &self, name: &str, - ) -> Result { + ) -> Result { // this scenario failing should be exceptionally rare so let's // deal with improving it only when anyone runs into an issue let maybe_package_info = deno_unsync::spawn_blocking({ @@ -270,16 +292,14 @@ impl RegistryInfoProvider { }) .await .unwrap() - .with_context(|| { - format!( - "Previously saved '{}' from the npm cache, but now it fails to load.", - name - ) + .map_err(|err| LoadFileCachedPackageInfoError::LoadPackageInfo { + err, + name: name.to_string(), })?; match maybe_package_info { Some(package_info) => Ok(package_info), None => { - bail!("The package '{}' previously saved its registry information to the file system cache, but that file no longer exists.", name) + Err(LoadFileCachedPackageInfoError::FileMissing(name.to_string())) } } } @@ -292,7 +312,7 @@ impl RegistryInfoProvider { match maybe_auth_header_for_npm_registry(registry_config) { Ok(maybe_auth_header) => maybe_auth_header, Err(err) => { - return std::future::ready(Err(Arc::new(err))).boxed_local() + return std::future::ready(Err(Arc::new(JsNativeError::from_err(err)))).boxed_local() } }; let name = name.to_string(); @@ -303,14 +323,14 @@ impl RegistryInfoProvider { || downloader.previously_loaded_packages.lock().contains(&name) { // attempt to load from the file cache - if let Some(info) = downloader.cache.load_package_info(&name)? { + if let Some(info) = downloader.cache.load_package_info(&name).map_err(JsNativeError::from_err)? { let result = Arc::new(info); return Ok(FutureResult::SavedFsCache(result)); } } if *downloader.cache.cache_setting() == NpmCacheSetting::Only { - return Err(deno_core::error::custom_error( + return Err(JsNativeError::new( "NotCached", format!( "npm package not found in cache: \"{name}\", --cached-only is specified." @@ -326,12 +346,12 @@ impl RegistryInfoProvider { package_url, maybe_auth_header, ) - .await?; + .await.map_err(JsNativeError::from_err)?; match maybe_bytes { Some(bytes) => { let future_result = deno_unsync::spawn_blocking( - move || -> Result { - let package_info = serde_json::from_slice(&bytes)?; + move || -> Result { + let package_info = serde_json::from_slice(&bytes).map_err(JsNativeError::from_err)?; match downloader.cache.save_package_info(&name, &package_info) { Ok(()) => { Ok(FutureResult::SavedFsCache(Arc::new(package_info))) @@ -347,7 +367,8 @@ impl RegistryInfoProvider { } }, ) - .await??; + .await + .map_err(JsNativeError::from_err)??; Ok(future_result) } None => Ok(FutureResult::PackageNotExists), diff --git a/resolvers/npm_cache/remote.rs b/resolvers/npm_cache/remote.rs index 538554612f11c3..e3c164d2b50f9d 100644 --- a/resolvers/npm_cache/remote.rs +++ b/resolvers/npm_cache/remote.rs @@ -1,17 +1,24 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use anyhow::bail; -use anyhow::Context; -use anyhow::Error as AnyError; use base64::prelude::BASE64_STANDARD; use base64::Engine; use deno_npm::npm_rc::RegistryConfig; use http::header; +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum AuthHeaderForNpmRegistryError { + #[class(type)] + #[error("Both the username and password must be provided for basic auth")] + Both, + #[class(type)] + #[error("The password in npmrc is an invalid base64 string: {0}")] + Base64(base64::DecodeError), +} + // TODO(bartlomieju): support more auth methods besides token and basic auth pub fn maybe_auth_header_for_npm_registry( registry_config: &RegistryConfig, -) -> Result, AnyError> { +) -> Result, AuthHeaderForNpmRegistryError> { if let Some(token) = registry_config.auth_token.as_ref() { return Ok(Some(( header::AUTHORIZATION, @@ -33,7 +40,7 @@ pub fn maybe_auth_header_for_npm_registry( if (username.is_some() && password.is_none()) || (username.is_none() && password.is_some()) { - bail!("Both the username and password must be provided for basic auth") + return Err(AuthHeaderForNpmRegistryError::Both); } if username.is_some() && password.is_some() { @@ -42,7 +49,7 @@ pub fn maybe_auth_header_for_npm_registry( // https://github.com/npm/cli/blob/780afc50e3a345feb1871a28e33fa48235bc3bd5/workspaces/config/lib/index.js#L846-L851 let pw_base64 = BASE64_STANDARD .decode(password.unwrap()) - .with_context(|| "The password in npmrc is an invalid base64 string")?; + .map_err(AuthHeaderForNpmRegistryError::Base64)?; let bearer = BASE64_STANDARD.encode(format!( "{}:{}", username.unwrap(), diff --git a/resolvers/npm_cache/tarball.rs b/resolvers/npm_cache/tarball.rs index 273cd79df03722..b7312683a59725 100644 --- a/resolvers/npm_cache/tarball.rs +++ b/resolvers/npm_cache/tarball.rs @@ -15,11 +15,7 @@ use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageVersionDistInfo; use deno_semver::package::PackageNv; use deno_unsync::sync::MultiRuntimeAsyncValueCreator; -use futures::future::LocalBoxFuture; -use futures::FutureExt; use http::StatusCode; -use parking_lot::Mutex; -use url::Url; use crate::remote::maybe_auth_header_for_npm_registry; use crate::tarball_extract::verify_and_extract_tarball; @@ -139,13 +135,13 @@ impl TarballCache { if should_use_cache && package_folder_exists { return Ok(()); } else if tarball_cache.cache.cache_setting() == &NpmCacheSetting::Only { - return Err(deno_core::error::custom_error( + return Err(deno_core::error::JsNativeError::new( "NotCached", format!( "npm package not found in cache: \"{}\", --cached-only is specified.", &package_nv.name ) - ) + ).into() ); } diff --git a/runtime/ops/signal.rs b/runtime/ops/signal.rs index 8592c089b573f1..7ac4373e1d70d0 100644 --- a/runtime/ops/signal.rs +++ b/runtime/ops/signal.rs @@ -52,11 +52,12 @@ pub enum SignalError { #[class(type)] #[error(transparent)] InvalidSignalInt(#[from] crate::signal::InvalidSignalIntError), + #[class(type)] #[error("Binding to signal '{0}' is not allowed")] SignalNotAllowed(String), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io(#[from] std::io::Error), } #[cfg(unix)] From a62427cf71bef28eebba7ffec64e2953fac987a6 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 18 Dec 2024 14:17:01 +0100 Subject: [PATCH 06/36] progress --- Cargo.lock | 103 ++++++++++----- cli/args/mod.rs | 11 +- cli/build.rs | 7 +- cli/cache/mod.rs | 18 ++- cli/emit.rs | 48 ++++--- cli/graph_util.rs | 8 +- cli/http_util.rs | 26 +++- cli/lsp/analysis.rs | 13 +- cli/lsp/config.rs | 2 +- cli/lsp/documents.rs | 2 +- cli/lsp/language_server.rs | 6 +- cli/lsp/text.rs | 12 +- cli/lsp/tsc.rs | 3 +- cli/module_loader.rs | 51 +++++--- cli/npm/byonm.rs | 3 +- cli/npm/managed/mod.rs | 17 ++- cli/npm/managed/resolvers/common.rs | 3 +- .../managed/resolvers/common/bin_entries.rs | 105 ++++++++++----- .../resolvers/common/lifecycle_scripts.rs | 18 +-- cli/npm/managed/resolvers/global.rs | 5 +- cli/npm/managed/resolvers/local.rs | 84 +++++++++--- cli/npm/mod.rs | 8 +- cli/resolver.rs | 16 ++- cli/standalone/mod.rs | 120 ++++++++++++------ cli/tools/bench/mod.rs | 2 +- cli/tools/installer.rs | 13 +- cli/tools/jupyter/mod.rs | 4 +- cli/tools/lint/mod.rs | 4 +- cli/tools/repl/channel.rs | 3 +- cli/tools/repl/session.rs | 7 +- cli/tools/run/hmr.rs | 31 ++--- cli/tools/test/mod.rs | 23 +--- cli/tools/test/reporters/junit.rs | 6 +- cli/tsc/mod.rs | 18 +-- cli/util/file_watcher.rs | 5 +- cli/util/fs.rs | 89 +++++++++++-- cli/worker.rs | 15 ++- ext/broadcast_channel/lib.rs | 6 +- ext/cache/lib.rs | 7 +- ext/cache/sqlite.rs | 7 +- ext/cron/lib.rs | 8 +- ext/crypto/decrypt.rs | 6 +- ext/crypto/encrypt.rs | 6 +- ext/crypto/export_key.rs | 6 +- ext/crypto/generate_key.rs | 6 +- ext/crypto/import_key.rs | 6 +- ext/crypto/lib.rs | 18 ++- ext/fetch/lib.rs | 7 +- ext/ffi/call.rs | 2 +- ext/ffi/dlfcn.rs | 7 +- ext/ffi/symbol.rs | 4 +- ext/fs/ops.rs | 2 +- ext/http/http_next.rs | 18 ++- ext/io/fs.rs | 2 +- ext/kv/lib.rs | 10 +- ext/kv/remote.rs | 26 +++- ext/kv/sqlite.rs | 6 +- ext/net/io.rs | 6 +- ext/net/lib.rs | 4 +- ext/node/ops/buffer.rs | 11 +- ext/node/ops/crypto/keys.rs | 54 +++++--- ext/node/ops/crypto/mod.rs | 25 ++-- ext/node/ops/fs.rs | 12 +- ext/node/ops/http.rs | 36 ++++-- ext/node/ops/http2.rs | 58 ++++----- ext/node/ops/inspector.rs | 6 +- ext/node/ops/ipc.rs | 8 +- ext/node/ops/os/mod.rs | 20 +-- ext/node/ops/require.rs | 68 ++++++---- ext/node/ops/v8.rs | 6 +- ext/node/ops/worker_threads.rs | 24 ++-- ext/node/ops/zlib/brotli.rs | 32 ++--- ext/node/ops/zlib/mod.rs | 19 ++- ext/telemetry/lib.rs | 9 +- ext/tls/lib.rs | 6 +- ext/webgpu/buffer.rs | 6 +- ext/webgpu/bundle.rs | 6 +- ext/webgpu/byow.rs | 6 +- ext/webgpu/lib.rs | 6 +- ext/webgpu/render_pass.rs | 6 +- ext/webgpu/surface.rs | 6 +- ext/websocket/lib.rs | 2 +- resolvers/npm_cache/registry_info.rs | 32 +++-- resolvers/npm_cache/remote.rs | 5 +- runtime/ops/fs_events.rs | 21 +-- runtime/ops/http.rs | 8 +- runtime/ops/os/mod.rs | 28 +--- runtime/ops/process.rs | 17 ++- runtime/ops/signal.rs | 2 +- runtime/ops/tty.rs | 36 +++--- runtime/ops/web_worker/sync_fetch.rs | 18 ++- runtime/shared.rs | 18 ++- runtime/web_worker.rs | 2 +- runtime/worker.rs | 2 +- 94 files changed, 1094 insertions(+), 606 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6cfb3779e4de79..d186646860d477 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1272,7 +1272,7 @@ dependencies = [ "http-body 1.0.0", "http-body-util", "hyper-util", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "jsonc-parser", "junction", @@ -1404,6 +1404,7 @@ version = "0.177.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "thiserror 2.0.3", "tokio", "uuid", @@ -1415,6 +1416,7 @@ version = "0.115.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "rusqlite", "serde", "sha2", @@ -1455,6 +1457,7 @@ name = "deno_canvas" version = "0.52.0" dependencies = [ "deno_core", + "deno_error", "deno_webgpu", "image", "serde", @@ -1463,17 +1466,16 @@ dependencies = [ [[package]] name = "deno_config" -version = "0.39.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce717af3fe6788dae63965d58d5637fd62be8fe4f345f189137ffc06c51837d2" +version = "0.40.0" dependencies = [ - "anyhow", + "boxed_error", + "deno_error", "deno_package_json", "deno_path_util", "deno_semver", "glob", "ignore", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "jsonc-parser", "log", @@ -1481,7 +1483,7 @@ dependencies = [ "phf", "serde", "serde_json", - "thiserror 1.0.64", + "thiserror 2.0.3", "url", ] @@ -1495,8 +1497,6 @@ dependencies = [ [[package]] name = "deno_core" version = "0.326.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed157162dc5320a2b46ffeeaec24788339df0f2437cfaea78a8d82696715ad7f" dependencies = [ "anyhow", "az", @@ -1507,6 +1507,7 @@ dependencies = [ "capacity_builder", "cooked-waker", "deno_core_icudata", + "deno_error", "deno_ops", "deno_unsync", "futures", @@ -1522,6 +1523,7 @@ dependencies = [ "smallvec", "sourcemap 8.0.1", "static_assertions", + "thiserror 2.0.3", "tokio", "url", "v8", @@ -1542,6 +1544,7 @@ dependencies = [ "async-trait", "chrono", "deno_core", + "deno_error", "saffron", "thiserror 2.0.3", "tokio", @@ -1560,6 +1563,7 @@ dependencies = [ "ctr", "curve25519-dalek", "deno_core", + "deno_error", "deno_web", "ed448-goldilocks", "elliptic-curve", @@ -1598,7 +1602,7 @@ dependencies = [ "deno_path_util", "handlebars", "html-escape", - "import_map", + "import_map 0.20.1", "indexmap 2.3.0", "itoa", "js-sys", @@ -1616,21 +1620,18 @@ dependencies = [ [[package]] name = "deno_error" version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199c66ffd17ee1a948904d33f3d3f364573951c1f9fb3f859bfe7770bf33862a" dependencies = [ "deno_error_macro", "libc", "serde", "serde_json", + "tokio", "url", ] [[package]] name = "deno_error_macro" version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd99df6ae75443907e1f959fc42ec6dcea67a7bd083e76cf23a117102c9a2ce" dependencies = [ "proc-macro2", "quote", @@ -1645,6 +1646,7 @@ dependencies = [ "bytes", "data-url", "deno_core", + "deno_error", "deno_path_util", "deno_permissions", "deno_tls", @@ -1677,6 +1679,7 @@ name = "deno_ffi" version = "0.170.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "dlopen2", "dynasmrt", @@ -1700,6 +1703,7 @@ dependencies = [ "base32", "boxed_error", "deno_core", + "deno_error", "deno_io", "deno_path_util", "deno_permissions", @@ -1718,18 +1722,17 @@ dependencies = [ [[package]] name = "deno_graph" version = "0.86.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc78ed0b4bbcb4197300f0d6e7d1edc2d2c5019cdb9dedba7ff229158441885b" dependencies = [ - "anyhow", "async-trait", + "capacity_builder", "data-url", "deno_ast", + "deno_error", "deno_semver", "deno_unsync", "encoding_rs", "futures", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "log", "monch", @@ -1757,6 +1760,7 @@ dependencies = [ "bytes", "cache_control", "deno_core", + "deno_error", "deno_net", "deno_websocket", "flate2", @@ -1790,6 +1794,7 @@ version = "0.93.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "filetime", "fs3", "libc", @@ -1816,6 +1821,7 @@ dependencies = [ "bytes", "chrono", "deno_core", + "deno_error", "deno_fetch", "deno_path_util", "deno_permissions", @@ -1883,6 +1889,7 @@ name = "deno_napi" version = "0.114.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "libc", "libloading 0.7.4", @@ -1911,6 +1918,7 @@ name = "deno_net" version = "0.175.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "deno_tls", "hickory-proto", @@ -1939,6 +1947,7 @@ dependencies = [ "const-oid", "data-encoding", "deno_core", + "deno_error", "deno_fetch", "deno_fs", "deno_io", @@ -2018,11 +2027,9 @@ dependencies = [ [[package]] name = "deno_npm" version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f125a5dba7839c46394a0a9c835da9fe60f5f412587ab4956a76492a1cc6a8" dependencies = [ - "anyhow", "async-trait", + "deno_error", "deno_lockfile", "deno_semver", "futures", @@ -2044,6 +2051,7 @@ dependencies = [ "boxed_error", "deno_cache_dir", "deno_core", + "deno_error", "deno_npm", "deno_semver", "deno_unsync", @@ -2066,8 +2074,6 @@ dependencies = [ [[package]] name = "deno_ops" version = "0.202.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd8ac1af251e292388e516dd339b9a3b982a6d1e7f8644c08e34671ca39003c" dependencies = [ "proc-macro-rules", "proc-macro2", @@ -2076,7 +2082,7 @@ dependencies = [ "strum", "strum_macros", "syn 2.0.87", - "thiserror 1.0.64", + "thiserror 2.0.3", ] [[package]] @@ -2113,6 +2119,7 @@ version = "0.43.0" dependencies = [ "capacity_builder", "deno_core", + "deno_error", "deno_path_util", "deno_terminal 0.2.0", "fqdn", @@ -2135,6 +2142,7 @@ dependencies = [ "boxed_error", "dashmap", "deno_config", + "deno_error", "deno_media_type", "deno_package_json", "deno_path_util", @@ -2158,6 +2166,7 @@ dependencies = [ "deno_core", "deno_cron", "deno_crypto", + "deno_error", "deno_fetch", "deno_ffi", "deno_fs", @@ -2252,6 +2261,7 @@ version = "0.5.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "http-body-util", "hyper 1.4.1", "hyper-util", @@ -2264,6 +2274,7 @@ dependencies = [ "opentelemetry_sdk", "pin-project", "serde", + "thiserror 2.0.3", "tokio", ] @@ -2292,6 +2303,7 @@ name = "deno_tls" version = "0.170.0" dependencies = [ "deno_core", + "deno_error", "deno_native_certs", "rustls", "rustls-pemfile", @@ -2344,6 +2356,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_webidl", "thiserror 2.0.3", "urlpattern", @@ -2359,6 +2372,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_permissions", "deno_url", "deno_webidl", @@ -2376,6 +2390,7 @@ name = "deno_webgpu" version = "0.150.0" dependencies = [ "deno_core", + "deno_error", "raw-window-handle", "serde", "thiserror 2.0.3", @@ -2398,6 +2413,7 @@ version = "0.188.0" dependencies = [ "bytes", "deno_core", + "deno_error", "deno_net", "deno_permissions", "deno_tls", @@ -2419,6 +2435,7 @@ name = "deno_webstorage" version = "0.178.0" dependencies = [ "deno_core", + "deno_error", "deno_web", "rusqlite", "thiserror 2.0.3", @@ -4249,6 +4266,23 @@ dependencies = [ "url", ] +[[package]] +name = "import_map" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1215d4d92511fbbdaea50e750e91f2429598ef817f02b579158e92803b52c00a" +dependencies = [ + "boxed_error", + "deno_error", + "indexmap 2.3.0", + "log", + "percent-encoding", + "serde", + "serde_json", + "thiserror 2.0.3", + "url", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -4990,6 +5024,7 @@ dependencies = [ "anyhow", "async-trait", "boxed_error", + "deno_error", "deno_media_type", "deno_package_json", "deno_path_util", @@ -6709,13 +6744,12 @@ dependencies = [ [[package]] name = "serde_v8" version = "0.235.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07afd8b67b4a442ecc2823038473ac0e9e5682de93c213323b60661afdd7eb4" dependencies = [ + "deno_error", "num-bigint", "serde", "smallvec", - "thiserror 1.0.64", + "thiserror 2.0.3", "v8", ] @@ -8489,11 +8523,12 @@ dependencies = [ [[package]] name = "wasm_dep_analyzer" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f270206a91783fd90625c8bb0d8fbd459d0b1d1bf209b656f713f01ae7c04b8" +checksum = "2eeee3bdea6257cc36d756fa745a70f9d393571e47d69e0ed97581676a5369ca" dependencies = [ - "thiserror 1.0.64", + "deno_error", + "thiserror 2.0.3", ] [[package]] @@ -9168,3 +9203,11 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "deno_doc" +version = "0.162.1" + +[[patch.unused]] +name = "v8" +version = "0.89.0" diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 878bc1a6aa76c6..294985369fb48b 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -10,7 +10,7 @@ mod package_json; use deno_ast::MediaType; use deno_ast::SourceMapOption; use deno_cache_dir::file_fetcher::CacheSetting; -use deno_config::deno_json::NodeModulesDirMode; +use deno_config::deno_json::{ConfigFileError, NodeModulesDirMode}; use deno_config::workspace::CreateResolverOptions; use deno_config::workspace::FolderConfigs; use deno_config::workspace::PackageJsonDepResolution; @@ -1098,7 +1098,10 @@ impl CliOptions { pkg_json_dep_resolution, specified_import_map: cli_arg_specified_import_map, }, - |path| std::fs::read_to_string(path).map_err(Box::new), + |path| { + std::fs::read_to_string(path) + .map_err(|e| Box::new(e) as Box) + }, )?) } @@ -1254,7 +1257,7 @@ impl CliOptions { pub fn resolve_ts_config_for_emit( &self, config_type: TsConfigType, - ) -> Result { + ) -> Result { self.workspace().resolve_ts_config_for_emit(config_type) } @@ -1283,7 +1286,7 @@ impl CliOptions { pub fn to_compiler_option_types( &self, - ) -> Result, AnyError> { + ) -> Result, serde_json::Error> { self .workspace() .to_compiler_option_types() diff --git a/cli/build.rs b/cli/build.rs index 7d6ed80fb3a1af..9e9b9b1cb317c5 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -90,12 +90,15 @@ mod ts { // if it comes from an op crate, we were supplied with the path to the // file. let path = if let Some(op_crate_lib) = op_crate_libs.get(lib) { - PathBuf::from(op_crate_lib).canonicalize().map_err(JsNativeError::from_err)? + PathBuf::from(op_crate_lib) + .canonicalize() + .map_err(JsNativeError::from_err)? // otherwise we will generate the path ourself } else { path_dts.join(format!("lib.{lib}.d.ts")) }; - let data = std::fs::read_to_string(path).map_err(JsNativeError::from_err)?; + let data = + std::fs::read_to_string(path).map_err(JsNativeError::from_err)?; Ok(LoadResponse { data, version: "1".to_string(), diff --git a/cli/cache/mod.rs b/cli/cache/mod.rs index dbe9d22eaeb7eb..300c61f39f8e97 100644 --- a/cli/cache/mod.rs +++ b/cli/cache/mod.rs @@ -13,7 +13,6 @@ use deno_ast::MediaType; use deno_cache_dir::file_fetcher::CacheSetting; use deno_cache_dir::file_fetcher::FetchNoFollowErrorKind; use deno_cache_dir::file_fetcher::FileOrRedirect; -use deno_core::error::AnyError; use deno_core::futures; use deno_core::futures::FutureExt; use deno_core::ModuleSpecifier; @@ -313,9 +312,9 @@ impl Loader for FetchCacher { LoaderCacheSetting::Use => None, LoaderCacheSetting::Reload => { if matches!(file_fetcher.cache_setting(), CacheSetting::Only) { - return Err(JsNativeError::generic( + return Err(Arc::new(JsNativeError::generic( "Could not resolve version constraint using only cached data. Try running again without --cached-only" - ).into()); + )).into()); } Some(CacheSetting::ReloadAll) } @@ -381,30 +380,29 @@ impl Loader for FetchCacher { FetchNoFollowErrorKind::CacheSave { .. } | FetchNoFollowErrorKind::UnsupportedScheme { .. } | FetchNoFollowErrorKind::RedirectHeaderParse { .. } | - FetchNoFollowErrorKind::InvalidHeader { .. } => Err(AnyError::from(err)), + FetchNoFollowErrorKind::InvalidHeader { .. } => Err(JsNativeError::from_err(err)), FetchNoFollowErrorKind::NotCached { .. } => { if options.cache_setting == LoaderCacheSetting::Only { Ok(None) } else { - Err(AnyError::from(err)) + Err(JsNativeError::from_err(err)) } }, FetchNoFollowErrorKind::ChecksumIntegrity(err) => { // convert to the equivalent deno_graph error so that it // enhances it if this is passed to deno_graph Err( - deno_graph::source::ChecksumIntegrityError { + JsNativeError::from_err( deno_graph::source::ChecksumIntegrityError { actual: err.actual, expected: err.expected, - } - .into(), + }), ) } } }, - CliFetchNoFollowErrorKind::PermissionCheck(permission_check_error) => Err(AnyError::from(permission_check_error)), + CliFetchNoFollowErrorKind::PermissionCheck(permission_check_error) => Err(JsNativeError::from_err(permission_check_error)), } - }) + }).map_err(|e| Arc::new(e).into()) } .boxed_local() } diff --git a/cli/emit.rs b/cli/emit.rs index 3cd23b7abbcaa6..29f639e6957c23 100644 --- a/cli/emit.rs +++ b/cli/emit.rs @@ -12,7 +12,7 @@ use deno_ast::SourceRanged; use deno_ast::SourceRangedForSpanned; use deno_ast::TranspileModuleOptions; use deno_ast::TranspileResult; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, CoreError, JsNativeError}; use deno_core::futures::stream::FuturesUnordered; use deno_core::futures::FutureExt; use deno_core::futures::StreamExt; @@ -122,7 +122,7 @@ impl Emitter { let transpiled_source = deno_core::unsync::spawn_blocking({ let specifier = specifier.clone(); let source = source.clone(); - move || -> Result<_, AnyError> { + move || { EmitParsedSourceHelper::transpile( &parsed_source_cache, &specifier, @@ -152,7 +152,7 @@ impl Emitter { media_type: MediaType, module_kind: deno_ast::ModuleKind, source: &Arc, - ) -> Result { + ) -> Result { // Note: keep this in sync with the async version above let helper = EmitParsedSourceHelper(self); match helper.pre_emit_parsed_source(specifier, module_kind, source) { @@ -181,7 +181,7 @@ impl Emitter { pub async fn load_and_emit_for_hmr( &self, specifier: &ModuleSpecifier, - ) -> Result { + ) -> Result { let media_type = MediaType::from_specifier(specifier); let source_code = tokio::fs::read_to_string( ModuleSpecifier::to_file_path(specifier).unwrap(), @@ -196,17 +196,21 @@ impl Emitter { let source_arc: Arc = source_code.into(); let parsed_source = self .parsed_source_cache - .remove_or_parse_module(specifier, source_arc, media_type)?; + .remove_or_parse_module(specifier, source_arc, media_type) + .map_err(JsNativeError::from_err)?; // HMR doesn't work with embedded source maps for some reason, so set // the option to not use them (though you should test this out because // this statement is probably wrong) let mut options = self.transpile_and_emit_options.1.clone(); options.source_map = SourceMapOption::None; - let is_cjs = self.cjs_tracker.is_cjs_with_known_is_script( - specifier, - media_type, - parsed_source.compute_is_script(), - )?; + let is_cjs = self + .cjs_tracker + .is_cjs_with_known_is_script( + specifier, + media_type, + parsed_source.compute_is_script(), + ) + .map_err(JsNativeError::from_err)?; let transpiled_source = parsed_source .transpile( &self.transpile_and_emit_options.0, @@ -214,7 +218,8 @@ impl Emitter { module_kind: Some(ModuleKind::from_is_cjs(is_cjs)), }, &options, - )? + ) + .map_err(JsNativeError::from_err)? .into_source(); Ok(transpiled_source.text) } @@ -253,6 +258,19 @@ enum PreEmitResult { NotCached { source_hash: u64 }, } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum EmitParsedSourceHelperError { + #[class(inherit)] + #[error(transparent)] + ParseDiagnostic(#[from] deno_ast::ParseDiagnostic), + #[class(inherit)] + #[error(transparent)] + Transpile(#[from] deno_ast::TranspileError), + #[class(inherit)] + #[error(transparent)] + Other(#[from] JsNativeError), +} + /// Helper to share code between async and sync emit_parsed_source methods. struct EmitParsedSourceHelper<'a>(&'a Emitter); @@ -282,7 +300,7 @@ impl<'a> EmitParsedSourceHelper<'a> { source: Arc, transpile_options: &deno_ast::TranspileOptions, emit_options: &deno_ast::EmitOptions, - ) -> Result { + ) -> Result { // nothing else needs the parsed source at this point, so remove from // the cache in order to not transpile owned let parsed_source = parsed_source_cache @@ -323,7 +341,7 @@ impl<'a> EmitParsedSourceHelper<'a> { // todo(dsherret): this is a temporary measure until we have swc erroring for this fn ensure_no_import_assertion( parsed_source: &deno_ast::ParsedSource, -) -> Result<(), AnyError> { +) -> Result<(), JsNativeError> { fn has_import_assertion(text: &str) -> bool { // good enough text.contains(" assert ") && !text.contains(" with ") @@ -332,7 +350,7 @@ fn ensure_no_import_assertion( fn create_err( parsed_source: &deno_ast::ParsedSource, range: SourceRange, - ) -> AnyError { + ) -> JsNativeError { let text_info = parsed_source.text_info_lazy(); let loc = text_info.line_and_column_display(range.start); let mut msg = "Import assertions are deprecated. Use `with` keyword, instead of 'assert' keyword.".to_string(); @@ -345,7 +363,7 @@ fn ensure_no_import_assertion( loc.line_number, loc.column_number, )); - deno_core::anyhow::anyhow!("{}", msg) + JsNativeError::generic(msg) } let deno_ast::ProgramRef::Module(module) = parsed_source.program_ref() else { diff --git a/cli/graph_util.rs b/cli/graph_util.rs index 14973cf47f1c8d..4cef8f21d53a35 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -32,10 +32,11 @@ use deno_graph::JsrLoadError; use deno_graph::ModuleLoadError; use deno_graph::WorkspaceFastCheckOption; -use deno_core::error::JsNativeError; use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::parking_lot::Mutex; use deno_core::ModuleSpecifier; +use deno_error::JsErrorClass; use deno_graph::source::Loader; use deno_graph::source::ResolveError; use deno_graph::GraphKind; @@ -57,7 +58,6 @@ use std::collections::HashSet; use std::error::Error; use std::path::PathBuf; use std::sync::Arc; -use deno_error::JsErrorClass; #[derive(Clone)] pub struct GraphValidOptions { @@ -1110,7 +1110,9 @@ impl<'a> deno_graph::source::FileSystem for DenoGraphFsAdapter<'a> { } Err(err) => { return vec![DirEntry { - kind: DirEntryKind::Error(deno_graph::source::DirEntryError::Dir(err.into_io_error())), + kind: DirEntryKind::Error(deno_graph::source::DirEntryError::Dir( + err.into_io_error(), + )), url: dir_url.clone(), }]; } diff --git a/cli/http_util.rs b/cli/http_util.rs index 4d62e1376f899a..da64151fde5853 100644 --- a/cli/http_util.rs +++ b/cli/http_util.rs @@ -5,11 +5,11 @@ use crate::version; use boxed_error::Boxed; use deno_cache_dir::file_fetcher::RedirectHeaderParseError; -use deno_core::error::JsNativeError; use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::parking_lot::Mutex; -use deno_core::serde; +use deno_core::{serde, JsError}; use deno_core::serde_json; use deno_core::url::Url; use deno_runtime::deno_fetch; @@ -94,37 +94,49 @@ impl HttpClientProvider { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] +#[class(type)] #[error("Bad response: {:?}{}", .status_code, .response_text.as_ref().map(|s| format!("\n\n{}", s)).unwrap_or_else(String::new))] pub struct BadResponseError { pub status_code: StatusCode, pub response_text: Option, } -#[derive(Debug, Boxed)] +#[derive(Debug, Boxed, JsError)] pub struct DownloadError(pub Box); -#[derive(Debug, Error)] +#[derive(Debug, Error, JsError)] pub enum DownloadErrorKind { + #[class(type)] #[error(transparent)] Fetch(deno_fetch::ClientSendError), + #[class(inherit)] #[error(transparent)] UrlParse(#[from] deno_core::url::ParseError), + #[class(generic)] #[error(transparent)] HttpParse(#[from] http::Error), + #[class(inherit)] #[error(transparent)] Json(#[from] serde_json::Error), + #[class(generic)] #[error(transparent)] ToStr(#[from] http::header::ToStrError), + #[class(inherit)] #[error(transparent)] RedirectHeaderParse(RedirectHeaderParseError), + #[class(type)] #[error("Too many redirects.")] TooManyRedirects, + #[class(inherit)] #[error(transparent)] BadResponse(#[from] BadResponseError), #[class("Http")] #[error("Not Found.")] NotFound, + #[class(inherit)] + #[error(transparent)] + Other(JsNativeError), } #[derive(Debug)] @@ -221,7 +233,7 @@ impl HttpClient { let maybe_bytes = self.download_inner(url, None, None).await?; match maybe_bytes { Some(bytes) => Ok(bytes), - None => Err(DownloadError::NotFound), + None => Err(DownloadErrorKind::NotFound.into_box()), } } @@ -285,7 +297,7 @@ impl HttpClient { get_response_body_with_progress(response, progress_guard) .await .map(|(_, body)| Some(body)) - .map_err(|err| DownloadErrorKind::Fetch(err).into_box()) + .map_err(|err| DownloadErrorKind::Other(err).into_box()) } async fn get_redirected_response( diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index 42ad880f5b80b7..f4f4cfbc167b1e 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -20,8 +20,8 @@ use deno_lint::diagnostic::LintDiagnosticRange; use deno_ast::SourceRange; use deno_ast::SourceRangedForSpanned; use deno_ast::SourceTextInfo; -use deno_core::error::JsNativeError; use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; use deno_core::serde_json; @@ -1053,10 +1053,13 @@ impl CodeActionCollection { // we wrap tsc, we can't handle the asynchronous response, so it is // actually easier to return errors if we ever encounter one of these, // which we really wouldn't expect from the Deno lsp. - return Err(JsNativeError::new( - "UnsupportedFix", - "The action returned from TypeScript is unsupported.", - ).into()); + return Err( + JsNativeError::new( + "UnsupportedFix", + "The action returned from TypeScript is unsupported.", + ) + .into(), + ); } let Some(action) = fix_ts_import_action(specifier, resolution_mode, action, language_server) diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index 7a919a43059723..5a5cb720e331a6 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -1576,7 +1576,7 @@ impl ConfigData { pkg_json_dep_resolution, specified_import_map, }, - |path| std::fs::read_to_string(path).map_err(Box::new), + |path| std::fs::read_to_string(path).map_err(|e| Box::new(e) as _), ) .inspect_err(|err| { lsp_warn!( diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index 7548a66fd26de0..bdd325819b0ee2 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -19,8 +19,8 @@ use deno_ast::swc::visit::VisitWith; use deno_ast::MediaType; use deno_ast::ParsedSource; use deno_ast::SourceTextInfo; -use deno_core::error::JsNativeError; use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::futures::future; use deno_core::futures::future::Shared; use deno_core::futures::FutureExt; diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 096901f0637423..211f76af8af2aa 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -5,7 +5,7 @@ use deno_cache_dir::file_fetcher::CacheSetting; use deno_config::workspace::WorkspaceDirectory; use deno_config::workspace::WorkspaceDiscoverOptions; use deno_core::anyhow::anyhow; -use deno_core::error::{AnyError}; +use deno_core::error::AnyError; use deno_core::resolve_url; use deno_core::serde_json; use deno_core::serde_json::json; @@ -120,7 +120,9 @@ use crate::util::sync::AsyncFlag; struct LspRootCertStoreProvider(RootCertStore); impl RootCertStoreProvider for LspRootCertStoreProvider { - fn get_or_try_init(&self) -> Result<&RootCertStore, deno_core::error::JsNativeError> { + fn get_or_try_init( + &self, + ) -> Result<&RootCertStore, deno_core::error::JsNativeError> { Ok(&self.0) } } diff --git a/cli/lsp/text.rs b/cli/lsp/text.rs index 535b0988257d1c..938b73f377baea 100644 --- a/cli/lsp/text.rs +++ b/cli/lsp/text.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::JsNativeError; use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use dissimilar::diff; use dissimilar::Chunk; use std::collections::HashMap; @@ -136,7 +136,10 @@ impl LineIndex { if let Some(line_offset) = self.utf8_offsets.get(position.line as usize) { Ok(line_offset + col) } else { - Err(JsNativeError::new("OutOfRange", "The position is out of range.").into()) + Err( + JsNativeError::new("OutOfRange", "The position is out of range.") + .into(), + ) } } @@ -156,7 +159,10 @@ impl LineIndex { if let Some(line_offset) = self.utf16_offsets.get(position.line as usize) { Ok(line_offset + TextSize::from(position.character)) } else { - Err(JsNativeError::new("OutOfRange", "The position is out of range.").into()) + Err( + JsNativeError::new("OutOfRange", "The position is out of range.") + .into(), + ) } } diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index b9e64a93fa7da6..8af9b90e6a404d 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -5405,7 +5405,8 @@ impl TscRequest { fn to_server_request<'s>( &self, scope: &mut v8::HandleScope<'s>, - ) -> Result<(&'static str, Option>), serde_v8::Error> { + ) -> Result<(&'static str, Option>), serde_v8::Error> + { let args = match self { TscRequest::GetDiagnostics(args) => { ("$getDiagnostics", Some(serde_v8::to_v8(scope, args)?)) diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 04c000cdb425a1..b989427460edd9 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -45,9 +45,9 @@ use deno_ast::MediaType; use deno_ast::ModuleKind; use deno_core::anyhow::anyhow; use deno_core::anyhow::Context; -use deno_core::error::{JsNativeError}; -use deno_core::error::{ModuleLoaderError}; use deno_core::error::AnyError; +use deno_core::error::JsNativeError; +use deno_core::error::ModuleLoaderError; use deno_core::futures::future::FutureExt; use deno_core::futures::Future; use deno_core::parking_lot::Mutex; @@ -534,18 +534,28 @@ impl let specifier = match resolution { Resolution::Ok(resolved) => Cow::Borrowed(&resolved.specifier), Resolution::Err(err) => { - return Err(JsNativeError::type_error( - format!("{}\n", err.to_string_with_range()), - ).into()); + return Err( + JsNativeError::type_error(format!( + "{}\n", + err.to_string_with_range() + )) + .into(), + ); } - Resolution::None => Cow::Owned(self.shared.resolver.resolve( - raw_specifier, - referrer, - deno_graph::Position::zeroed(), - // if we're here, that means it's resolving a dynamic import - ResolutionMode::Import, - NodeResolutionKind::Execution, - ).map_err(JsNativeError::from_err)?), + Resolution::None => Cow::Owned( + self + .shared + .resolver + .resolve( + raw_specifier, + referrer, + deno_graph::Position::zeroed(), + // if we're here, that means it's resolving a dynamic import + ResolutionMode::Import, + NodeResolutionKind::Execution, + ) + .map_err(JsNativeError::from_err)?, + ), }; if self.shared.is_repl { @@ -571,7 +581,8 @@ impl .npm_resolver .as_managed() .unwrap() // byonm won't create a Module::Npm - .resolve_pkg_folder_from_deno_module(module.nv_reference.nv()).map_err(JsNativeError::from_err)?; + .resolve_pkg_folder_from_deno_module(module.nv_reference.nv()) + .map_err(JsNativeError::from_err)?; self .shared .node_resolver @@ -1102,7 +1113,8 @@ impl NodeRequireLoader &self, permissions: &mut dyn deno_runtime::deno_node::NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> + { if let Ok(url) = deno_path_util::url_from_file_path(path) { // allow reading if it's in the module graph if self.graph_container.graph().get(&url).is_some() { @@ -1118,9 +1130,13 @@ impl NodeRequireLoader ) -> Result, JsNativeError> { // todo(dsherret): use the preloaded module from the graph if available? let media_type = MediaType::from_path(path); - let text = self.fs.read_text_file_lossy_sync(path, None).map_err(JsNativeError::from_err)?; + let text = self + .fs + .read_text_file_lossy_sync(path, None) + .map_err(JsNativeError::from_err)?; if media_type.is_emittable() { - let specifier = deno_path_util::url_from_file_path(path).map_err(JsNativeError::from_err)?; + let specifier = deno_path_util::url_from_file_path(path) + .map_err(JsNativeError::from_err)?; if self.in_npm_pkg_checker.in_npm_package(&specifier) { return Err( NotSupportedKindInNpmError { @@ -1142,6 +1158,7 @@ impl NodeRequireLoader &text.into(), ) .map(Cow::Owned) + .map_err(JsNativeError::from_err) } else { Ok(text) } diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index e3983a98e6ca29..11c9d87a083f25 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -79,7 +79,8 @@ impl CliNpmResolver for CliByonmNpmResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> + { if !path .components() .any(|c| c.as_os_str().to_ascii_lowercase() == "node_modules") diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 7ce1316436d7e6..3eb8b9dbdd36b6 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -8,8 +8,8 @@ use std::sync::Arc; use deno_ast::ModuleSpecifier; use deno_cache_dir::npm::NpmCacheDir; use deno_core::anyhow::Context; -use deno_core::error::{AnyError}; -use deno_core::error::{JsNativeError}; +use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::serde_json; use deno_core::url::Url; use deno_npm::npm_rc::ResolvedNpmRc; @@ -333,7 +333,9 @@ impl std::fmt::Debug for ManagedCliNpmResolver { pub enum ResolvePkgFolderFromPkgIdError { #[class(inherit)] #[error("{0}")] - NpmPackageFsResolverPackageFolder(#[from] resolvers::NpmPackageFsResolverPackageFolderError), + NpmPackageFsResolverPackageFolder( + #[from] resolvers::NpmPackageFsResolverPackageFolderError, + ), #[class(inherit)] #[error("{0}")] Io(#[from] std::io::Error), @@ -714,9 +716,9 @@ impl CliNpmReqResolver for ManagedCliNpmResolver { req: &PackageReq, _referrer: &ModuleSpecifier, ) -> Result { - let pkg_id = self - .resolve_pkg_id_from_pkg_req(req) - .map_err(|err| ResolvePkgFolderFromDenoReqError::Managed(Box::new(err)))?; + let pkg_id = self.resolve_pkg_id_from_pkg_req(req).map_err(|err| { + ResolvePkgFolderFromDenoReqError::Managed(Box::new(err)) + })?; self .resolve_pkg_folder_from_pkg_id(&pkg_id) .map_err(|err| ResolvePkgFolderFromDenoReqError::Managed(Box::new(err))) @@ -785,7 +787,8 @@ impl CliNpmResolver for ManagedCliNpmResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> + { self.fs_resolver.ensure_read_permission(permissions, path) } diff --git a/cli/npm/managed/resolvers/common.rs b/cli/npm/managed/resolvers/common.rs index c802834b0c336b..f54c86db3038f0 100644 --- a/cli/npm/managed/resolvers/common.rs +++ b/cli/npm/managed/resolvers/common.rs @@ -93,7 +93,8 @@ impl RegistryReadPermissionChecker { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> + { if permissions.query_read_all() { return Ok(Cow::Borrowed(path)); // skip permissions checks below } diff --git a/cli/npm/managed/resolvers/common/bin_entries.rs b/cli/npm/managed/resolvers/common/bin_entries.rs index e4a1845689c155..45bcf626214e5c 100644 --- a/cli/npm/managed/resolvers/common/bin_entries.rs +++ b/cli/npm/managed/resolvers/common/bin_entries.rs @@ -2,7 +2,6 @@ use crate::npm::managed::NpmResolutionPackage; use deno_core::anyhow::Context; -use deno_core::error::AnyError; use deno_npm::resolution::NpmResolutionSnapshot; use deno_npm::NpmPackageId; use std::collections::HashMap; @@ -46,6 +45,45 @@ pub fn warn_missing_entrypoint( ); } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum BinEntriesError { + #[class(inherit)] + #[error("Creating '{path}'")] + Creating { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error("Setting permissions on '{path}'")] + Permissions { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class("Can't set up '{name}' bin at {path}")] + #[error(transparent)] + SetUpBin { + name: String, + path: PathBuf, + #[source] + source: Box, + }, + #[class(inherit)] + #[error("Setting permissions on '{path}'")] + RemoveBinSymlink { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error(transparent)] + Io(#[from] std::io::Error), +} + impl<'a> BinEntries<'a> { pub fn new() -> Self { Self::default() @@ -88,15 +126,15 @@ impl<'a> BinEntries<'a> { mut already_seen: impl FnMut( &Path, &str, // bin script - ) -> Result<(), AnyError>, + ) -> Result<(), BinEntriesError>, mut new: impl FnMut( &NpmResolutionPackage, &Path, &str, // bin name &str, // bin script - ) -> Result<(), AnyError>, + ) -> Result<(), BinEntriesError>, mut filter: impl FnMut(&NpmResolutionPackage) -> bool, - ) -> Result<(), AnyError> { + ) -> Result<(), BinEntriesError> { if !self.collisions.is_empty() && !self.sorted { // walking the dependency tree to find out the depth of each package // is sort of expensive, so we only do it if there's a collision @@ -164,11 +202,9 @@ impl<'a> BinEntries<'a> { bin_node_modules_dir_path: &Path, filter: impl FnMut(&NpmResolutionPackage) -> bool, mut handler: impl FnMut(&EntrySetupOutcome<'_>), - ) -> Result<(), AnyError> { + ) -> Result<(), BinEntriesError> { if !self.entries.is_empty() && !bin_node_modules_dir_path.exists() { - std::fs::create_dir_all(bin_node_modules_dir_path).with_context( - || format!("Creating '{}'", bin_node_modules_dir_path.display()), - )?; + std::fs::create_dir_all(bin_node_modules_dir_path).map_err(|source| BinEntriesError::Creating { path: bin_node_modules_dir_path.to_path_buf(), source })?; } self.for_each_entry( @@ -205,7 +241,7 @@ impl<'a> BinEntries<'a> { snapshot: &NpmResolutionSnapshot, bin_node_modules_dir_path: &Path, handler: impl FnMut(&EntrySetupOutcome<'_>), - ) -> Result<(), AnyError> { + ) -> Result<(), BinEntriesError> { self.set_up_entries_filtered( snapshot, bin_node_modules_dir_path, @@ -222,7 +258,7 @@ impl<'a> BinEntries<'a> { bin_node_modules_dir_path: &Path, handler: impl FnMut(&EntrySetupOutcome<'_>), only: &HashSet<&NpmPackageId>, - ) -> Result<(), AnyError> { + ) -> Result<(), BinEntriesError> { self.set_up_entries_filtered( snapshot, bin_node_modules_dir_path, @@ -297,7 +333,7 @@ pub fn set_up_bin_entry<'a>( #[allow(unused_variables)] bin_script: &str, #[allow(unused_variables)] package_path: &'a Path, bin_node_modules_dir_path: &Path, -) -> Result, AnyError> { +) -> Result, BinEntriesError> { #[cfg(windows)] { set_up_bin_shim(package, bin_name, bin_node_modules_dir_path)?; @@ -320,7 +356,7 @@ fn set_up_bin_shim( package: &NpmResolutionPackage, bin_name: &str, bin_node_modules_dir_path: &Path, -) -> Result<(), AnyError> { +) -> Result<(), BinEntriesError> { use std::fs; let mut cmd_shim = bin_node_modules_dir_path.join(bin_name); @@ -336,7 +372,7 @@ fn set_up_bin_shim( #[cfg(unix)] /// Make the file at `path` executable if it exists. /// Returns `true` if the file exists, `false` otherwise. -fn make_executable_if_exists(path: &Path) -> Result { +fn make_executable_if_exists(path: &Path) -> Result { use std::io; use std::os::unix::fs::PermissionsExt; let mut perms = match std::fs::metadata(path) { @@ -351,8 +387,9 @@ fn make_executable_if_exists(path: &Path) -> Result { if perms.mode() & 0o111 == 0 { // if the original file is not executable, make it executable perms.set_mode(perms.mode() | 0o111); - std::fs::set_permissions(path, perms).with_context(|| { - format!("Setting permissions on '{}'", path.display()) + std::fs::set_permissions(path, perms).map_err(|source| BinEntriesError::Permissions { + path: path.to_path_buf(), + source, })?; } @@ -391,14 +428,18 @@ fn symlink_bin_entry<'a>( bin_script: &str, package_path: &'a Path, bin_node_modules_dir_path: &Path, -) -> Result, AnyError> { +) -> Result, BinEntriesError> { use std::io; use std::os::unix::fs::symlink; let link = bin_node_modules_dir_path.join(bin_name); let original = package_path.join(bin_script); - let found = make_executable_if_exists(&original).with_context(|| { - format!("Can't set up '{}' bin at {}", bin_name, original.display()) + let found = make_executable_if_exists(&original).map_err(|source| { + BinEntriesError::SetUpBin { + name: bin_name.to_string(), + path: original.to_path_buf(), + source: Box::new(source), + } })?; if !found { return Ok(EntrySetupOutcome::MissingEntrypoint { @@ -416,27 +457,21 @@ fn symlink_bin_entry<'a>( if let Err(err) = symlink(&original_relative, &link) { if err.kind() == io::ErrorKind::AlreadyExists { // remove and retry - std::fs::remove_file(&link).with_context(|| { - format!( - "Failed to remove existing bin symlink at {}", - link.display() - ) + std::fs::remove_file(&link).map_err(|source| BinEntriesError::RemoveBinSymlink { + path: link.clone(), + source, })?; - symlink(&original_relative, &link).with_context(|| { - format!( - "Can't set up '{}' bin at {}", - bin_name, - original_relative.display() - ) + symlink(&original_relative, &link).map_err(|source| BinEntriesError::SetUpBin { + name: bin_name.to_string(), + path: original_relative.to_path_buf(), + source: Box::new(source.into()), })?; return Ok(EntrySetupOutcome::Success); } - return Err(err).with_context(|| { - format!( - "Can't set up '{}' bin at {}", - bin_name, - original_relative.display() - ) + return Err(BinEntriesError::SetUpBin { + name: bin_name.to_string(), + path: original_relative.to_path_buf(), + source: Box::new(err.into()), }); } diff --git a/cli/npm/managed/resolvers/common/lifecycle_scripts.rs b/cli/npm/managed/resolvers/common/lifecycle_scripts.rs index 958c4bcd195b11..67fb0d37c24ee9 100644 --- a/cli/npm/managed/resolvers/common/lifecycle_scripts.rs +++ b/cli/npm/managed/resolvers/common/lifecycle_scripts.rs @@ -17,7 +17,7 @@ use std::rc::Rc; use std::path::Path; use std::path::PathBuf; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, JsNativeError}; use deno_npm::NpmResolutionPackage; pub trait LifecycleScriptsStrategy { @@ -29,7 +29,7 @@ pub trait LifecycleScriptsStrategy { fn warn_on_scripts_not_run( &self, packages: &[(&NpmResolutionPackage, PathBuf)], - ) -> Result<(), AnyError>; + ) -> Result<(), std::io::Error>; fn has_warned(&self, package: &NpmResolutionPackage) -> bool; @@ -141,7 +141,7 @@ impl<'a> LifecycleScripts<'a> { } } - pub fn warn_not_run_scripts(&self) -> Result<(), AnyError> { + pub fn warn_not_run_scripts(&self) -> Result<(), std::io::Error> { if !self.packages_with_scripts_not_run.is_empty() { self .strategy @@ -198,7 +198,7 @@ impl<'a> LifecycleScripts<'a> { snapshot, packages, get_package_path, - )?; + ); let init_cwd = &self.config.initial_cwd; let process_state = crate::npm::managed::npm_process_state( snapshot.as_valid_serialized(), @@ -240,7 +240,7 @@ impl<'a> LifecycleScripts<'a> { package, snapshot, get_package_path, - )?; + ); for script_name in ["preinstall", "install", "postinstall"] { if let Some(script) = package.scripts.get(script_name) { if script_name == "install" @@ -349,7 +349,7 @@ fn resolve_baseline_custom_commands<'a>( snapshot: &'a NpmResolutionSnapshot, packages: &'a [NpmResolutionPackage], get_package_path: impl Fn(&NpmResolutionPackage) -> PathBuf, -) -> Result { +) -> crate::task_runner::TaskCustomCommands { let mut custom_commands = crate::task_runner::TaskCustomCommands::new(); custom_commands .insert("npx".to_string(), Rc::new(crate::task_runner::NpxCommand)); @@ -390,7 +390,7 @@ fn resolve_custom_commands_from_packages< snapshot: &'a NpmResolutionSnapshot, packages: P, get_package_path: impl Fn(&'a NpmResolutionPackage) -> PathBuf, -) -> Result { +) -> crate::task_runner::TaskCustomCommands { for package in packages { let package_path = get_package_path(package); @@ -409,7 +409,7 @@ fn resolve_custom_commands_from_packages< ); } - Ok(commands) + commands } // resolves the custom commands from the dependencies of a package @@ -420,7 +420,7 @@ fn resolve_custom_commands_from_deps( package: &NpmResolutionPackage, snapshot: &NpmResolutionSnapshot, get_package_path: impl Fn(&NpmResolutionPackage) -> PathBuf, -) -> Result { +) -> crate::task_runner::TaskCustomCommands { let mut bin_entries = BinEntries::new(); resolve_custom_commands_from_packages( &mut bin_entries, diff --git a/cli/npm/managed/resolvers/global.rs b/cli/npm/managed/resolvers/global.rs index 4b5b6f24e48abe..c0229274f4d7f3 100644 --- a/cli/npm/managed/resolvers/global.rs +++ b/cli/npm/managed/resolvers/global.rs @@ -192,7 +192,8 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> + { self .registry_read_permission_checker .ensure_registry_read_permission(permissions, path) @@ -235,7 +236,7 @@ impl<'a> super::common::lifecycle_scripts::LifecycleScriptsStrategy fn warn_on_scripts_not_run( &self, packages: &[(&NpmResolutionPackage, PathBuf)], - ) -> std::result::Result<(), deno_core::anyhow::Error> { + ) -> std::result::Result<(), std::io::Error> { log::warn!("{} The following packages contained npm lifecycle scripts ({}) that were not executed:", colors::yellow("Warning"), colors::gray("preinstall/install/postinstall")); for (package, _) in packages { log::warn!("┠─ {}", colors::gray(format!("npm:{}", package.id.nv))); diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index 9eab3bc2c9363a..7baab4c0677e0a 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -23,8 +23,7 @@ use crate::npm::CliNpmTarballCache; use async_trait::async_trait; use deno_ast::ModuleSpecifier; use deno_cache_dir::npm::mixed_case_package_name_decode; -use deno_core::anyhow::Context; -use deno_core::error::{AnyError, JsNativeError}; +use deno_core::error::JsNativeError; use deno_core::futures::stream::FuturesUnordered; use deno_core::futures::StreamExt; use deno_core::parking_lot::Mutex; @@ -257,7 +256,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { async fn cache_packages<'a>( &self, caching: PackageCaching<'a>, - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { let snapshot = match caching { PackageCaching::All => self.resolution.snapshot(), PackageCaching::Only(reqs) => self.resolution.subset(&reqs), @@ -273,13 +272,15 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { &self.lifecycle_scripts, ) .await + .map_err(JsNativeError::from_err) } fn ensure_read_permission<'a>( &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError> { + ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> + { self .registry_read_permission_checker .ensure_registry_read_permission(permissions, path) @@ -301,6 +302,27 @@ fn local_node_modules_package_contents_path( .join(&package.id.nv.name) } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum SyncResolutionWithFsError { + #[class(inherit)] + #[error("Creating '{path}'")] + Creating { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error(transparent)] + CopyDirRecursive(#[from] crate::util::fs::CopyDirRecursiveError), + #[class(inherit)] + #[error(transparent)] + SymlinkPackageDir(#[from] SymlinkPackageDirError), + #[class(inherit)] + #[error(transparent)] + Io(#[from] std::io::Error), +} + /// Creates a pnpm style folder structure. #[allow(clippy::too_many_arguments)] async fn sync_resolution_with_fs( @@ -312,7 +334,7 @@ async fn sync_resolution_with_fs( root_node_modules_dir_path: &Path, system_info: &NpmSystemInfo, lifecycle_scripts: &LifecycleScriptsConfig, -) -> Result<(), JsNativeError> { +) -> Result<(), SyncResolutionWithFsError> { if snapshot.is_empty() && npm_install_deps_provider.workspace_pkgs().is_empty() { @@ -327,12 +349,18 @@ async fn sync_resolution_with_fs( let deno_local_registry_dir = root_node_modules_dir_path.join(".deno"); let deno_node_modules_dir = deno_local_registry_dir.join("node_modules"); - fs::create_dir_all(&deno_node_modules_dir).with_context(|| { - format!("Creating '{}'", deno_local_registry_dir.display()) + fs::create_dir_all(&deno_node_modules_dir).map_err(|source| { + SyncResolutionWithFsError::Creating { + path: deno_local_registry_dir.to_path_buf(), + source, + } })?; let bin_node_modules_dir_path = root_node_modules_dir_path.join(".bin"); - fs::create_dir_all(&bin_node_modules_dir_path).with_context(|| { - format!("Creating '{}'", bin_node_modules_dir_path.display()) + fs::create_dir_all(&bin_node_modules_dir_path).map_err(|source| { + SyncResolutionWithFsError::Creating { + path: deno_local_registry_dir.to_path_buf(), + source, + } })?; let single_process_lock = LaxSingleProcessFsFlag::lock( @@ -441,7 +469,7 @@ async fn sync_resolution_with_fs( // write out a file that indicates this folder has been initialized fs::write(initialized_file, tags)?; - Ok::<_, AnyError>(()) + Ok::<_, SyncResolutionWithFsError>(()) } }) .await??; @@ -458,7 +486,7 @@ async fn sync_resolution_with_fs( // finally stop showing the progress bar drop(pb_guard); // explicit for clarity - Ok::<_, AnyError>(()) + Ok::<_, SyncResolutionWithFsError>(()) }); } else if matches!(package_state, PackageFolderState::TagsOutdated) { fs::write(initialized_file, tags)?; @@ -593,8 +621,11 @@ async fn sync_resolution_with_fs( // symlink the dep into the package's child node_modules folder let dest_node_modules = remote.base_dir.join("node_modules"); if !existing_child_node_modules_dirs.contains(&dest_node_modules) { - fs::create_dir_all(&dest_node_modules).with_context(|| { - format!("Creating '{}'", dest_node_modules.display()) + fs::create_dir_all(&dest_node_modules).map_err(|source| { + SyncResolutionWithFsError::Creating { + path: dest_node_modules.clone(), + source, + } })?; existing_child_node_modules_dirs.insert(dest_node_modules.clone()); } @@ -817,7 +848,7 @@ impl<'a> super::common::lifecycle_scripts::LifecycleScriptsStrategy fn warn_on_scripts_not_run( &self, packages: &[(&NpmResolutionPackage, std::path::PathBuf)], - ) -> Result<(), AnyError> { + ) -> Result<(), std::io::Error> { if !packages.is_empty() { log::warn!("{} The following packages contained npm lifecycle scripts ({}) that were not executed:", colors::yellow("Warning"), colors::gray("preinstall/install/postinstall")); @@ -1031,15 +1062,34 @@ fn get_package_folder_id_from_folder_name( }) } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum SymlinkPackageDirError { + #[class(inherit)] + #[error("Creating '{parent}'")] + Creating { + parent: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error(transparent)] + Other(#[from] std::io::Error), +} + fn symlink_package_dir( old_path: &Path, new_path: &Path, -) -> Result<(), AnyError> { +) -> Result<(), SymlinkPackageDirError> { let new_parent = new_path.parent().unwrap(); if new_parent.file_name().unwrap() != "node_modules" { // create the parent folder that will contain the symlink - fs::create_dir_all(new_parent) - .with_context(|| format!("Creating '{}'", new_parent.display()))?; + fs::create_dir_all(new_parent).map_err(|source| { + SymlinkPackageDirError::Creating { + parent: new_parent.to_path_buf(), + source, + } + })?; } // need to delete the previous symlink before creating a new one diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index 35b36482bab4e5..2a5d410d039ef3 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -29,8 +29,7 @@ use node_resolver::InNpmPackageChecker; use node_resolver::NpmPackageFolderResolver; use crate::file_fetcher::CliFileFetcher; -use crate::http_util::{DownloadError}; -use crate::http_util::{HttpClientProvider}; +use crate::http_util::HttpClientProvider; use crate::util::fs::atomic_write_file_with_retries_and_fs; use crate::util::fs::hard_link_dir_recursive; use crate::util::fs::AtomicWriteFileFsAdapter; @@ -43,8 +42,6 @@ pub use self::managed::CliManagedNpmResolverCreateOptions; pub use self::managed::CliNpmResolverManagedSnapshotOption; pub use self::managed::ManagedCliNpmResolver; pub use self::managed::PackageCaching; -pub use self::managed::ResolvePkgFolderFromPkgIdError; -pub use self::managed::ResolvePkgFolderFromDenoModuleError; pub type CliNpmTarballCache = deno_npm_cache::TarballCache; pub type CliNpmCache = deno_npm_cache::NpmCache; @@ -127,7 +124,8 @@ impl deno_npm_cache::NpmCacheEnv for CliNpmCacheEnv { | ToStr { .. } | RedirectHeaderParse { .. } | TooManyRedirects - | NotFound => None, + | NotFound + | Other(_) => None, BadResponse(bad_response_error) => { Some(bad_response_error.status_code) } diff --git a/cli/resolver.rs b/cli/resolver.rs index cf2da80cabb302..73513fb1af9db5 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -7,8 +7,8 @@ use deno_ast::MediaType; use deno_config::workspace::MappedResolutionDiagnostic; use deno_config::workspace::MappedResolutionError; use deno_core::anyhow::Context; -use deno_core::error::{AnyError}; -use deno_core::error::{JsNativeError}; +use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::url::Url; use deno_core::ModuleSourceCode; use deno_core::ModuleSpecifier; @@ -270,7 +270,9 @@ impl CliResolver { ) => match mapped_resolution_error { MappedResolutionError::Specifier(e) => ResolveError::Specifier(e), // deno_graph checks specifically for an ImportMapError - MappedResolutionError::ImportMap(e) => ResolveError::Other(Box::new(e)), + MappedResolutionError::ImportMap(e) => { + ResolveError::Other(Box::new(e)) + } err => ResolveError::Other(Box::new(err)), }, err => ResolveError::Other(Box::new(err)), @@ -413,13 +415,17 @@ impl<'a> deno_graph::source::NpmResolver for WorkerCliNpmGraphResolver<'a> { }) .collect(), dep_graph_result: match top_level_result { - Ok(()) => result.dependencies_result.map_err(|e| Arc::new(e) as Arc), + Ok(()) => result + .dependencies_result + .map_err(|e| Arc::new(e) as Arc), Err(err) => Err(Arc::new(err)), }, } } None => { - let err = Arc::new(JsNativeError::generic("npm specifiers were requested; but --no-npm is specified")); + let err = Arc::new(JsNativeError::generic( + "npm specifiers were requested; but --no-npm is specified", + )); NpmResolvePkgReqsResult { results: package_reqs .iter() diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index a1cf2de9307ad2..bcf92e334039eb 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -16,9 +16,9 @@ use deno_config::workspace::MappedResolutionError; use deno_config::workspace::ResolverWorkspaceJsrPackage; use deno_config::workspace::WorkspaceResolver; use deno_core::anyhow::Context; -use deno_core::error::ModuleLoaderError; -use deno_core::error::JsNativeError; use deno_core::error::AnyError; +use deno_core::error::JsNativeError; +use deno_core::error::ModuleLoaderError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; use deno_core::v8_set_flags; @@ -177,22 +177,29 @@ impl ModuleLoader for EmbeddedModuleLoader { ) -> Result { let referrer = if referrer == "." { if kind != ResolutionKind::MainModule { - return Err(JsNativeError::generic(format!( - "Expected to resolve main module, got {:?} instead.", - kind - )).into()); + return Err( + JsNativeError::generic(format!( + "Expected to resolve main module, got {:?} instead.", + kind + )) + .into(), + ); } let current_dir = std::env::current_dir().unwrap(); deno_core::resolve_path(".", ¤t_dir)? } else { ModuleSpecifier::parse(referrer).map_err(|err| { - JsNativeError::type_error(format!("Referrer uses invalid specifier: {}", err)) + JsNativeError::type_error(format!( + "Referrer uses invalid specifier: {}", + err + )) })? }; let referrer_kind = if self .shared .cjs_tracker - .is_maybe_cjs(&referrer, MediaType::from_specifier(&referrer)).map_err(JsNativeError::from_err)? + .is_maybe_cjs(&referrer, MediaType::from_specifier(&referrer)) + .map_err(JsNativeError::from_err)? { ResolutionMode::Require } else { @@ -209,7 +216,8 @@ impl ModuleLoader for EmbeddedModuleLoader { &referrer, referrer_kind, NodeResolutionKind::Execution, - ).map_err(JsNativeError::from_err)? + ) + .map_err(JsNativeError::from_err)? .into_url(), ); } @@ -237,14 +245,18 @@ impl ModuleLoader for EmbeddedModuleLoader { Some(&referrer), referrer_kind, NodeResolutionKind::Execution, - ).map_err(JsNativeError::from_err)?, + ) + .map_err(JsNativeError::from_err)?, ), Ok(MappedResolution::PackageJson { dep_result, sub_path, alias, .. - }) => match dep_result.as_ref().map_err(|e| JsNativeError::from_err(e.clone()))? { + }) => match dep_result + .as_ref() + .map_err(|e| JsNativeError::from_err(e.clone()))? + { PackageJsonDepValue::Req(req) => self .shared .npm_req_resolver @@ -263,7 +275,8 @@ impl ModuleLoader for EmbeddedModuleLoader { .resolve_workspace_pkg_json_folder_for_pkg_json_dep( alias, version_req, - ).map_err(JsNativeError::from_err)?; + ) + .map_err(JsNativeError::from_err)?; Ok( self .shared @@ -274,7 +287,8 @@ impl ModuleLoader for EmbeddedModuleLoader { Some(&referrer), referrer_kind, NodeResolutionKind::Execution, - ).map_err(JsNativeError::from_err)?, + ) + .map_err(JsNativeError::from_err)?, ) } }, @@ -283,12 +297,18 @@ impl ModuleLoader for EmbeddedModuleLoader { if let Ok(reference) = NpmPackageReqReference::from_specifier(&specifier) { - return Ok(self.shared.npm_req_resolver.resolve_req_reference( - &reference, - &referrer, - referrer_kind, - NodeResolutionKind::Execution, - ).map_err(JsNativeError::from_err)?); + return Ok( + self + .shared + .npm_req_resolver + .resolve_req_reference( + &reference, + &referrer, + referrer_kind, + NodeResolutionKind::Execution, + ) + .map_err(JsNativeError::from_err)?, + ); } if specifier.scheme() == "jsr" { @@ -310,18 +330,22 @@ impl ModuleLoader for EmbeddedModuleLoader { Err(err) if err.is_unmapped_bare_specifier() && referrer.scheme() == "file" => { - let maybe_res = self.shared.npm_req_resolver.resolve_if_for_npm_pkg( - raw_specifier, - &referrer, - referrer_kind, - NodeResolutionKind::Execution, - ).map_err(JsNativeError::from_err)?; + let maybe_res = self + .shared + .npm_req_resolver + .resolve_if_for_npm_pkg( + raw_specifier, + &referrer, + referrer_kind, + NodeResolutionKind::Execution, + ) + .map_err(JsNativeError::from_err)?; if let Some(res) = maybe_res { return Ok(res.into_url()); } - Err(err.into()) + Err(JsNativeError::from_err(err).into()) } - Err(err) => Err(err.into()), + Err(err) => Err(JsNativeError::from_err(err).into()), } } @@ -352,9 +376,9 @@ impl ModuleLoader for EmbeddedModuleLoader { { Ok(response) => response, Err(err) => { - return deno_core::ModuleLoadResponse::Sync(Err(JsNativeError::type_error( - format!("{:#}", err), - ).into())); + return deno_core::ModuleLoadResponse::Sync(Err( + JsNativeError::type_error(format!("{:#}", err)).into(), + )); } }; return deno_core::ModuleLoadResponse::Sync(Ok( @@ -408,9 +432,9 @@ impl ModuleLoader for EmbeddedModuleLoader { { Ok(is_maybe_cjs) => is_maybe_cjs, Err(err) => { - return deno_core::ModuleLoadResponse::Sync(Err(JsNativeError::type_error( - format!("{:?}", err), - ).into())); + return deno_core::ModuleLoadResponse::Sync(Err( + JsNativeError::type_error(format!("{:?}", err)).into(), + )); } }; if is_maybe_cjs { @@ -470,12 +494,16 @@ impl ModuleLoader for EmbeddedModuleLoader { )) } } - Ok(None) => deno_core::ModuleLoadResponse::Sync(Err(JsNativeError::type_error( - format!("{MODULE_NOT_FOUND}: {}", original_specifier), - ).into())), - Err(err) => deno_core::ModuleLoadResponse::Sync(Err(JsNativeError::type_error( - format!("{:?}", err), - ).into())), + Ok(None) => deno_core::ModuleLoadResponse::Sync(Err( + JsNativeError::type_error(format!( + "{MODULE_NOT_FOUND}: {}", + original_specifier + )) + .into(), + )), + Err(err) => deno_core::ModuleLoadResponse::Sync(Err( + JsNativeError::type_error(format!("{:?}", err)).into(), + )), } } @@ -502,7 +530,10 @@ impl NodeRequireLoader for EmbeddedModuleLoader { &self, permissions: &mut dyn deno_runtime::deno_node::NodePermissions, path: &'a std::path::Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> { + ) -> Result< + Cow<'a, std::path::Path>, + deno_runtime::deno_permissions::PermissionCheckError, + > { if self.shared.modules.has_file(path) { // allow reading if the file is in the snapshot return Ok(Cow::Borrowed(path)); @@ -518,11 +549,16 @@ impl NodeRequireLoader for EmbeddedModuleLoader { &self, path: &std::path::Path, ) -> Result, JsNativeError> { - let file_entry = self.shared.vfs.file_entry(path).map_err(JsNativeError::from_err)?; + let file_entry = self + .shared + .vfs + .file_entry(path) + .map_err(JsNativeError::from_err)?; let file_bytes = self .shared .vfs - .read_file_all(file_entry, VfsFileSubDataKind::ModuleGraph).map_err(JsNativeError::from_err)?; + .read_file_all(file_entry, VfsFileSubDataKind::ModuleGraph) + .map_err(JsNativeError::from_err)?; Ok(from_utf8_lossy_cow(file_bytes)) } diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs index 745f6fee8413ed..2d84a592725fe0 100644 --- a/cli/tools/bench/mod.rs +++ b/cli/tools/bench/mod.rs @@ -16,6 +16,7 @@ use crate::util::path::matches_pattern_or_exact_path; use crate::worker::CliMainWorkerFactory; use deno_config::glob::WalkEntry; +use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use deno_core::error::JsError; use deno_core::futures::future; @@ -41,7 +42,6 @@ use std::collections::HashSet; use std::path::Path; use std::sync::Arc; use std::time::Duration; -use deno_core::anyhow::anyhow; use tokio::sync::mpsc::unbounded_channel; use tokio::sync::mpsc::UnboundedSender; diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs index c31491b462bfc0..bcf2045bdca895 100644 --- a/cli/tools/installer.rs +++ b/cli/tools/installer.rs @@ -54,9 +54,7 @@ fn validate_name(exec_name: &str) -> Result<(), AnyError> { if EXEC_NAME_RE.is_match(exec_name) { Ok(()) } else { - Err(anyhow!( - "Invalid executable name: {exec_name}" - )) + Err(anyhow!("Invalid executable name: {exec_name}")) } } @@ -247,7 +245,10 @@ pub async fn uninstall( } if !removed { - return Err(anyhow!("No installation found for {}", uninstall_flags.name)); + return Err(anyhow!( + "No installation found for {}", + uninstall_flags.name + )); } // There might be some extra files to delete @@ -520,9 +521,7 @@ async fn resolve_shim_data( let log_level = match log_level { Level::Debug => "debug", Level::Info => "info", - _ => { - return Err(anyhow!(format!("invalid log level {log_level}"))) - } + _ => return Err(anyhow!(format!("invalid log level {log_level}"))), }; executable_args.push(log_level.to_string()); } diff --git a/cli/tools/jupyter/mod.rs b/cli/tools/jupyter/mod.rs index 7545c62f7889b9..e65ad722fabb6c 100644 --- a/cli/tools/jupyter/mod.rs +++ b/cli/tools/jupyter/mod.rs @@ -13,8 +13,8 @@ use crate::tools::test::reporters::PrettyTestReporter; use crate::tools::test::TestEventWorkerSender; use crate::tools::test::TestFailureFormatOptions; use crate::CliFactory; -use deno_core::anyhow::{anyhow}; -use deno_core::anyhow::{bail}; +use deno_core::anyhow::anyhow; +use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::futures::FutureExt; diff --git a/cli/tools/lint/mod.rs b/cli/tools/lint/mod.rs index b42d9d8354f507..394e27d5dce8f2 100644 --- a/cli/tools/lint/mod.rs +++ b/cli/tools/lint/mod.rs @@ -70,9 +70,7 @@ pub async fn lint( ) -> Result<(), AnyError> { if lint_flags.watch.is_some() { if lint_flags.is_stdin() { - return Err(anyhow!( - "Lint watch on standard input is not supported.", - )); + return Err(anyhow!("Lint watch on standard input is not supported.",)); } return lint_with_watch(flags, lint_flags).await; diff --git a/cli/tools/repl/channel.rs b/cli/tools/repl/channel.rs index 88d5d3f415e193..edad79176724cd 100644 --- a/cli/tools/repl/channel.rs +++ b/cli/tools/repl/channel.rs @@ -68,7 +68,8 @@ impl RustylineSyncMessageSender { method: method.to_string(), params: params .map(|params| serde_json::to_value(params)) - .transpose().map_err(JsNativeError::from_err)?, + .transpose() + .map_err(JsNativeError::from_err)?, }) { Err(JsNativeError::from_err(err).into()) diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index 34897310d80fb9..8e5f729325de2e 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -33,8 +33,8 @@ use deno_ast::SourcePos; use deno_ast::SourceRangedForSpanned; use deno_ast::SourceTextInfo; use deno_core::anyhow::anyhow; -use deno_core::error::{CoreError, JsNativeError}; use deno_core::error::AnyError; +use deno_core::error::{CoreError, JsNativeError}; use deno_core::futures::channel::mpsc::UnboundedReceiver; use deno_core::futures::FutureExt; use deno_core::futures::StreamExt; @@ -766,7 +766,10 @@ impl ReplSession { }), ) .await - .and_then(|res| serde_json::from_value(res).map_err(|e| JsNativeError::from_err(e).into())) + .and_then(|res| { + serde_json::from_value(res) + .map_err(|e| JsNativeError::from_err(e).into()) + }) } } diff --git a/cli/tools/run/hmr.rs b/cli/tools/run/hmr.rs index 373c207d6991ee..c16316a546048d 100644 --- a/cli/tools/run/hmr.rs +++ b/cli/tools/run/hmr.rs @@ -4,8 +4,8 @@ use std::collections::HashMap; use std::path::PathBuf; use std::sync::Arc; -use deno_core::error::generic_error; -use deno_core::error::AnyError; +use deno_core::error::CoreError; +use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::serde_json::json; use deno_core::serde_json::{self}; @@ -66,19 +66,19 @@ pub struct HmrRunner { #[async_trait::async_trait(?Send)] impl crate::worker::HmrRunner for HmrRunner { // TODO(bartlomieju): this code is duplicated in `cli/tools/coverage/mod.rs` - async fn start(&mut self) -> Result<(), AnyError> { + async fn start(&mut self) -> Result<(), CoreError> { self.enable_debugger().await } // TODO(bartlomieju): this code is duplicated in `cli/tools/coverage/mod.rs` - async fn stop(&mut self) -> Result<(), AnyError> { + async fn stop(&mut self) -> Result<(), CoreError> { self .watcher_communicator .change_restart_mode(WatcherRestartMode::Automatic); self.disable_debugger().await } - async fn run(&mut self) -> Result<(), AnyError> { + async fn run(&mut self) -> Result<(), CoreError> { self .watcher_communicator .change_restart_mode(WatcherRestartMode::Manual); @@ -89,11 +89,11 @@ impl crate::worker::HmrRunner for HmrRunner { Some(notification) = session_rx.next() => { let notification = serde_json::from_value::(notification)?; if notification.method == "Runtime.exceptionThrown" { - let exception_thrown = serde_json::from_value::(notification.params)?; + let exception_thrown = serde_json::from_value::(notification.params).map_err(JsNativeError::from_err)?; let (message, description) = exception_thrown.exception_details.get_message_and_description(); - break Err(generic_error(format!("{} {}", message, description))); + break Err(JsNativeError::generic(format!("{} {}", message, description)).into()); } else if notification.method == "Debugger.scriptParsed" { - let params = serde_json::from_value::(notification.params)?; + let params = serde_json::from_value::(notification.params).map_err(JsNativeError::from_err)?; if params.url.starts_with("file://") { let file_url = Url::parse(¶ms.url).unwrap(); let file_path = file_url.to_file_path().unwrap(); @@ -187,7 +187,7 @@ impl HmrRunner { } // TODO(bartlomieju): this code is duplicated in `cli/tools/coverage/mod.rs` - async fn enable_debugger(&mut self) -> Result<(), AnyError> { + async fn enable_debugger(&mut self) -> Result<(), CoreError> { self .session .post_message::<()>("Debugger.enable", None) @@ -200,7 +200,7 @@ impl HmrRunner { } // TODO(bartlomieju): this code is duplicated in `cli/tools/coverage/mod.rs` - async fn disable_debugger(&mut self) -> Result<(), AnyError> { + async fn disable_debugger(&mut self) -> Result<(), CoreError> { self .session .post_message::<()>("Debugger.disable", None) @@ -216,7 +216,7 @@ impl HmrRunner { &mut self, script_id: &str, source: &str, - ) -> Result { + ) -> Result { let result = self .session .post_message( @@ -229,15 +229,16 @@ impl HmrRunner { ) .await?; - Ok(serde_json::from_value::( - result, - )?) + Ok( + serde_json::from_value::(result) + .map_err(JsNativeError::from_err)?, + ) } async fn dispatch_hmr_event( &mut self, script_id: &str, - ) -> Result<(), AnyError> { + ) -> Result<(), CoreError> { let expr = format!( "dispatchEvent(new CustomEvent(\"hmr\", {{ detail: {{ path: \"{}\" }} }}));", script_id diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index 75472814e235d5..5907376eb773e8 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -25,8 +25,8 @@ use deno_config::glob::FilePatterns; use deno_config::glob::WalkEntry; use deno_core::anyhow; use deno_core::anyhow::anyhow; -use deno_core::error::CoreError; use deno_core::error::AnyError; +use deno_core::error::CoreError; use deno_core::error::JsError; use deno_core::futures::future; use deno_core::futures::stream; @@ -637,14 +637,11 @@ async fn configure_main_worker( Err(CoreError::Js(err)) => { send_test_event( &worker.js_runtime.op_state(), - TestEvent::UncaughtError( - specifier.to_string(), - Box::new(err), - ), + TestEvent::UncaughtError(specifier.to_string(), Box::new(err)), )?; Ok(()) } - Err(err) => Err(err) + Err(err) => Err(err), }?; Ok((coverage_collector, worker)) } @@ -979,10 +976,7 @@ async fn run_tests_for_worker_inner( if let CoreError::Js(js_error) = error { send_test_event( &state_rc, - TestEvent::UncaughtError( - specifier.to_string(), - Box::new(js_error), - ), + TestEvent::UncaughtError(specifier.to_string(), Box::new(js_error)), )?; fail_fast_tracker.add_failure(); send_test_event( @@ -1364,19 +1358,14 @@ pub async fn report_tests( reporter.report_summary(&elapsed, &tests, &test_steps); if let Err(err) = reporter.flush_report(&elapsed, &tests, &test_steps) { return ( - Err(anyhow!( - "Test reporter failed to flush: {}", - err - )), + Err(anyhow!("Test reporter failed to flush: {}", err)), receiver, ); } if used_only { return ( - Err(anyhow!( - "Test failed because the \"only\" option was used", - )), + Err(anyhow!("Test failed because the \"only\" option was used",)), receiver, ); } diff --git a/cli/tools/test/reporters/junit.rs b/cli/tools/test/reporters/junit.rs index 62160e1f353505..c06ad588233e5f 100644 --- a/cli/tools/test/reporters/junit.rs +++ b/cli/tools/test/reporters/junit.rs @@ -1,10 +1,10 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use std::collections::VecDeque; -use std::path::PathBuf; -use deno_core::anyhow::Context; use super::fmt::to_relative_path_or_remote_url; use super::*; +use deno_core::anyhow::Context; +use std::collections::VecDeque; +use std::path::PathBuf; pub struct JunitTestReporter { cwd: Url, diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index 61c1802e75fba8..2c3128fec65173 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -537,17 +537,15 @@ pub const MISSING_DEPENDENCY_SPECIFIER: &str = pub enum LoadError { #[class(generic)] #[error("Unable to load {path}: {error}")] - LoadFromNodeModule { - path: String, - error: std::io::Error, - }, + LoadFromNodeModule { path: String, error: std::io::Error }, #[class(inherit)] - #[error("Error converting a string module specifier for \"op_resolve\": {0}")] + #[error( + "Error converting a string module specifier for \"op_resolve\": {0}" + )] ModuleResolution(#[from] deno_core::ModuleResolutionError), #[class(inherit)] #[error("{0}")] ClosestPkgJson(#[from] node_resolver::errors::ClosestPkgJsonError), - } #[derive(Debug, Serialize)] @@ -716,14 +714,18 @@ fn op_load_inner( #[derive(Debug, Error, deno_error::JsError)] pub enum ResolveError { #[class(inherit)] - #[error("Error converting a string module specifier for \"op_resolve\": {0}")] + #[error( + "Error converting a string module specifier for \"op_resolve\": {0}" + )] ModuleResolution(#[from] deno_core::ModuleResolutionError), #[class(inherit)] #[error("{0}")] PackageSubpathResolve(PackageSubpathResolveError), #[class(inherit)] #[error("{0}")] - ResolvePkgFolderFromDenoModule(#[from] crate::npm::ResolvePkgFolderFromDenoModuleError), + ResolvePkgFolderFromDenoModule( + #[from] ResolvePkgFolderFromDenoModuleError, + ), #[class(inherit)] #[error("{0}")] ResolveNonGraphSpecifierTypes(#[from] ResolveNonGraphSpecifierTypesError), diff --git a/cli/util/file_watcher.rs b/cli/util/file_watcher.rs index b9318a6e4bd612..155e7b013b1d80 100644 --- a/cli/util/file_watcher.rs +++ b/cli/util/file_watcher.rs @@ -26,6 +26,7 @@ use std::rc::Rc; use std::sync::Arc; use std::time::Duration; use tokio::select; +use tokio::sync::broadcast::error::RecvError; use tokio::sync::mpsc; use tokio::sync::mpsc::UnboundedReceiver; use tokio::time::sleep; @@ -170,9 +171,9 @@ impl WatcherCommunicator { pub async fn watch_for_changed_paths( &self, - ) -> Result>, AnyError> { + ) -> Result>, RecvError> { let mut rx = self.changed_paths_rx.resubscribe(); - rx.recv().await.map_err(AnyError::from) + rx.recv().await } pub fn change_restart_mode(&self, restart_mode: WatcherRestartMode) { diff --git a/cli/util/fs.rs b/cli/util/fs.rs index 6fb1c4672bf4e2..e5b0328a2a13e7 100644 --- a/cli/util/fs.rs +++ b/cli/util/fs.rs @@ -373,7 +373,6 @@ mod clone_dir_imp { #[cfg(target_vendor = "apple")] mod apple { use super::super::copy_dir_recursive; - use deno_core::error::AnyError; use std::os::unix::ffi::OsStrExt; use std::path::Path; fn clonefile(from: &Path, to: &Path) -> std::io::Result<()> { @@ -387,7 +386,10 @@ mod clone_dir_imp { Ok(()) } - pub fn clone_dir_recursive(from: &Path, to: &Path) -> Result<(), AnyError> { + pub fn clone_dir_recursive( + from: &Path, + to: &Path, + ) -> Result<(), super::super::CopyDirRecursiveError> { if let Some(parent) = to.parent() { std::fs::create_dir_all(parent)?; } @@ -432,18 +434,73 @@ mod clone_dir_imp { /// operation. /// /// Note: Does not handle symlinks. -pub fn clone_dir_recursive(from: &Path, to: &Path) -> Result<(), AnyError> { +pub fn clone_dir_recursive( + from: &Path, + to: &Path, +) -> Result<(), CopyDirRecursiveError> { clone_dir_imp::clone_dir_recursive(from, to) } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum CopyDirRecursiveError { + #[class(inherit)] + #[error("Creating {path}")] + Creating { + path: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error("Creating {path}")] + Reading { + path: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error("Dir {from} to {to}")] + Dir { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: Box, + }, + #[class(inherit)] + #[error("Copying {from} to {to}")] + Copying { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error(transparent)] + Other(#[from] Error), +} + /// Copies a directory to another directory. /// /// Note: Does not handle symlinks. -pub fn copy_dir_recursive(from: &Path, to: &Path) -> Result<(), AnyError> { - std::fs::create_dir_all(to) - .with_context(|| format!("Creating {}", to.display()))?; - let read_dir = std::fs::read_dir(from) - .with_context(|| format!("Reading {}", from.display()))?; +pub fn copy_dir_recursive( + from: &Path, + to: &Path, +) -> Result<(), CopyDirRecursiveError> { + std::fs::create_dir_all(to).map_err(|source| { + CopyDirRecursiveError::Creating { + path: to.to_path_buf(), + source, + } + })?; + let read_dir = std::fs::read_dir(from).map_err(|source| { + CopyDirRecursiveError::Reading { + path: from.to_path_buf(), + source, + } + })?; for entry in read_dir { let entry = entry?; @@ -452,12 +509,20 @@ pub fn copy_dir_recursive(from: &Path, to: &Path) -> Result<(), AnyError> { let new_to = to.join(entry.file_name()); if file_type.is_dir() { - copy_dir_recursive(&new_from, &new_to).with_context(|| { - format!("Dir {} to {}", new_from.display(), new_to.display()) + copy_dir_recursive(&new_from, &new_to).map_err(|source| { + CopyDirRecursiveError::Dir { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: Box::new(source), + } })?; } else if file_type.is_file() { - std::fs::copy(&new_from, &new_to).with_context(|| { - format!("Copying {} to {}", new_from.display(), new_to.display()) + std::fs::copy(&new_from, &new_to).map_err(|source| { + CopyDirRecursiveError::Copying { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source, + } })?; } } diff --git a/cli/worker.rs b/cli/worker.rs index 0d71c6f28c26bd..904263c7088085 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -7,7 +7,8 @@ use std::sync::Arc; use deno_ast::ModuleSpecifier; use deno_core::anyhow::bail; -use deno_core::error::{AnyError, CoreError}; +use deno_core::error::{AnyError}; +use deno_core::error::{CoreError}; use deno_core::futures::FutureExt; use deno_core::url::Url; use deno_core::v8; @@ -78,9 +79,9 @@ pub trait ModuleLoaderFactory: Send + Sync { #[async_trait::async_trait(?Send)] pub trait HmrRunner: Send + Sync { - async fn start(&mut self) -> Result<(), AnyError>; - async fn stop(&mut self) -> Result<(), AnyError>; - async fn run(&mut self) -> Result<(), AnyError>; + async fn start(&mut self) -> Result<(), CoreError>; + async fn stop(&mut self) -> Result<(), CoreError>; + async fn run(&mut self) -> Result<(), CoreError>; } pub trait CliCodeCache: code_cache::CodeCache { @@ -191,7 +192,7 @@ impl CliMainWorker { Ok(()) } - pub async fn run(&mut self) -> Result { + pub async fn run(&mut self) -> Result { let mut maybe_coverage_collector = self.maybe_setup_coverage_collector().await?; let mut maybe_hmr_runner = self.maybe_setup_hmr_runner().await?; @@ -212,10 +213,10 @@ impl CliMainWorker { let result; select! { hmr_result = hmr_future => { - result = hmr_result; + result = hmr_result.map_err(Into::into); }, event_loop_result = event_loop_future => { - result = event_loop_result.map_err(Into::into); + result = event_loop_result; } } if let Err(e) = result { diff --git a/ext/broadcast_channel/lib.rs b/ext/broadcast_channel/lib.rs index 8b8e3387965b2d..b187400197269f 100644 --- a/ext/broadcast_channel/lib.rs +++ b/ext/broadcast_channel/lib.rs @@ -25,7 +25,11 @@ pub const UNSTABLE_FEATURE_NAME: &str = "broadcast-channel"; pub enum BroadcastChannelError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource( + #[from] + #[inherit] + deno_core::error::ResourceError, + ), #[class(generic)] #[error(transparent)] MPSCSendError(MpscSendError>), diff --git a/ext/cache/lib.rs b/ext/cache/lib.rs index ab0b28f4979be8..94fc687a0cfc20 100644 --- a/ext/cache/lib.rs +++ b/ext/cache/lib.rs @@ -6,11 +6,11 @@ use std::rc::Rc; use std::sync::Arc; use async_trait::async_trait; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; use deno_core::ByteString; -use deno_core::error::JsNativeError; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; @@ -40,10 +40,7 @@ pub enum CacheError { Io(#[from] std::io::Error), #[class(generic)] #[error("Failed to create cache storage directory {}: {error}", .dir.display())] - CacheStorageDirectory { - dir: PathBuf, - error: std::io::Error, - }, + CacheStorageDirectory { dir: PathBuf, error: std::io::Error }, } #[derive(Clone)] diff --git a/ext/cache/sqlite.rs b/ext/cache/sqlite.rs index fd9d31cdd9395a..7966bb44020e7a 100644 --- a/ext/cache/sqlite.rs +++ b/ext/cache/sqlite.rs @@ -43,11 +43,12 @@ pub struct SqliteBackedCache { impl SqliteBackedCache { pub fn new(cache_storage_dir: PathBuf) -> Result { { - std::fs::create_dir_all(&cache_storage_dir) - .map_err(|error| CacheError::CacheStorageDirectory { + std::fs::create_dir_all(&cache_storage_dir).map_err(|error| { + CacheError::CacheStorageDirectory { dir: cache_storage_dir.clone(), error, - })?; + } + })?; let path = cache_storage_dir.join("cache_metadata.db"); let connection = rusqlite::Connection::open(&path).unwrap_or_else(|_| { panic!("failed to open cache db at {}", path.display()) diff --git a/ext/cron/lib.rs b/ext/cron/lib.rs index cf971fd9b0c5d7..9d9204b8567307 100644 --- a/ext/cron/lib.rs +++ b/ext/cron/lib.rs @@ -3,16 +3,16 @@ mod interface; pub mod local; -use std::borrow::Cow; -use std::cell::RefCell; -use std::rc::Rc; pub use crate::interface::*; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; -use deno_core::error::JsNativeError; use deno_error::JsErrorClass; +use std::borrow::Cow; +use std::cell::RefCell; +use std::rc::Rc; pub const UNSTABLE_FEATURE_NAME: &str = "cron"; diff --git a/ext/crypto/decrypt.rs b/ext/crypto/decrypt.rs index c4c80c5e07c1a3..7aff1b4e16b58e 100644 --- a/ext/crypto/decrypt.rs +++ b/ext/crypto/decrypt.rs @@ -74,7 +74,11 @@ pub enum DecryptAlgorithm { pub enum DecryptError { #[class(inherit)] #[error(transparent)] - General(#[from] #[inherit] SharedError), + General( + #[from] + #[inherit] + SharedError, + ), #[class(generic)] #[error(transparent)] Pkcs1(#[from] rsa::pkcs1::Error), diff --git a/ext/crypto/encrypt.rs b/ext/crypto/encrypt.rs index 3aa8aa70930d1e..39364aa7dae9a5 100644 --- a/ext/crypto/encrypt.rs +++ b/ext/crypto/encrypt.rs @@ -75,7 +75,11 @@ pub enum EncryptAlgorithm { pub enum EncryptError { #[class(inherit)] #[error(transparent)] - General(#[from] #[inherit] SharedError), + General( + #[from] + #[inherit] + SharedError, + ), #[class(type)] #[error("invalid length")] InvalidLength, diff --git a/ext/crypto/export_key.rs b/ext/crypto/export_key.rs index d0c8d5d6e780a9..600ce01614baea 100644 --- a/ext/crypto/export_key.rs +++ b/ext/crypto/export_key.rs @@ -24,7 +24,11 @@ use crate::shared::*; pub enum ExportKeyError { #[class(inherit)] #[error(transparent)] - General(#[from] #[inherit] SharedError), + General( + #[from] + #[inherit] + SharedError, + ), #[class(generic)] #[error(transparent)] Der(#[from] spki::der::Error), diff --git a/ext/crypto/generate_key.rs b/ext/crypto/generate_key.rs index 9471776629c041..f9127bb047f5d3 100644 --- a/ext/crypto/generate_key.rs +++ b/ext/crypto/generate_key.rs @@ -20,7 +20,11 @@ use crate::shared::*; pub enum GenerateKeyError { #[class(inherit)] #[error(transparent)] - General(#[from] #[inherit] SharedError), + General( + #[from] + #[inherit] + SharedError, + ), #[error("Bad public exponent")] BadPublicExponent, #[error("Invalid HMAC key length")] diff --git a/ext/crypto/import_key.rs b/ext/crypto/import_key.rs index a534e0522ca2c2..40d17cca858b70 100644 --- a/ext/crypto/import_key.rs +++ b/ext/crypto/import_key.rs @@ -19,7 +19,11 @@ use crate::shared::*; pub enum ImportKeyError { #[class(inherit)] #[error(transparent)] - General(#[from] #[inherit] SharedError), + General( + #[from] + #[inherit] + SharedError, + ), #[error("invalid modulus")] InvalidModulus, #[error("invalid public exponent")] diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index a0e011a6662494..34e6c062c42474 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -136,10 +136,18 @@ deno_core::extension!(deno_crypto, pub enum CryptoError { #[class(inherit)] #[error(transparent)] - General(#[from] #[inherit] SharedError), + General( + #[from] + #[inherit] + SharedError, + ), #[class(inherit)] #[error(transparent)] - JoinError(#[from] #[inherit] tokio::task::JoinError), + JoinError( + #[from] + #[inherit] + tokio::task::JoinError, + ), #[class(generic)] #[error(transparent)] Der(#[from] rsa::pkcs1::der::Error), @@ -205,7 +213,11 @@ pub enum CryptoError { ArrayBufferViewLengthExceeded(usize), #[class(inherit)] #[error(transparent)] - Other(#[from] #[inherit] JsNativeError), + Other( + #[from] + #[inherit] + JsNativeError, + ), } #[op2] diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index 8843f88f6f44cf..d62c9bfa2e8287 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -18,6 +18,7 @@ use std::sync::Arc; use std::task::Context; use std::task::Poll; +use deno_core::error::JsNativeError; use deno_core::futures::stream::Peekable; use deno_core::futures::Future; use deno_core::futures::FutureExt; @@ -30,7 +31,6 @@ use deno_core::url::Url; use deno_core::v8; use deno_core::AsyncRefCell; use deno_core::AsyncResult; -use deno_core::error::JsNativeError; use deno_core::BufView; use deno_core::ByteString; use deno_core::CancelFuture; @@ -101,9 +101,8 @@ pub struct Options { /// For more info on what can be configured, see [`hyper_util::client::legacy::Builder`]. pub client_builder_hook: Option HyperClientBuilder>, #[allow(clippy::type_complexity)] - pub request_builder_hook: Option< - fn(&mut http::Request) -> Result<(), JsNativeError>, - >, + pub request_builder_hook: + Option) -> Result<(), JsNativeError>>, pub unsafely_ignore_certificate_errors: Option>, pub client_cert_chain_and_key: TlsKeys, pub file_fetch_handler: Rc, diff --git a/ext/ffi/call.rs b/ext/ffi/call.rs index 93cd8827356b2c..2dd718369c8861 100644 --- a/ext/ffi/call.rs +++ b/ext/ffi/call.rs @@ -42,7 +42,7 @@ pub enum CallError { Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Callback(#[from] super::CallbackError), + Callback(#[from] super::CallbackError), } // SAFETY: Makes an FFI call diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index 74b3ec80825082..7c97eb9c378b02 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -6,12 +6,13 @@ use crate::symbol::Symbol; use crate::turbocall; use crate::turbocall::Turbocall; use crate::FfiPermissions; -use deno_core::error::{JsNativeError}; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::v8; use deno_core::GarbageCollected; use deno_core::OpState; use deno_core::Resource; +use deno_error::JsErrorClass; use dlopen2::raw::Library; use serde::Deserialize; use serde_value::ValueDeserializer; @@ -20,7 +21,6 @@ use std::cell::RefCell; use std::collections::HashMap; use std::ffi::c_void; use std::rc::Rc; -use deno_error::JsErrorClass; deno_error::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { match err { @@ -29,7 +29,8 @@ deno_error::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { dlopen2::Error::SymbolGettingError(e) => e.get_class(), dlopen2::Error::AddrNotMatchingDll(e) => e.get_class(), dlopen2::Error::NullSymbol => "NotFound", - }}); + } +}); #[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum DlfcnError { diff --git a/ext/ffi/symbol.rs b/ext/ffi/symbol.rs index 217e77f2c7b068..2a0e4331c43fef 100644 --- a/ext/ffi/symbol.rs +++ b/ext/ffi/symbol.rs @@ -55,7 +55,9 @@ impl TryFrom for libffi::middle::Type { .map(|field| field.clone().try_into()) .collect::, _>>()?, false => { - return Err(JsNativeError::type_error("Struct must have at least one field")) + return Err(JsNativeError::type_error( + "Struct must have at least one field", + )) } }) } diff --git a/ext/fs/ops.rs b/ext/fs/ops.rs index 13d089fdf56724..39385507a66942 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -17,9 +17,9 @@ use crate::interface::FsDirEntry; use crate::interface::FsFileType; use crate::FsPermissions; use crate::OpenOptions; +use boxed_error::Boxed; use deno_core::error::JsNativeError; use deno_core::error::ResourceError; -use boxed_error::Boxed; use deno_core::op2; use deno_core::v8; use deno_core::CancelFuture; diff --git a/ext/http/http_next.rs b/ext/http/http_next.rs index a85d9d5dc1f87d..5b1d0b4c16b5cb 100644 --- a/ext/http/http_next.rs +++ b/ext/http/http_next.rs @@ -162,16 +162,28 @@ pub enum HttpNextError { Hyper(#[from] hyper::Error), #[class(inherit)] #[error(transparent)] - JoinError(#[from] #[inherit] tokio::task::JoinError), + JoinError( + #[from] + #[inherit] + tokio::task::JoinError, + ), #[class(inherit)] #[error(transparent)] - Canceled(#[from] #[inherit] deno_core::Canceled), + Canceled( + #[from] + #[inherit] + deno_core::Canceled, + ), #[class(generic)] #[error(transparent)] UpgradeUnavailable(#[from] crate::service::UpgradeUnavailableError), #[class(inherit)] #[error("{0}")] - Other(#[from] #[inherit] deno_core::error::JsNativeError), + Other( + #[from] + #[inherit] + deno_core::error::JsNativeError, + ), } #[op2(fast)] diff --git a/ext/io/fs.rs b/ext/io/fs.rs index 5684f22a65f816..bd0d1774c60ff0 100644 --- a/ext/io/fs.rs +++ b/ext/io/fs.rs @@ -7,9 +7,9 @@ use std::rc::Rc; use std::time::SystemTime; use std::time::UNIX_EPOCH; +use deno_core::error::{JsNativeError, ResourceError}; use deno_core::BufMutView; use deno_core::BufView; -use deno_core::error::{JsNativeError, ResourceError}; use deno_core::OpState; use deno_core::ResourceHandleFd; use deno_core::ResourceId; diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs index de7fa4a5f7603f..8e0a49515ef067 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -17,7 +17,6 @@ use base64::Engine; use boxed_error::Boxed; use chrono::DateTime; use chrono::Utc; -use deno_error::JsErrorClass; use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::op2; @@ -33,6 +32,7 @@ use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; use deno_core::ToJsBuffer; +use deno_error::JsErrorClass; use denokv_proto::decode_key; use denokv_proto::encode_key; use denokv_proto::AtomicWrite; @@ -123,7 +123,7 @@ pub struct KvError(pub Box); pub enum KvErrorKind { #[class(inherit)] #[error(transparent)] - DatabaseHandler( JsNativeError), + DatabaseHandler(JsNativeError), #[class(inherit)] #[error(transparent)] Resource(#[from] deno_core::error::ResourceError), @@ -635,7 +635,11 @@ pub enum KvMutationError { BigInt(#[from] num_bigint::TryFromBigIntError), #[class(inherit)] #[error(transparent)] - Io(#[from] #[inherit] std::io::Error), + Io( + #[from] + #[inherit] + std::io::Error, + ), #[class(type)] #[error("Invalid mutation '{0}' with value")] InvalidMutationWithValue(String), diff --git a/ext/kv/remote.rs b/ext/kv/remote.rs index bceae105a6d0f9..f5afeb496bdf3c 100644 --- a/ext/kv/remote.rs +++ b/ext/kv/remote.rs @@ -36,7 +36,9 @@ pub struct HttpOptions { } impl HttpOptions { - pub fn root_cert_store(&self) -> Result, JsNativeError> { + pub fn root_cert_store( + &self, + ) -> Result, JsNativeError> { Ok(match &self.root_cert_store_provider { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, @@ -142,7 +144,11 @@ impl RemoteResponse for FetchResponse { fn stream( self, ) -> impl Stream> + Send + Sync { - self.0.into_body().into_data_stream().map_err(anyhow::Error::from) + self + .0 + .into_body() + .into_data_stream() + .map_err(anyhow::Error::from) } async fn text(self) -> Result { let bytes = self.bytes().await?; @@ -168,14 +174,21 @@ impl DatabaseHandler }; let Ok(parsed_url) = Url::parse(&url) else { - return Err(JsNativeError::type_error(format!("Invalid database url: {}", url))); + return Err(JsNativeError::type_error(format!( + "Invalid database url: {}", + url + ))); }; { let mut state = state.borrow_mut(); let permissions = state.borrow_mut::

(); - permissions.check_env(ENV_VAR_NAME).map_err(JsNativeError::from_err)?; - permissions.check_net_url(&parsed_url, "Deno.openKv").map_err(JsNativeError::from_err)?; + permissions + .check_env(ENV_VAR_NAME) + .map_err(JsNativeError::from_err)?; + permissions + .check_net_url(&parsed_url, "Deno.openKv") + .map_err(JsNativeError::from_err)?; } let access_token = std::env::var(ENV_VAR_NAME) @@ -211,7 +224,8 @@ impl DatabaseHandler http2: true, client_builder_hook: None, }, - ).map_err(JsNativeError::from_err)?; + ) + .map_err(JsNativeError::from_err)?; let fetch_client = FetchClient(client); let permissions = PermissionChecker { diff --git a/ext/kv/sqlite.rs b/ext/kv/sqlite.rs index 31451cda0e8215..6354d9f342d3b4 100644 --- a/ext/kv/sqlite.rs +++ b/ext/kv/sqlite.rs @@ -83,7 +83,11 @@ impl SqliteDbHandler

{ } } -deno_error::js_error_wrapper!(SqliteBackendError, JsSqliteBackendError, "TypeError"); +deno_error::js_error_wrapper!( + SqliteBackendError, + JsSqliteBackendError, + "TypeError" +); #[async_trait(?Send)] impl DatabaseHandler for SqliteDbHandler

{ diff --git a/ext/net/io.rs b/ext/net/io.rs index 0d8cec82feeaa8..9d08a9e0f88bc3 100644 --- a/ext/net/io.rs +++ b/ext/net/io.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::error::JsNativeError; use deno_core::futures::TryFutureExt; use deno_core::AsyncMutFuture; use deno_core::AsyncRefCell; @@ -11,7 +12,6 @@ use deno_core::Resource; use socket2::SockRef; use std::borrow::Cow; use std::rc::Rc; -use deno_core::error::JsNativeError; use tokio::io::AsyncRead; use tokio::io::AsyncReadExt; use tokio::io::AsyncWrite; @@ -165,9 +165,7 @@ impl UnixStreamResource { unreachable!() } #[allow(clippy::unused_async)] - pub async fn shutdown( - self: Rc, - ) -> Result<(), JsNativeError> { + pub async fn shutdown(self: Rc) -> Result<(), JsNativeError> { unreachable!() } pub fn cancel_read_ops(&self) { diff --git a/ext/net/lib.rs b/ext/net/lib.rs index 7430d703774253..4656c838ede629 100644 --- a/ext/net/lib.rs +++ b/ext/net/lib.rs @@ -103,7 +103,9 @@ pub struct DefaultTlsOptions { } impl DefaultTlsOptions { - pub fn root_cert_store(&self) -> Result, deno_core::error::JsNativeError> { + pub fn root_cert_store( + &self, + ) -> Result, deno_core::error::JsNativeError> { Ok(match &self.root_cert_store_provider { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, diff --git a/ext/node/ops/buffer.rs b/ext/node/ops/buffer.rs index 8037143a074dd6..b8f8979243c472 100644 --- a/ext/node/ops/buffer.rs +++ b/ext/node/ops/buffer.rs @@ -28,7 +28,9 @@ pub fn op_transcode( ("latin1", "utf16le") | ("ascii", "utf16le") => { Ok(latin1_ascii_to_utf16le(source)) } - (from, to) => Err(JsNativeError::generic(format!("Unable to transcode Buffer {from}->{to}"))), + (from, to) => Err(JsNativeError::generic(format!( + "Unable to transcode Buffer {from}->{to}" + ))), } } @@ -48,11 +50,14 @@ fn utf16le_to_utf8(source: &[u8]) -> Result, JsNativeError> { .collect(); String::from_utf16(&ucs2_vec) .map(|utf8_string| utf8_string.into_bytes()) - .map_err(|e|JsNativeError::generic(format!("Invalid UTF-16 sequence: {}", e))) + .map_err(|e| { + JsNativeError::generic(format!("Invalid UTF-16 sequence: {}", e)) + }) } fn utf8_to_utf16le(source: &[u8]) -> Result, JsNativeError> { - let utf8_string = std::str::from_utf8(source).map_err(JsNativeError::from_err)?; + let utf8_string = + std::str::from_utf8(source).map_err(JsNativeError::from_err)?; let ucs2_vec: Vec = utf8_string.encode_utf16().collect(); let bytes: Vec = ucs2_vec.iter().flat_map(|&x| x.to_le_bytes()).collect(); Ok(bytes) diff --git a/ext/node/ops/crypto/keys.rs b/ext/node/ops/crypto/keys.rs index ccb2938e051973..c858ff4d694d5b 100644 --- a/ext/node/ops/crypto/keys.rs +++ b/ext/node/ops/crypto/keys.rs @@ -447,7 +447,11 @@ pub enum AsymmetricPrivateKeyError { UnsupportedPemLabel(String), #[class(inherit)] #[error(transparent)] - RsaPssParamsParse(#[from] #[inherit] RsaPssParamsParseError), + RsaPssParamsParse( + #[from] + #[inherit] + RsaPssParamsParseError, + ), #[error("invalid encrypted PKCS#8 private key")] InvalidEncryptedPkcs8PrivateKey, #[error("invalid PKCS#8 private key")] @@ -493,7 +497,11 @@ pub enum AsymmetricPublicKeyError { InvalidPkcs1PublicKey, #[class(inherit)] #[error(transparent)] - AsymmetricPrivateKey(#[from] #[inherit] AsymmetricPrivateKeyError), + AsymmetricPrivateKey( + #[from] + #[inherit] + AsymmetricPrivateKeyError, + ), #[class(type)] #[error("invalid x509 certificate")] InvalidX509Certificate, @@ -502,7 +510,11 @@ pub enum AsymmetricPublicKeyError { X509(#[from] x509_parser::nom::Err), #[class(inherit)] #[error(transparent)] - X509PublicKey(#[from] #[inherit] X509PublicKeyError), + X509PublicKey( + #[from] + #[inherit] + X509PublicKeyError, + ), #[class(type)] #[error("unsupported PEM label: {0}")] UnsupportedPemLabel(String), @@ -523,7 +535,11 @@ pub enum AsymmetricPublicKeyError { Pkcs1(#[from] rsa::pkcs1::Error), #[class(inherit)] #[error(transparent)] - RsaPssParamsParse(#[from] #[inherit] RsaPssParamsParseError), + RsaPssParamsParse( + #[from] + #[inherit] + RsaPssParamsParseError, + ), #[class(type)] #[error("malformed DSS public key")] MalformedDssPublicKey, @@ -1603,9 +1619,9 @@ pub fn op_node_get_asymmetric_key_type( } KeyObjectHandle::AsymmetricPrivate(AsymmetricPrivateKey::Dh(_)) | KeyObjectHandle::AsymmetricPublic(AsymmetricPublicKey::Dh(_)) => Ok("dh"), - KeyObjectHandle::Secret(_) => { - Err(JsNativeError::type_error("symmetric key is not an asymmetric key")) - } + KeyObjectHandle::Secret(_) => Err(JsNativeError::type_error( + "symmetric key is not an asymmetric key", + )), } } @@ -1756,9 +1772,9 @@ pub fn op_node_get_asymmetric_key_details( AsymmetricPublicKey::Ed25519(_) => Ok(AsymmetricKeyDetails::Ed25519), AsymmetricPublicKey::Dh(_) => Ok(AsymmetricKeyDetails::Dh), }, - KeyObjectHandle::Secret(_) => { - Err(JsNativeError::type_error("symmetric key is not an asymmetric key")) - } + KeyObjectHandle::Secret(_) => Err(JsNativeError::type_error( + "symmetric key is not an asymmetric key", + )), } } @@ -1769,9 +1785,9 @@ pub fn op_node_get_symmetric_key_size( ) -> Result { match handle { KeyObjectHandle::AsymmetricPrivate(_) - | KeyObjectHandle::AsymmetricPublic(_) => { - Err(JsNativeError::type_error("asymmetric key is not a symmetric key")) - } + | KeyObjectHandle::AsymmetricPublic(_) => Err(JsNativeError::type_error( + "asymmetric key is not a symmetric key", + )), KeyObjectHandle::Secret(key) => Ok(key.len() * 8), } } @@ -2294,7 +2310,11 @@ pub fn op_node_export_public_key_jwk( pub enum ExportPublicKeyPemError { #[class(inherit)] #[error(transparent)] - AsymmetricPublicKeyDer(#[from] #[inherit] AsymmetricPublicKeyDerError), + AsymmetricPublicKeyDer( + #[from] + #[inherit] + AsymmetricPublicKeyDerError, + ), #[class(type)] #[error("very large data")] VeryLargeData, @@ -2347,7 +2367,11 @@ pub fn op_node_export_public_key_der( pub enum ExportPrivateKeyPemError { #[class(inherit)] #[error(transparent)] - AsymmetricPublicKeyDer(#[from] #[inherit] AsymmetricPrivateKeyDerError), + AsymmetricPublicKeyDer( + #[from] + #[inherit] + AsymmetricPrivateKeyDerError, + ), #[class(type)] #[error("very large data")] VeryLargeData, diff --git a/ext/node/ops/crypto/mod.rs b/ext/node/ops/crypto/mod.rs index fb65d64cc1c9e5..6ed050ee2be12c 100644 --- a/ext/node/ops/crypto/mod.rs +++ b/ext/node/ops/crypto/mod.rs @@ -273,10 +273,7 @@ pub fn op_node_cipheriv_final( #[buffer] input: &[u8], #[anybuffer] output: &mut [u8], ) -> Result>, cipher::CipherContextError> { - let context = state - .resource_table - .take::(rid) - ?; + let context = state.resource_table.take::(rid)?; let context = Rc::try_unwrap(context) .map_err(|_| cipher::CipherContextError::ContextInUse)?; context.r#final(auto_pad, input, output).map_err(Into::into) @@ -288,10 +285,7 @@ pub fn op_node_cipheriv_take( state: &mut OpState, #[smi] rid: u32, ) -> Result>, cipher::CipherContextError> { - let context = state - .resource_table - .take::(rid) - ?; + let context = state.resource_table.take::(rid)?; let context = Rc::try_unwrap(context) .map_err(|_| cipher::CipherContextError::ContextInUse)?; Ok(context.take_tag()) @@ -343,10 +337,7 @@ pub fn op_node_decipheriv_take( state: &mut OpState, #[smi] rid: u32, ) -> Result<(), cipher::DecipherContextError> { - let context = state - .resource_table - .take::(rid) - ?; + let context = state.resource_table.take::(rid)?; Rc::try_unwrap(context) .map_err(|_| cipher::DecipherContextError::ContextInUse)?; Ok(()) @@ -361,10 +352,7 @@ pub fn op_node_decipheriv_final( #[anybuffer] output: &mut [u8], #[buffer] auth_tag: &[u8], ) -> Result<(), cipher::DecipherContextError> { - let context = state - .resource_table - .take::(rid) - ?; + let context = state.resource_table.take::(rid)?; let context = Rc::try_unwrap(context) .map_err(|_| cipher::DecipherContextError::ContextInUse)?; context @@ -795,7 +783,10 @@ pub fn op_node_ecdh_generate_keys( Ok(()) } - &_ => Err(JsNativeError::type_error(format!("Unsupported curve: {}", curve))), + &_ => Err(JsNativeError::type_error(format!( + "Unsupported curve: {}", + curve + ))), } } diff --git a/ext/node/ops/fs.rs b/ext/node/ops/fs.rs index 5ba961c2c3d6d1..9ee3d37a95e924 100644 --- a/ext/node/ops/fs.rs +++ b/ext/node/ops/fs.rs @@ -17,7 +17,11 @@ pub enum FsError { Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io( + #[from] + #[inherit] + std::io::Error, + ), #[cfg(windows)] #[class(generic)] #[error("Path has no root.")] @@ -28,7 +32,11 @@ pub enum FsError { UnsupportedPlatform, #[class(inherit)] #[error(transparent)] - Fs(#[from] #[inherit] deno_io::fs::FsError), + Fs( + #[from] + #[inherit] + deno_io::fs::FsError, + ), } #[op2(fast, stack_trace)] diff --git a/ext/node/ops/http.rs b/ext/node/ops/http.rs index 90590d92225622..cf73610ae3aad2 100644 --- a/ext/node/ops/http.rs +++ b/ext/node/ops/http.rs @@ -9,14 +9,12 @@ use std::task::Context; use std::task::Poll; use bytes::Bytes; -use deno_core::error::bad_resource; -use deno_core::error::type_error; +use deno_core::error::{JsNativeError, ResourceError}; use deno_core::futures::stream::Peekable; use deno_core::futures::Future; use deno_core::futures::FutureExt; use deno_core::futures::Stream; use deno_core::futures::StreamExt; -use deno_core::op2; use deno_core::serde::Serialize; use deno_core::unsync::spawn; use deno_core::url::Url; @@ -32,6 +30,7 @@ use deno_core::OpState; use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; +use deno_core::{op2, JsError}; use deno_fetch::FetchCancelHandle; use deno_fetch::FetchReturn; use deno_fetch::ResBody; @@ -49,7 +48,6 @@ use hyper::body::Frame; use hyper::body::Incoming; use hyper_util::rt::TokioIo; use std::cmp::min; -use deno_core::error::JsNativeError; use tokio::io::AsyncReadExt; use tokio::io::AsyncWriteExt; @@ -89,32 +87,45 @@ impl deno_core::Resource for NodeHttpClientResponse { } } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, JsError)] pub enum ConnError { + #[class(inherit)] #[error(transparent)] - Resource(deno_core::error::AnyError), + Resource(ResourceError), + #[class(inherit)] #[error(transparent)] Permission(#[from] PermissionCheckError), + #[class(type)] #[error("Invalid URL {0}")] InvalidUrl(Url), + #[class(type)] #[error(transparent)] InvalidHeaderName(#[from] http::header::InvalidHeaderName), + #[class(type)] #[error(transparent)] InvalidHeaderValue(#[from] http::header::InvalidHeaderValue), + #[class(inherit)] #[error(transparent)] Url(#[from] url::ParseError), + #[class(type)] #[error(transparent)] Method(#[from] http::method::InvalidMethod), + #[class(inherit)] #[error(transparent)] Io(#[from] std::io::Error), + #[class("Busy")] #[error("TLS stream is currently in use")] TlsStreamBusy, + #[class("Busy")] #[error("TCP stream is currently in use")] TcpStreamBusy, + #[class(generic)] #[error(transparent)] ReuniteTcp(#[from] tokio::net::tcp::ReuniteError), + #[class(inherit)] #[error(transparent)] Canceled(#[from] deno_core::Canceled), + #[class("Http")] #[error(transparent)] Hyper(#[from] hyper::Error), } @@ -275,8 +286,11 @@ pub async fn op_node_http_await_response( .resource_table .take::(rid) .map_err(ConnError::Resource)?; - let resource = Rc::try_unwrap(resource) - .map_err(|_| ConnError::Resource(bad_resource("NodeHttpClientResponse")))?; + let resource = Rc::try_unwrap(resource).map_err(|_| { + ConnError::Resource(ResourceError::Other( + "NodeHttpClientResponse".to_string(), + )) + })?; let res = resource.response.await??; let status = res.status(); @@ -297,7 +311,7 @@ pub async fn op_node_http_await_response( }; let (parts, body) = res.into_parts(); - let body = body.map_err(deno_core::anyhow::Error::from); + let body = body.map_err(|e| JsNativeError::new("Http", e.to_string())); let body = body.boxed(); let res = http::Response::from_parts(parts, body); @@ -550,9 +564,7 @@ impl Resource for NodeHttpResponseResource { #[allow(clippy::type_complexity)] pub struct NodeHttpResourceToBodyAdapter( Rc, - Option< - Pin>>>, - >, + Option>>>>, ); impl NodeHttpResourceToBodyAdapter { diff --git a/ext/node/ops/http2.rs b/ext/node/ops/http2.rs index 0f0e240f651e69..7757adc4da061e 100644 --- a/ext/node/ops/http2.rs +++ b/ext/node/ops/http2.rs @@ -7,6 +7,7 @@ use std::rc::Rc; use std::task::Poll; use bytes::Bytes; +use deno_core::error::ResourceError; use deno_core::futures::future::poll_fn; use deno_core::op2; use deno_core::serde::Serialize; @@ -15,7 +16,6 @@ use deno_core::BufView; use deno_core::ByteString; use deno_core::CancelFuture; use deno_core::CancelHandle; -use deno_core::error::ResourceError; use deno_core::JsBuffer; use deno_core::OpState; use deno_core::RcRef; @@ -114,16 +114,28 @@ impl Resource for Http2ServerSendResponse { pub enum Http2Error { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] ResourceError), + Resource( + #[from] + #[inherit] + ResourceError, + ), #[class(inherit)] #[error(transparent)] - UrlParse(#[from] #[inherit] url::ParseError), + UrlParse( + #[from] + #[inherit] + url::ParseError, + ), #[class(generic)] #[error(transparent)] H2(#[from] h2::Error), #[class(inherit)] #[error(transparent)] - TakeNetworkStream(#[from] #[inherit] deno_net::raw::TakeNetworkStreamError), + TakeNetworkStream( + #[from] + #[inherit] + deno_net::raw::TakeNetworkStreamError, + ), } #[op2(async)] @@ -136,8 +148,7 @@ pub async fn op_http2_connect( // No permission check necessary because we're using an existing connection let network_stream = { let mut state = state.borrow_mut(); - take_network_stream_resource(&mut state.resource_table, rid) - ? + take_network_stream_resource(&mut state.resource_table, rid)? }; let url = Url::parse(&url)?; @@ -163,8 +174,7 @@ pub async fn op_http2_listen( #[smi] rid: ResourceId, ) -> Result { let stream = - take_network_stream_resource(&mut state.borrow_mut().resource_table, rid) - ?; + take_network_stream_resource(&mut state.borrow_mut().resource_table, rid)?; let conn = h2::server::Builder::new().handshake(stream).await?; Ok( @@ -189,8 +199,7 @@ pub async fn op_http2_accept( let resource = state .borrow() .resource_table - .get::(rid) - ?; + .get::(rid)?; let mut conn = RcRef::map(&resource, |r| &r.conn).borrow_mut().await; if let Some(res) = conn.accept().await { let (req, resp) = res?; @@ -256,8 +265,7 @@ pub async fn op_http2_send_response( let resource = state .borrow() .resource_table - .get::(rid) - ?; + .get::(rid)?; let mut send_response = RcRef::map(resource, |r| &r.send_response) .borrow_mut() .await; @@ -283,11 +291,7 @@ pub async fn op_http2_poll_client_connection( state: Rc>, #[smi] rid: ResourceId, ) -> Result<(), Http2Error> { - let resource = state - .borrow() - .resource_table - .get::(rid) - ?; + let resource = state.borrow().resource_table.get::(rid)?; let cancel_handle = RcRef::map(resource.clone(), |this| &this.cancel_handle); let mut conn = RcRef::map(resource, |this| &this.conn).borrow_mut().await; @@ -317,8 +321,7 @@ pub async fn op_http2_client_request( let resource = state .borrow() .resource_table - .get::(client_rid) - ?; + .get::(client_rid)?; let url = resource.url.clone(); @@ -351,10 +354,7 @@ pub async fn op_http2_client_request( let resource = { let state = state.borrow(); - state - .resource_table - .get::(client_rid) - ? + state.resource_table.get::(client_rid)? }; let mut client = RcRef::map(&resource, |r| &r.client).borrow_mut().await; poll_fn(|cx| client.poll_ready(cx)).await?; @@ -377,8 +377,7 @@ pub async fn op_http2_client_send_data( let resource = state .borrow() .resource_table - .get::(stream_rid) - ?; + .get::(stream_rid)?; let mut stream = RcRef::map(&resource, |r| &r.stream).borrow_mut().await; stream.send_data(data.to_vec().into(), end_of_stream)?; @@ -409,8 +408,7 @@ pub async fn op_http2_client_send_trailers( let resource = state .borrow() .resource_table - .get::(stream_rid) - ?; + .get::(stream_rid)?; let mut stream = RcRef::map(&resource, |r| &r.stream).borrow_mut().await; let mut trailers_map = http::HeaderMap::new(); @@ -442,8 +440,7 @@ pub async fn op_http2_client_get_response( let resource = state .borrow() .resource_table - .get::(stream_rid) - ?; + .get::(stream_rid)?; let mut response_future = RcRef::map(&resource, |r| &r.response).borrow_mut().await; @@ -513,8 +510,7 @@ pub async fn op_http2_client_get_response_body_chunk( let resource = state .borrow() .resource_table - .get::(body_rid) - ?; + .get::(body_rid)?; let mut body = RcRef::map(&resource, |r| &r.body).borrow_mut().await; loop { diff --git a/ext/node/ops/inspector.rs b/ext/node/ops/inspector.rs index ebe332e1b7a031..462366ae5dcd59 100644 --- a/ext/node/ops/inspector.rs +++ b/ext/node/ops/inspector.rs @@ -88,7 +88,11 @@ impl GarbageCollected for JSInspectorSession {} pub enum InspectorConnectError { #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] deno_permissions::PermissionCheckError), + Permission( + #[from] + #[inherit] + deno_permissions::PermissionCheckError, + ), #[class(generic)] #[error("connectToMainThread not supported")] ConnectToMainThreadUnsupported, diff --git a/ext/node/ops/ipc.rs b/ext/node/ops/ipc.rs index 07c028bd89ffec..8a85ee33e03895 100644 --- a/ext/node/ops/ipc.rs +++ b/ext/node/ops/ipc.rs @@ -17,6 +17,7 @@ mod impl_ { use std::task::Context; use std::task::Poll; + use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::serde; use deno_core::serde::Serializer; @@ -25,7 +26,6 @@ mod impl_ { use deno_core::AsyncRefCell; use deno_core::CancelFuture; use deno_core::CancelHandle; - use deno_core::error::JsNativeError; use deno_core::ExternalOpsTracker; use deno_core::OpState; use deno_core::RcRef; @@ -216,8 +216,7 @@ mod impl_ { let stream = state .borrow() .resource_table - .get::(rid) - ?; + .get::(rid)?; let old = stream .queued_bytes .fetch_add(serialized.len(), std::sync::atomic::Ordering::Relaxed); @@ -261,8 +260,7 @@ mod impl_ { let stream = state .borrow() .resource_table - .get::(rid) - ?; + .get::(rid)?; let cancel = stream.cancel.clone(); let mut stream = RcRef::map(stream, |r| &r.read_half).borrow_mut().await; diff --git a/ext/node/ops/os/mod.rs b/ext/node/ops/os/mod.rs index 1917798a63a02a..7ae6ac71670686 100644 --- a/ext/node/ops/os/mod.rs +++ b/ext/node/ops/os/mod.rs @@ -17,13 +17,21 @@ pub enum OsError { Priority(#[inherit] priority::PriorityError), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] PermissionCheckError), + Permission( + #[from] + #[inherit] + PermissionCheckError, + ), #[class(type)] #[error("Failed to get cpu info")] FailedToGetCpuInfo, #[class(inherit)] #[error("Failed to get user info")] - FailedToGetUserInfo(#[source] #[inherit] std::io::Error), + FailedToGetUserInfo( + #[source] + #[inherit] + std::io::Error, + ), } #[op2(fast, stack_trace)] @@ -218,9 +226,7 @@ where } #[op2(fast, stack_trace)] -pub fn op_geteuid

( - state: &mut OpState, -) -> Result +pub fn op_geteuid

(state: &mut OpState) -> Result where P: NodePermissions + 'static, { @@ -239,9 +245,7 @@ where } #[op2(fast, stack_trace)] -pub fn op_getegid

( - state: &mut OpState, -) -> Result +pub fn op_getegid

(state: &mut OpState) -> Result where P: NodePermissions + 'static, { diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index 0b6368cdf92745..04e453176530ce 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -1,6 +1,12 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use crate::NodePermissions; +use crate::NodeRequireLoaderRc; +use crate::NodeResolverRc; +use crate::NpmPackageFolderResolverRc; +use crate::PackageJsonResolverRc; use boxed_error::Boxed; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::url::Url; use deno_core::v8; @@ -12,6 +18,7 @@ use deno_package_json::PackageJsonRc; use deno_path_util::normalize_path; use deno_path_util::url_from_file_path; use deno_path_util::url_to_file_path; +use deno_permissions::PermissionCheckError; use node_resolver::errors::ClosestPkgJsonError; use node_resolver::NodeResolutionKind; use node_resolver::ResolutionMode; @@ -21,13 +28,6 @@ use std::cell::RefCell; use std::path::Path; use std::path::PathBuf; use std::rc::Rc; -use deno_core::error::JsNativeError; -use deno_permissions::PermissionCheckError; -use crate::NodePermissions; -use crate::NodeRequireLoaderRc; -use crate::NodeResolverRc; -use crate::NpmPackageFolderResolverRc; -use crate::PackageJsonResolverRc; #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"] fn ensure_read_permission<'a, P>( @@ -49,10 +49,18 @@ pub struct RequireError(pub Box); pub enum RequireErrorKind { #[class(inherit)] #[error(transparent)] - UrlParse(#[from] #[inherit] url::ParseError), + UrlParse( + #[from] + #[inherit] + url::ParseError, + ), #[class(inherit)] #[error(transparent)] - Permission(#[from] #[inherit] PermissionCheckError), + Permission( + #[from] + #[inherit] + PermissionCheckError, + ), #[class(generic)] #[error(transparent)] PackageExportsResolve( @@ -77,10 +85,18 @@ pub enum RequireErrorKind { UrlConversion(#[from] deno_path_util::PathToUrlError), #[class(inherit)] #[error(transparent)] - Fs(#[from] #[inherit] deno_io::fs::FsError), + Fs( + #[from] + #[inherit] + deno_io::fs::FsError, + ), #[class(inherit)] #[error(transparent)] - ReadModule(#[from] #[inherit] JsNativeError), + ReadModule( + #[from] + #[inherit] + JsNativeError, + ), #[class(inherit)] #[error("Unable to get CWD: {0}")] UnableToGetCwd(#[inherit] deno_io::fs::FsError), @@ -238,13 +254,15 @@ pub fn op_require_resolve_deno_dir( ) -> Result, deno_path_util::PathToUrlError> { let resolver = state.borrow::(); - Ok(resolver - .resolve_package_folder_from_package( - &request, - &url_from_file_path(&PathBuf::from(parent_filename))?, - ) - .ok() - .map(|p| p.to_string_lossy().into_owned())) + Ok( + resolver + .resolve_package_folder_from_package( + &request, + &url_from_file_path(&PathBuf::from(parent_filename))?, + ) + .ok() + .map(|p| p.to_string_lossy().into_owned()), + ) } #[op2(fast)] @@ -371,9 +389,7 @@ pub fn op_require_path_dirname( if let Some(parent) = p.parent() { Ok(parent.to_string_lossy().into_owned()) } else { - Err(JsNativeError::generic( - "Path doesn't have a parent", - )) + Err(JsNativeError::generic("Path doesn't have a parent")) } } @@ -386,9 +402,7 @@ pub fn op_require_path_basename( if let Some(path) = p.file_name() { Ok(path.to_string_lossy().into_owned()) } else { - Err(JsNativeError::generic( - "Path doesn't have a file name", - )) + Err(JsNativeError::generic("Path doesn't have a file name")) } } @@ -584,7 +598,11 @@ where })) } -deno_error::js_error_wrapper!(ClosestPkgJsonError, JsClosestPkgJsonError, "Error"); +deno_error::js_error_wrapper!( + ClosestPkgJsonError, + JsClosestPkgJsonError, + "Error" +); #[op2(fast)] pub fn op_require_is_maybe_cjs( diff --git a/ext/node/ops/v8.rs b/ext/node/ops/v8.rs index a6a02bc8403e28..29c44a905e2cc1 100644 --- a/ext/node/ops/v8.rs +++ b/ext/node/ops/v8.rs @@ -1,12 +1,12 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::v8; use deno_core::FastString; use deno_core::GarbageCollected; use deno_core::ToJsBuffer; use std::ptr::NonNull; -use deno_core::error::JsNativeError; use v8::ValueDeserializerHelper; use v8::ValueSerializerHelper; @@ -278,9 +278,7 @@ pub fn op_v8_new_deserializer( let offset = buffer.byte_offset(); let len = buffer.byte_length(); let backing_store = buffer.get_backing_store().ok_or_else(|| { - JsNativeError::generic( - "deserialization buffer has no backing store", - ) + JsNativeError::generic("deserialization buffer has no backing store") })?; let (buf_slice, buf_ptr) = if let Some(data) = backing_store.data() { // SAFETY: the offset is valid for the underlying buffer because we're getting it directly from v8 diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index e19d3644cea68d..c0bb336993d8b7 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -1,15 +1,15 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use crate::NodePermissions; +use crate::NodeRequireLoaderRc; use deno_core::op2; use deno_core::url::Url; use deno_core::OpState; use deno_fs::FileSystemRc; +use deno_permissions::PermissionCheckError; use std::borrow::Cow; use std::path::Path; use std::path::PathBuf; -use deno_permissions::PermissionCheckError; -use crate::NodePermissions; -use crate::NodeRequireLoaderRc; #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"] fn ensure_read_permission<'a, P>( @@ -31,7 +31,11 @@ pub enum WorkerThreadsFilenameError { Permission(#[from] PermissionCheckError), #[class(inherit)] #[error("{0}")] - UrlParse(#[from] #[inherit] url::ParseError), + UrlParse( + #[from] + #[inherit] + url::ParseError, + ), #[class(generic)] #[error("Relative path entries must start with '.' or '..'")] InvalidRelativeUrl, @@ -49,7 +53,11 @@ pub enum WorkerThreadsFilenameError { FileNotFound(PathBuf), #[class(inherit)] #[error(transparent)] - Fs(#[from] #[inherit] deno_io::fs::FsError), + Fs( + #[from] + #[inherit] + deno_io::fs::FsError, + ), } // todo(dsherret): we should remove this and do all this work inside op_create_worker @@ -72,8 +80,7 @@ where if path.is_relative() && !specifier.starts_with('.') { return Err(WorkerThreadsFilenameError::InvalidRelativeUrl); } - let path = ensure_read_permission::

(state, &path) - ?; + let path = ensure_read_permission::

(state, &path)?; let fs = state.borrow::(); let canonicalized_path = deno_path_util::strip_unc_prefix(fs.realpath_sync(&path)?); @@ -83,8 +90,7 @@ where let url_path = url .to_file_path() .map_err(|_| WorkerThreadsFilenameError::UrlToPathString)?; - let url_path = ensure_read_permission::

(state, &url_path) - ?; + let url_path = ensure_read_permission::

(state, &url_path)?; let fs = state.borrow::(); if !fs.exists_sync(&url_path) { return Err(WorkerThreadsFilenameError::FileNotFound( diff --git a/ext/node/ops/zlib/brotli.rs b/ext/node/ops/zlib/brotli.rs index b8a2630f92ef4d..614a33600b474f 100644 --- a/ext/node/ops/zlib/brotli.rs +++ b/ext/node/ops/zlib/brotli.rs @@ -30,10 +30,18 @@ pub enum BrotliError { DecompressFailed, #[class(inherit)] #[error(transparent)] - Join(#[from] #[inherit] tokio::task::JoinError), + Join( + #[from] + #[inherit] + tokio::task::JoinError, + ), #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource( + #[from] + #[inherit] + deno_core::error::ResourceError, + ), #[class(inherit)] #[error("{0}")] Io(#[inherit] std::io::Error), @@ -172,10 +180,7 @@ pub fn op_brotli_compress_stream( #[buffer] input: &[u8], #[buffer] output: &mut [u8], ) -> Result { - let ctx = state - .resource_table - .get::(rid) - ?; + let ctx = state.resource_table.get::(rid)?; let mut inst = ctx.inst.borrow_mut(); let mut output_offset = 0; @@ -204,10 +209,7 @@ pub fn op_brotli_compress_stream_end( #[smi] rid: u32, #[buffer] output: &mut [u8], ) -> Result { - let ctx = state - .resource_table - .get::(rid) - ?; + let ctx = state.resource_table.get::(rid)?; let mut inst = ctx.inst.borrow_mut(); let mut output_offset = 0; @@ -282,10 +284,7 @@ pub fn op_brotli_decompress_stream( #[buffer] input: &[u8], #[buffer] output: &mut [u8], ) -> Result { - let ctx = state - .resource_table - .get::(rid) - ?; + let ctx = state.resource_table.get::(rid)?; let mut inst = ctx.inst.borrow_mut(); let mut output_offset = 0; @@ -313,10 +312,7 @@ pub fn op_brotli_decompress_stream_end( #[smi] rid: u32, #[buffer] output: &mut [u8], ) -> Result { - let ctx = state - .resource_table - .get::(rid) - ?; + let ctx = state.resource_table.get::(rid)?; let mut inst = ctx.inst.borrow_mut(); let mut output_offset = 0; diff --git a/ext/node/ops/zlib/mod.rs b/ext/node/ops/zlib/mod.rs index cba3b449c1953d..5612778d42aac6 100644 --- a/ext/node/ops/zlib/mod.rs +++ b/ext/node/ops/zlib/mod.rs @@ -1,10 +1,10 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::error::JsNativeError; use deno_core::op2; use libc::c_ulong; use std::borrow::Cow; use std::cell::RefCell; -use deno_core::error::JsNativeError; use zlib::*; mod alloc; @@ -82,10 +82,7 @@ impl ZlibInner { Ok(()) } - fn do_write( - &mut self, - flush: Flush, - ) -> Result<(), JsNativeError> { + fn do_write(&mut self, flush: Flush) -> Result<(), JsNativeError> { self.flush = flush; match self.mode { Mode::Deflate | Mode::Gzip | Mode::DeflateRaw => { @@ -265,10 +262,18 @@ pub enum ZlibError { NotInitialized, #[class(inherit)] #[error(transparent)] - Mode(#[from] #[inherit] mode::ModeError), + Mode( + #[from] + #[inherit] + mode::ModeError, + ), #[class(inherit)] #[error(transparent)] - Other(#[from] #[inherit] JsNativeError), + Other( + #[from] + #[inherit] + JsNativeError, + ), } #[op2(fast)] diff --git a/ext/telemetry/lib.rs b/ext/telemetry/lib.rs index 93fdae67ee38be..d0d319a7c820f8 100644 --- a/ext/telemetry/lib.rs +++ b/ext/telemetry/lib.rs @@ -861,9 +861,12 @@ fn op_otel_span_start<'s>( let parent_span_id = parse_span_id(scope, parent_span_id); - let name = owned_string(scope, name.try_cast().map_err(|e: v8::DataError| { - OtelError::Data(e.into()) - })?); + let name = owned_string( + scope, + name + .try_cast() + .map_err(|e: v8::DataError| OtelError::Data(e.into()))?, + ); let temporary_span = TemporarySpan(SpanData { span_context: SpanContext::new( diff --git a/ext/tls/lib.rs b/ext/tls/lib.rs index da05d1bfc73c50..0e7d12c2e21075 100644 --- a/ext/tls/lib.rs +++ b/ext/tls/lib.rs @@ -9,6 +9,7 @@ pub use rustls_tokio_stream::*; pub use webpki; pub use webpki_roots; +use deno_core::error::JsNativeError; use rustls::client::danger::HandshakeSignatureValid; use rustls::client::danger::ServerCertVerified; use rustls::client::danger::ServerCertVerifier; @@ -26,7 +27,6 @@ use std::io::BufReader; use std::io::Cursor; use std::net::IpAddr; use std::sync::Arc; -use deno_core::error::JsNativeError; mod tls_key; pub use tls_key::*; @@ -58,9 +58,7 @@ pub enum TlsError { /// This was done because the root cert store is not needed in all cases /// and takes a bit of time to initialize. pub trait RootCertStoreProvider: Send + Sync { - fn get_or_try_init( - &self, - ) -> Result<&RootCertStore, JsNativeError>; + fn get_or_try_init(&self) -> Result<&RootCertStore, JsNativeError>; } // This extension has no runtime apis, it only exports some shared native functions. diff --git a/ext/webgpu/buffer.rs b/ext/webgpu/buffer.rs index ab5b91290898f2..6dde12188533be 100644 --- a/ext/webgpu/buffer.rs +++ b/ext/webgpu/buffer.rs @@ -17,7 +17,11 @@ use super::error::WebGpuResult; pub enum BufferError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource( + #[from] + #[inherit] + deno_core::error::ResourceError, + ), #[class(type)] #[error("usage is not valid")] InvalidUsage, diff --git a/ext/webgpu/bundle.rs b/ext/webgpu/bundle.rs index 2420c128183c93..7c307ec198bb5c 100644 --- a/ext/webgpu/bundle.rs +++ b/ext/webgpu/bundle.rs @@ -16,7 +16,11 @@ use super::error::WebGpuResult; pub enum BundleError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] ResourceError), + Resource( + #[from] + #[inherit] + ResourceError, + ), #[class(type)] #[error("size must be larger than 0")] InvalidSize, diff --git a/ext/webgpu/byow.rs b/ext/webgpu/byow.rs index b60a7ce3c0b87b..54fadf3c27f942 100644 --- a/ext/webgpu/byow.rs +++ b/ext/webgpu/byow.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use crate::surface::WebGpuSurface; use deno_core::op2; use deno_core::OpState; use deno_core::ResourceId; @@ -11,7 +12,6 @@ use std::ffi::c_void; target_os = "openbsd" ))] use std::ptr::NonNull; -use crate::surface::WebGpuSurface; #[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ByowError { @@ -207,5 +207,7 @@ fn raw_window( _window: *const c_void, _display: *const c_void, ) -> Result { - Err(deno_core::error::JsNativeError::type_error("Unsupported platform")) + Err(deno_core::error::JsNativeError::type_error( + "Unsupported platform", + )) } diff --git a/ext/webgpu/lib.rs b/ext/webgpu/lib.rs index a01f0025cb38d8..22b45f3fd65eb3 100644 --- a/ext/webgpu/lib.rs +++ b/ext/webgpu/lib.rs @@ -87,7 +87,11 @@ pub mod texture; pub enum InitError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource( + #[from] + #[inherit] + deno_core::error::ResourceError, + ), #[class(generic)] #[error(transparent)] InvalidAdapter(wgpu_core::instance::InvalidAdapter), diff --git a/ext/webgpu/render_pass.rs b/ext/webgpu/render_pass.rs index 5042c77d7701e0..f6729915f19b1d 100644 --- a/ext/webgpu/render_pass.rs +++ b/ext/webgpu/render_pass.rs @@ -15,7 +15,11 @@ use super::error::WebGpuResult; pub enum RenderPassError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] ResourceError), + Resource( + #[from] + #[inherit] + ResourceError, + ), #[class(type)] #[error("size must be larger than 0")] InvalidSize, diff --git a/ext/webgpu/surface.rs b/ext/webgpu/surface.rs index e7f63b2bcdf52a..84245ef7a25e5c 100644 --- a/ext/webgpu/surface.rs +++ b/ext/webgpu/surface.rs @@ -15,7 +15,11 @@ use wgpu_types::SurfaceStatus; pub enum SurfaceError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] ResourceError), + Resource( + #[from] + #[inherit] + ResourceError, + ), #[class(generic)] #[error("Invalid Surface Status")] InvalidStatus, diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index 2eed7a8de8cfb3..ad3c82d8ef0254 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -1,6 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::stream::WebSocketStream; use bytes::Bytes; +use deno_core::error::JsNativeError; use deno_core::futures::TryFutureExt; use deno_core::op2; use deno_core::unsync::spawn; @@ -44,7 +45,6 @@ use std::num::NonZeroUsize; use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; -use deno_core::error::JsNativeError; use tokio::io::AsyncRead; use tokio::io::AsyncWrite; use tokio::io::ReadHalf; diff --git a/resolvers/npm_cache/registry_info.rs b/resolvers/npm_cache/registry_info.rs index da1a03e3fa452d..bb99afdb032d34 100644 --- a/resolvers/npm_cache/registry_info.rs +++ b/resolvers/npm_cache/registry_info.rs @@ -4,13 +4,13 @@ use std::collections::HashMap; use std::collections::HashSet; use std::sync::Arc; +use async_trait::async_trait; use deno_core::error::JsNativeError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; use deno_core::parking_lot::Mutex; use deno_core::serde_json; use deno_core::url::Url; -use async_trait::async_trait; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageInfo; use deno_npm::registry::NpmRegistryApi; @@ -106,7 +106,8 @@ pub enum LoadFileCachedPackageInfoError { pub struct LoadPackageInfoError { url: Url, name: String, - #[inherit] inner: LoadPackageInfoInnerError, + #[inherit] + inner: LoadPackageInfoInnerError, } #[derive(Debug, thiserror::Error, deno_error::JsError)] @@ -186,9 +187,9 @@ impl RegistryInfoProvider { Ok(None) => Err(NpmRegistryPackageInfoLoadError::PackageNotExists { package_name: name.to_string(), }), - Err(err) => { - Err(NpmRegistryPackageInfoLoadError::LoadError(Arc::new(JsNativeError::from_err(err)))) - } + Err(err) => Err(NpmRegistryPackageInfoLoadError::LoadError(Arc::new( + JsNativeError::from_err(err), + ))), } } @@ -196,10 +197,12 @@ impl RegistryInfoProvider { self: &Arc, name: &str, ) -> Result>, LoadPackageInfoError> { - self.load_package_info_inner(name).await.map_err(|err| LoadPackageInfoError { - url: get_package_url(&self.npmrc, name), - name: name.to_string(), - inner: err + self.load_package_info_inner(name).await.map_err(|err| { + LoadPackageInfoError { + url: get_package_url(&self.npmrc, name), + name: name.to_string(), + inner: err, + } }) } @@ -298,9 +301,9 @@ impl RegistryInfoProvider { })?; match maybe_package_info { Some(package_info) => Ok(package_info), - None => { - Err(LoadFileCachedPackageInfoError::FileMissing(name.to_string())) - } + None => Err(LoadFileCachedPackageInfoError::FileMissing( + name.to_string(), + )), } } @@ -312,7 +315,10 @@ impl RegistryInfoProvider { match maybe_auth_header_for_npm_registry(registry_config) { Ok(maybe_auth_header) => maybe_auth_header, Err(err) => { - return std::future::ready(Err(Arc::new(JsNativeError::from_err(err)))).boxed_local() + return std::future::ready(Err(Arc::new(JsNativeError::from_err( + err, + )))) + .boxed_local() } }; let name = name.to_string(); diff --git a/resolvers/npm_cache/remote.rs b/resolvers/npm_cache/remote.rs index e3c164d2b50f9d..640c2bcd82c3c5 100644 --- a/resolvers/npm_cache/remote.rs +++ b/resolvers/npm_cache/remote.rs @@ -18,7 +18,10 @@ pub enum AuthHeaderForNpmRegistryError { // TODO(bartlomieju): support more auth methods besides token and basic auth pub fn maybe_auth_header_for_npm_registry( registry_config: &RegistryConfig, -) -> Result, AuthHeaderForNpmRegistryError> { +) -> Result< + Option<(header::HeaderName, header::HeaderValue)>, + AuthHeaderForNpmRegistryError, +> { if let Some(token) = registry_config.auth_token.as_ref() { return Ok(Some(( header::AUTHORIZATION, diff --git a/runtime/ops/fs_events.rs b/runtime/ops/fs_events.rs index f7cd805a384cb8..d375a5f076036d 100644 --- a/runtime/ops/fs_events.rs +++ b/runtime/ops/fs_events.rs @@ -11,6 +11,8 @@ use deno_core::ResourceId; use deno_core::op2; +use deno_error::builtin_classes::GENERIC_ERROR; +use deno_error::JsErrorClass; use deno_permissions::PermissionsContainer; use notify::event::Event as NotifyEvent; use notify::event::ModifyKind; @@ -27,8 +29,6 @@ use std::path::Path; use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; -use deno_error::builtin_classes::GENERIC_ERROR; -use deno_error::JsErrorClass; use tokio::sync::mpsc; deno_core::extension!( @@ -161,7 +161,9 @@ fn start_watcher( let sender_clone = senders.clone(); let watcher: RecommendedWatcher = Watcher::new( move |res: Result| { - let res2 = res.map(FsEvent::from).map_err(|e| FsEventsError::Notify(JsNotifyError(e))); + let res2 = res + .map(FsEvent::from) + .map_err(|e| FsEventsError::Notify(JsNotifyError(e))); for (paths, sender) in sender_clone.lock().iter() { // Ignore result, if send failed it means that watcher was already closed, // but not all messages have been flushed. @@ -187,7 +189,8 @@ fn start_watcher( } }, Default::default(), - ).map_err(|e| FsEventsError::Notify(JsNotifyError(e)))?; + ) + .map_err(|e| FsEventsError::Notify(JsNotifyError(e)))?; state.put::(WatcherState { watcher, senders }); @@ -216,7 +219,10 @@ fn op_fs_events_open( .check_read(path, "Deno.watchFs()")?; let watcher = state.borrow_mut::(); - watcher.watcher.watch(&path, recursive_mode).map_err(|e| FsEventsError::Notify(JsNotifyError(e)))?; + watcher + .watcher + .watch(&path, recursive_mode) + .map_err(|e| FsEventsError::Notify(JsNotifyError(e)))?; } let resource = FsEventsResource { receiver: AsyncRefCell::new(receiver), @@ -232,10 +238,7 @@ async fn op_fs_events_poll( state: Rc>, #[smi] rid: ResourceId, ) -> Result, FsEventsError> { - let resource = state - .borrow() - .resource_table - .get::(rid)?; + let resource = state.borrow().resource_table.get::(rid)?; let mut receiver = RcRef::map(&resource, |r| &r.receiver).borrow_mut().await; let cancel = RcRef::map(resource, |r| &r.cancel); let maybe_result = receiver.recv().or_cancel(cancel).await?; diff --git a/runtime/ops/http.rs b/runtime/ops/http.rs index 3fe3cea1aa0804..21c1cf62d40aac 100644 --- a/runtime/ops/http.rs +++ b/runtime/ops/http.rs @@ -1,6 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use std::rc::Rc; use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; @@ -8,6 +7,7 @@ use deno_core::ResourceId; use deno_http::http_create_conn_resource; use deno_net::io::TcpStreamResource; use deno_net::ops_tls::TlsStreamResource; +use std::rc::Rc; pub const UNSTABLE_FEATURE_NAME: &str = "http"; @@ -33,7 +33,11 @@ pub enum HttpStartError { ReuniteUnix(#[from] tokio::net::unix::ReuniteError), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io( + #[from] + #[inherit] + std::io::Error, + ), #[class(inherit)] #[error(transparent)] Resource(#[inherit] ResourceError), diff --git a/runtime/ops/os/mod.rs b/runtime/ops/os/mod.rs index 545be11bb1fc58..3b3c392d83c12b 100644 --- a/runtime/ops/os/mod.rs +++ b/runtime/ops/os/mod.rs @@ -209,9 +209,7 @@ fn op_loadavg( #[op2(stack_trace, stack_trace)] #[string] -fn op_hostname( - state: &mut OpState, -) -> Result { +fn op_hostname(state: &mut OpState) -> Result { state .borrow_mut::() .check_sys("hostname", "Deno.hostname()")?; @@ -220,9 +218,7 @@ fn op_hostname( #[op2(stack_trace)] #[string] -fn op_os_release( - state: &mut OpState, -) -> Result { +fn op_os_release(state: &mut OpState) -> Result { state .borrow_mut::() .check_sys("osRelease", "Deno.osRelease()")?; @@ -295,9 +291,7 @@ fn op_system_memory_info( #[cfg(not(windows))] #[op2(stack_trace)] #[smi] -fn op_gid( - state: &mut OpState, -) -> Result, PermissionCheckError> { +fn op_gid(state: &mut OpState) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("gid", "Deno.gid()")?; @@ -311,9 +305,7 @@ fn op_gid( #[cfg(windows)] #[op2(stack_trace)] #[smi] -fn op_gid( - state: &mut OpState, -) -> Result, PermissionCheckError> { +fn op_gid(state: &mut OpState) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("gid", "Deno.gid()")?; @@ -323,9 +315,7 @@ fn op_gid( #[cfg(not(windows))] #[op2(stack_trace)] #[smi] -fn op_uid( - state: &mut OpState, -) -> Result, PermissionCheckError> { +fn op_uid(state: &mut OpState) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("uid", "Deno.uid()")?; @@ -339,9 +329,7 @@ fn op_uid( #[cfg(windows)] #[op2(stack_trace)] #[smi] -fn op_uid( - state: &mut OpState, -) -> Result, PermissionCheckError> { +fn op_uid(state: &mut OpState) -> Result, PermissionCheckError> { state .borrow_mut::() .check_sys("uid", "Deno.uid()")?; @@ -528,8 +516,6 @@ fn os_uptime(state: &mut OpState) -> Result { #[op2(fast, stack_trace)] #[number] -fn op_os_uptime( - state: &mut OpState, -) -> Result { +fn op_os_uptime(state: &mut OpState) -> Result { os_uptime(state) } diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index 0a4041af30c1ee..f3710444a1f158 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -33,11 +33,11 @@ use tokio::process::Command; use std::os::windows::process::CommandExt; use crate::ops::signal::SignalError; +use deno_core::error::JsNativeError; #[cfg(unix)] use std::os::unix::prelude::ExitStatusExt; #[cfg(unix)] use std::os::unix::process::CommandExt; -use deno_core::error::JsNativeError; pub const UNSTABLE_FEATURE_NAME: &str = "process"; @@ -108,7 +108,9 @@ impl StdioOrRid { match &self { StdioOrRid::Stdio(val) => Ok(val.as_stdio()), StdioOrRid::Rid(rid) => { - Ok(FileResource::with_file(state, *rid, |file| Ok(file.as_stdio().map_err(JsNativeError::from_err)?))?) + Ok(FileResource::with_file(state, *rid, |file| { + Ok(file.as_stdio().map_err(JsNativeError::from_err)?) + })?) } } } @@ -192,7 +194,7 @@ pub struct SpawnArgs { #[cfg(unix)] deno_error::js_error_wrapper!(nix::Error, JsNixError, |err| { - match err { + match err { nix::Error::ECHILD => "NotFound", nix::Error::EINVAL => "TypeError", nix::Error::ENOENT => "NotFound", @@ -215,7 +217,8 @@ pub enum ProcessError { #[error("Failed to spawn '{command}': {error}")] SpawnFailed { command: String, - #[source] #[inherit] + #[source] + #[inherit] error: Box, }, #[class(inherit)] @@ -1116,8 +1119,10 @@ mod deprecated { use nix::sys::signal::kill as unix_kill; use nix::sys::signal::Signal; use nix::unistd::Pid; - let sig = Signal::try_from(signo).map_err(|e | ProcessError::Nix(JsNixError(e)))?; - unix_kill(Pid::from_raw(pid), Some(sig)).map_err(|e | ProcessError::Nix(JsNixError(e))) + let sig = + Signal::try_from(signo).map_err(|e| ProcessError::Nix(JsNixError(e)))?; + unix_kill(Pid::from_raw(pid), Some(sig)) + .map_err(|e| ProcessError::Nix(JsNixError(e))) } #[cfg(not(unix))] diff --git a/runtime/ops/signal.rs b/runtime/ops/signal.rs index 7ac4373e1d70d0..46464ff9734435 100644 --- a/runtime/ops/signal.rs +++ b/runtime/ops/signal.rs @@ -8,6 +8,7 @@ use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; +use deno_core::error::ResourceError; use std::borrow::Cow; use std::cell::RefCell; #[cfg(unix)] @@ -17,7 +18,6 @@ use std::rc::Rc; use std::sync::atomic::AtomicBool; #[cfg(unix)] use std::sync::Arc; -use deno_core::error::ResourceError; #[cfg(unix)] use tokio::signal::unix::signal; #[cfg(unix)] diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index 86dda1d1fdad5e..edb9ef0a255654 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -19,17 +19,17 @@ use deno_io::WinTtyState; #[cfg(windows)] use std::sync::Arc; +use deno_core::error::JsNativeError; #[cfg(unix)] use deno_core::ResourceId; +use deno_error::builtin_classes::GENERIC_ERROR; +use deno_error::JsErrorClass; #[cfg(unix)] use nix::sys::termios; #[cfg(unix)] use std::cell::RefCell; #[cfg(unix)] use std::collections::HashMap; -use deno_core::error::{JsNativeError}; -use deno_error::builtin_classes::{GENERIC_ERROR}; -use deno_error::JsErrorClass; #[cfg(unix)] #[derive(Default, Clone)] @@ -52,11 +52,11 @@ impl TtyModeStore { } } +use crate::ops::process::JsNixError; #[cfg(windows)] use winapi::shared::minwindef::DWORD; #[cfg(windows)] use winapi::um::wincon; -use crate::ops::process::JsNixError; deno_core::extension!( deno_tty, @@ -71,10 +71,18 @@ deno_core::extension!( pub enum TtyError { #[class(inherit)] #[error(transparent)] - Resource(#[from] #[inherit] deno_core::error::ResourceError), + Resource( + #[from] + #[inherit] + deno_core::error::ResourceError, + ), #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] Error), + Io( + #[from] + #[inherit] + Error, + ), #[cfg(unix)] #[class(inherit)] #[error(transparent)] @@ -111,10 +119,7 @@ fn op_set_raw( is_raw: bool, cbreak: bool, ) -> Result<(), TtyError> { - let handle_or_fd = state - .resource_table - .get_fd(rid) - ?; + let handle_or_fd = state.resource_table.get_fd(rid)?; // From https://github.com/kkawakam/rustyline/blob/master/src/tty/windows.rs // and https://github.com/kkawakam/rustyline/blob/master/src/tty/unix.rs @@ -123,8 +128,8 @@ fn op_set_raw( // Copyright (c) 2019 Timon. MIT license. #[cfg(windows)] { - use winapi::shared::minwindef::FALSE; use deno_core::error::JsNativeError; + use winapi::shared::minwindef::FALSE; use winapi::um::consoleapi; @@ -276,8 +281,8 @@ fn op_set_raw( Some(mode) => mode, None => { // Save original mode. - let original_mode = - termios::tcgetattr(raw_fd).map_err(|e| TtyError::Nix(JsNixError(e)))?; + let original_mode = termios::tcgetattr(raw_fd) + .map_err(|e| TtyError::Nix(JsNixError(e)))?; tty_mode_store.set(rid, original_mode.clone()); original_mode } @@ -323,10 +328,7 @@ fn op_console_size( result: &mut [u32], rid: u32, ) -> Result<(), TtyError> { - let fd = state - .resource_table - .get_fd(rid) - ?; + let fd = state.resource_table.get_fd(rid)?; let size = console_size_from_fd(fd)?; result[0] = size.cols; result[1] = size.rows; diff --git a/runtime/ops/web_worker/sync_fetch.rs b/runtime/ops/web_worker/sync_fetch.rs index a7afd6972a0fee..1b8b7702e3ed30 100644 --- a/runtime/ops/web_worker/sync_fetch.rs +++ b/runtime/ops/web_worker/sync_fetch.rs @@ -32,7 +32,11 @@ pub enum SyncFetchError { BlobUrlsNotSupportedInContext, #[class(inherit)] #[error("{0}")] - Io(#[from] #[inherit] std::io::Error), + Io( + #[from] + #[inherit] + std::io::Error, + ), #[class(type)] #[error("Invalid script URL")] InvalidScriptUrl, @@ -53,10 +57,18 @@ pub enum SyncFetchError { MissingMimeType, #[class(inherit)] #[error(transparent)] - Fetch(#[from] #[inherit] FetchError), + Fetch( + #[from] + #[inherit] + FetchError, + ), #[class(inherit)] #[error(transparent)] - Join(#[from] #[inherit] tokio::task::JoinError), + Join( + #[from] + #[inherit] + tokio::task::JoinError, + ), #[class(inherit)] #[error(transparent)] Other(#[inherit] deno_core::error::JsNativeError), diff --git a/runtime/shared.rs b/runtime/shared.rs index e707e7d32db848..a353c6948dfeaf 100644 --- a/runtime/shared.rs +++ b/runtime/shared.rs @@ -63,8 +63,16 @@ extension!(runtime, } ); -deno_error::js_error_wrapper!(deno_ast::ParseDiagnostic, JsParseDiagnostic, "Error"); -deno_error::js_error_wrapper!(deno_ast::TranspileError, JsTranspileError, "Error"); +deno_error::js_error_wrapper!( + deno_ast::ParseDiagnostic, + JsParseDiagnostic, + "Error" +); +deno_error::js_error_wrapper!( + deno_ast::TranspileError, + JsTranspileError, + "Error" +); pub fn maybe_transpile_source( name: ModuleName, @@ -94,7 +102,8 @@ pub fn maybe_transpile_source( capture_tokens: false, scope_analysis: false, maybe_syntax: None, - }).map_err(|e| JsNativeError::from_err(JsParseDiagnostic(e)))?; + }) + .map_err(|e| JsNativeError::from_err(JsParseDiagnostic(e)))?; let transpiled_source = parsed .transpile( &deno_ast::TranspileOptions { @@ -110,7 +119,8 @@ pub fn maybe_transpile_source( }, ..Default::default() }, - ).map_err(|e| JsNativeError::from_err(JsTranspileError(e)))? + ) + .map_err(|e| JsNativeError::from_err(JsTranspileError(e)))? .into_source(); let maybe_source_map: Option = transpiled_source diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index 5e8a6517b35c05..7f2d18a8f088f6 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -3,7 +3,7 @@ use deno_broadcast_channel::InMemoryBroadcastChannel; use deno_cache::CreateCache; use deno_cache::SqliteBackedCache; -use deno_core::error::{CoreError}; +use deno_core::error::CoreError; use deno_core::futures::channel::mpsc; use deno_core::futures::future::poll_fn; use deno_core::futures::stream::StreamExt; diff --git a/runtime/worker.rs b/runtime/worker.rs index db9a866c538265..1dcefbc0a9302f 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -12,8 +12,8 @@ use std::time::Instant; use deno_broadcast_channel::InMemoryBroadcastChannel; use deno_cache::CreateCache; use deno_cache::SqliteBackedCache; -use deno_core::error::{AnyError, CoreError}; use deno_core::error::JsError; +use deno_core::error::{AnyError, CoreError}; use deno_core::merge_op_metrics; use deno_core::v8; use deno_core::CompiledWasmModuleStore; From 71ae5119804eb7941132a4d75920a6342f2940d7 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Thu, 19 Dec 2024 03:15:44 +0100 Subject: [PATCH 07/36] progress --- Cargo.lock | 2 - Cargo.toml | 1 + cli/http_util.rs | 6 +- cli/module_loader.rs | 23 ++-- cli/npm/byonm.rs | 7 +- cli/npm/managed/mod.rs | 5 +- cli/npm/managed/resolvers/common.rs | 71 ++++++----- .../managed/resolvers/common/bin_entries.rs | 39 ++++--- .../resolvers/common/lifecycle_scripts.rs | 44 +++++-- cli/npm/managed/resolvers/global.rs | 15 ++- cli/npm/managed/resolvers/local.rs | 32 +++-- cli/npm/managed/resolvers/mod.rs | 1 + cli/npm/mod.rs | 10 +- cli/resolver.rs | 3 +- cli/standalone/mod.rs | 6 +- cli/tools/run/hmr.rs | 4 +- cli/tools/serve.rs | 4 +- cli/tools/task.rs | 14 ++- cli/tools/test/reporters/compound.rs | 2 +- cli/tsc/mod.rs | 2 +- cli/util/fs.rs | 110 +++++++++++++----- cli/worker.rs | 4 +- ext/crypto/lib.rs | 34 +++--- ext/io/lib.rs | 8 +- ext/node/lib.rs | 2 +- ext/node/ops/require.rs | 13 +-- ext/node/ops/worker_threads.rs | 12 +- ext/web/stream_resource.rs | 2 +- resolvers/npm_cache/lib.rs | 88 ++++++++------ resolvers/npm_cache/tarball.rs | 52 +++++---- resolvers/npm_cache/tarball_extract.rs | 103 +++++++++++----- runtime/ops/process.rs | 2 +- runtime/ops/tty.rs | 2 +- 33 files changed, 454 insertions(+), 269 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d186646860d477..c274dd602f32a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1427,8 +1427,6 @@ dependencies = [ [[package]] name = "deno_cache_dir" version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54df1c5177ace01d92b872584ab9af8290681bb150fd9b423c37a494ad5ddbdc" dependencies = [ "async-trait", "base32", diff --git a/Cargo.toml b/Cargo.toml index 429ef7d34222e7..5d16a7167068d4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -352,3 +352,4 @@ deno_graph = { path = "../deno_graph" } deno_npm = { path = "../deno_npm" } deno_doc = { path = "../deno_doc" } deno_config = { path = "../deno_config" } +deno_cache_dir = { path = "../deno_cache_dir/rs_lib" } diff --git a/cli/http_util.rs b/cli/http_util.rs index da64151fde5853..f332c4aa20effc 100644 --- a/cli/http_util.rs +++ b/cli/http_util.rs @@ -9,9 +9,9 @@ use deno_core::error::AnyError; use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::parking_lot::Mutex; -use deno_core::{serde, JsError}; use deno_core::serde_json; use deno_core::url::Url; +use deno_core::{serde, JsError}; use deno_runtime::deno_fetch; use deno_runtime::deno_fetch::create_http_client; use deno_runtime::deno_fetch::CreateHttpClientOptions; @@ -314,7 +314,7 @@ impl HttpClient { .clone() .send(req) .await - .map_err(|e| DownloadErrorKind::Fetch(e.into()).into_box())?; + .map_err(|e| DownloadErrorKind::Fetch(e).into_box())?; let status = response.status(); if status.is_redirection() { for _ in 0..5 { @@ -334,7 +334,7 @@ impl HttpClient { .clone() .send(req) .await - .map_err(|e| DownloadErrorKind::Fetch(e.into()).into_box())?; + .map_err(|e| DownloadErrorKind::Fetch(e).into_box())?; let status = new_response.status(); if status.is_redirection() { response = new_response; diff --git a/cli/module_loader.rs b/cli/module_loader.rs index b989427460edd9..5e6b4704ee7e98 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -1005,7 +1005,7 @@ impl ModuleLoader std::future::ready(()).boxed_local() } - fn get_source_map(&self, file_name: &str) -> Option> { + fn get_source_map(&self, file_name: &str) -> Option> { let specifier = resolve_url(file_name).ok()?; match specifier.scheme() { // we should only be looking for emits for schemes that denote external @@ -1017,7 +1017,7 @@ impl ModuleLoader .0 .load_prepared_module_for_source_map_sync(&specifier) .ok()??; - source_map_from_code(source.code.as_bytes()) + source_map_from_code(source.code.as_bytes()).map(Into::into) } fn get_source_mapped_source_line( @@ -1113,15 +1113,17 @@ impl NodeRequireLoader &self, permissions: &mut dyn deno_runtime::deno_node::NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> - { + ) -> Result, JsNativeError> { if let Ok(url) = deno_path_util::url_from_file_path(path) { // allow reading if it's in the module graph if self.graph_container.graph().get(&url).is_some() { return Ok(Cow::Borrowed(path)); } } - self.npm_resolver.ensure_read_permission(permissions, path) + self + .npm_resolver + .ensure_read_permission(permissions, path) + .map_err(JsNativeError::from_err) } fn load_text_file_lossy( @@ -1138,13 +1140,10 @@ impl NodeRequireLoader let specifier = deno_path_util::url_from_file_path(path) .map_err(JsNativeError::from_err)?; if self.in_npm_pkg_checker.in_npm_package(&specifier) { - return Err( - NotSupportedKindInNpmError { - media_type, - specifier, - } - .into(), - ); + return Err(JsNativeError::from_err(NotSupportedKindInNpmError { + media_type, + specifier, + })); } self .emitter diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index 11c9d87a083f25..9ad322e1906b58 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -17,8 +17,8 @@ use crate::args::NpmProcessState; use crate::args::NpmProcessStateKind; use crate::resolver::CliDenoResolverFs; -use super::CliNpmResolver; use super::InnerCliNpmResolverRef; +use super::{managed, CliNpmResolver}; pub type CliByonmNpmResolverCreateOptions = ByonmNpmResolverCreateOptions; @@ -79,13 +79,12 @@ impl CliNpmResolver for CliByonmNpmResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> - { + ) -> Result, managed::EnsureRegistryReadPermissionError> { if !path .components() .any(|c| c.as_os_str().to_ascii_lowercase() == "node_modules") { - permissions.check_read_path(path) + permissions.check_read_path(path).map_err(Into::into) } else { Ok(Cow::Borrowed(path)) } diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 3eb8b9dbdd36b6..01c4ebfde1de01 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -61,6 +61,8 @@ use super::ResolvePkgFolderFromDenoReqError; mod resolution; mod resolvers; +pub use resolvers::EnsureRegistryReadPermissionError; + pub enum CliNpmResolverManagedSnapshotOption { ResolveFromLockfile(Arc), Specified(Option), @@ -787,8 +789,7 @@ impl CliNpmResolver for ManagedCliNpmResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> - { + ) -> Result, resolvers::EnsureRegistryReadPermissionError> { self.fs_resolver.ensure_read_permission(permissions, path) } diff --git a/cli/npm/managed/resolvers/common.rs b/cli/npm/managed/resolvers/common.rs index f54c86db3038f0..7f85c6ab25628d 100644 --- a/cli/npm/managed/resolvers/common.rs +++ b/cli/npm/managed/resolvers/common.rs @@ -14,14 +14,14 @@ use std::sync::Mutex; use super::super::PackageCaching; use async_trait::async_trait; use deno_ast::ModuleSpecifier; -use deno_core::anyhow::Context; -use deno_core::error::{AnyError, JsNativeError}; +use deno_core::error::JsNativeError; use deno_core::futures; use deno_core::futures::StreamExt; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; use deno_runtime::deno_fs::FileSystem; +use deno_runtime::deno_io::fs::FsError; use deno_runtime::deno_node::NodePermissions; use node_resolver::errors::PackageFolderResolveError; @@ -58,7 +58,7 @@ pub trait NpmPackageFsResolver: Send + Sync { fn resolve_package_cache_folder_id_from_specifier( &self, specifier: &ModuleSpecifier, - ) -> Result, AnyError>; + ) -> Result, std::io::Error>; async fn cache_packages<'a>( &self, @@ -70,7 +70,22 @@ pub trait NpmPackageFsResolver: Send + Sync { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError>; + ) -> Result, EnsureRegistryReadPermissionError>; +} + +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum EnsureRegistryReadPermissionError { + #[class(inherit)] + #[error("failed canonicalizing '{path}'")] + Canonicalize { + path: PathBuf, + #[source] + #[inherit] + source: FsError, + }, + #[class(inherit)] + #[error(transparent)] + PermissionCheck(#[from] deno_runtime::deno_permissions::PermissionCheckError), } #[derive(Debug)] @@ -93,8 +108,7 @@ impl RegistryReadPermissionChecker { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> - { + ) -> Result, EnsureRegistryReadPermissionError> { if permissions.query_read_all() { return Ok(Cow::Borrowed(path)); // skip permissions checks below } @@ -107,26 +121,29 @@ impl RegistryReadPermissionChecker { if is_path_in_node_modules { let mut cache = self.cache.lock().unwrap(); - let mut canonicalize = - |path: &Path| -> Result, AnyError> { - match cache.get(path) { - Some(canon) => Ok(Some(canon.clone())), - None => match self.fs.realpath_sync(path) { - Ok(canon) => { - cache.insert(path.to_path_buf(), canon.clone()); - Ok(Some(canon)) + let mut canonicalize = |path: &Path| -> Result< + Option, + EnsureRegistryReadPermissionError, + > { + match cache.get(path) { + Some(canon) => Ok(Some(canon.clone())), + None => match self.fs.realpath_sync(path) { + Ok(canon) => { + cache.insert(path.to_path_buf(), canon.clone()); + Ok(Some(canon)) + } + Err(e) => { + if e.kind() == ErrorKind::NotFound { + return Ok(None); } - Err(e) => { - if e.kind() == ErrorKind::NotFound { - return Ok(None); - } - Err(AnyError::from(e)).with_context(|| { - format!("failed canonicalizing '{}'", path.display()) - }) - } - }, - } - }; + Err(EnsureRegistryReadPermissionError::Canonicalize { + path: path.to_path_buf(), + source: e, + }) + } + }, + } + }; if let Some(registry_path_canon) = canonicalize(&self.registry_path)? { if let Some(path_canon) = canonicalize(path)? { if path_canon.starts_with(registry_path_canon) { @@ -140,7 +157,7 @@ impl RegistryReadPermissionChecker { } } - permissions.check_read_path(path) + permissions.check_read_path(path).map_err(Into::into) } } @@ -159,7 +176,7 @@ pub async fn cache_packages( } while let Some(result) = futures_unordered.next().await { // surface the first error - result?; + result.map_err(JsNativeError::from_err)?; } Ok(()) } diff --git a/cli/npm/managed/resolvers/common/bin_entries.rs b/cli/npm/managed/resolvers/common/bin_entries.rs index 45bcf626214e5c..be8201127aec6c 100644 --- a/cli/npm/managed/resolvers/common/bin_entries.rs +++ b/cli/npm/managed/resolvers/common/bin_entries.rs @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::npm::managed::NpmResolutionPackage; -use deno_core::anyhow::Context; use deno_npm::resolution::NpmResolutionSnapshot; use deno_npm::NpmPackageId; use std::collections::HashMap; @@ -63,12 +62,13 @@ pub enum BinEntriesError { #[inherit] source: std::io::Error, }, - #[class("Can't set up '{name}' bin at {path}")] - #[error(transparent)] + #[class(inherit)] + #[error("Can't set up '{name}' bin at {path}")] SetUpBin { name: String, path: PathBuf, #[source] + #[inherit] source: Box, }, #[class(inherit)] @@ -204,7 +204,12 @@ impl<'a> BinEntries<'a> { mut handler: impl FnMut(&EntrySetupOutcome<'_>), ) -> Result<(), BinEntriesError> { if !self.entries.is_empty() && !bin_node_modules_dir_path.exists() { - std::fs::create_dir_all(bin_node_modules_dir_path).map_err(|source| BinEntriesError::Creating { path: bin_node_modules_dir_path.to_path_buf(), source })?; + std::fs::create_dir_all(bin_node_modules_dir_path).map_err(|source| { + BinEntriesError::Creating { + path: bin_node_modules_dir_path.to_path_buf(), + source, + } + })?; } self.for_each_entry( @@ -387,9 +392,11 @@ fn make_executable_if_exists(path: &Path) -> Result { if perms.mode() & 0o111 == 0 { // if the original file is not executable, make it executable perms.set_mode(perms.mode() | 0o111); - std::fs::set_permissions(path, perms).map_err(|source| BinEntriesError::Permissions { - path: path.to_path_buf(), - source, + std::fs::set_permissions(path, perms).map_err(|source| { + BinEntriesError::Permissions { + path: path.to_path_buf(), + source, + } })?; } @@ -457,14 +464,18 @@ fn symlink_bin_entry<'a>( if let Err(err) = symlink(&original_relative, &link) { if err.kind() == io::ErrorKind::AlreadyExists { // remove and retry - std::fs::remove_file(&link).map_err(|source| BinEntriesError::RemoveBinSymlink { - path: link.clone(), - source, + std::fs::remove_file(&link).map_err(|source| { + BinEntriesError::RemoveBinSymlink { + path: link.clone(), + source, + } })?; - symlink(&original_relative, &link).map_err(|source| BinEntriesError::SetUpBin { - name: bin_name.to_string(), - path: original_relative.to_path_buf(), - source: Box::new(source.into()), + symlink(&original_relative, &link).map_err(|source| { + BinEntriesError::SetUpBin { + name: bin_name.to_string(), + path: original_relative.to_path_buf(), + source: Box::new(source.into()), + } })?; return Ok(EntrySetupOutcome::Success); } diff --git a/cli/npm/managed/resolvers/common/lifecycle_scripts.rs b/cli/npm/managed/resolvers/common/lifecycle_scripts.rs index 67fb0d37c24ee9..a4020fb9c9ef38 100644 --- a/cli/npm/managed/resolvers/common/lifecycle_scripts.rs +++ b/cli/npm/managed/resolvers/common/lifecycle_scripts.rs @@ -4,7 +4,6 @@ use super::bin_entries::BinEntries; use crate::args::LifecycleScriptsConfig; use crate::task_runner::TaskStdio; use crate::util::progress_bar::ProgressBar; -use deno_core::anyhow::Context; use deno_npm::resolution::NpmResolutionSnapshot; use deno_runtime::deno_io::FromRawIoHandle; use deno_semver::package::PackageNv; @@ -17,7 +16,7 @@ use std::rc::Rc; use std::path::Path; use std::path::PathBuf; -use deno_core::error::{AnyError, JsNativeError}; +use deno_core::error::AnyError; use deno_npm::NpmResolutionPackage; pub trait LifecycleScriptsStrategy { @@ -38,7 +37,7 @@ pub trait LifecycleScriptsStrategy { fn did_run_scripts( &self, package: &NpmResolutionPackage, - ) -> Result<(), AnyError>; + ) -> Result<(), std::io::Error>; } pub struct LifecycleScripts<'a> { @@ -84,6 +83,27 @@ fn is_broken_default_install_script(script: &str, package_path: &Path) -> bool { script == "node-gyp rebuild" && !package_path.join("binding.gyp").exists() } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum LifecycleScriptsError { + #[class(inherit)] + #[error(transparent)] + Io(#[from] std::io::Error), + #[class(inherit)] + #[error(transparent)] + BinEntries(#[from] super::bin_entries::BinEntriesError), + #[class(inherit)] + #[error( + "failed to create npm process state tempfile for running lifecycle scripts" + )] + CreateNpmProcessState(#[source] std::io::Error), + #[class(generic)] + #[error(transparent)] + Task(AnyError), + #[class(generic)] + #[error("failed to run scripts for packages: {}", .0.join(", "))] + RunScripts(Vec), +} + impl<'a> LifecycleScripts<'a> { pub fn can_run_scripts(&self, package_nv: &PackageNv) -> bool { if !self.strategy.can_run_scripts() { @@ -156,7 +176,7 @@ impl<'a> LifecycleScripts<'a> { packages: &[NpmResolutionPackage], root_node_modules_dir_path: &Path, progress_bar: &ProgressBar, - ) -> Result<(), AnyError> { + ) -> Result<(), LifecycleScriptsError> { let kill_signal = KillSignal::default(); let _drop_signal = kill_signal.clone().drop_guard(); // we don't run with signals forwarded because once signals @@ -179,7 +199,7 @@ impl<'a> LifecycleScripts<'a> { root_node_modules_dir_path: &Path, progress_bar: &ProgressBar, kill_signal: KillSignal, - ) -> Result<(), AnyError> { + ) -> Result<(), LifecycleScriptsError> { self.warn_not_run_scripts()?; let get_package_path = |p: &NpmResolutionPackage| self.strategy.package_path(p); @@ -222,7 +242,8 @@ impl<'a> LifecycleScripts<'a> { let temp_file_fd = deno_runtime::ops::process::npm_process_state_tempfile( process_state.as_bytes(), - ).context("failed to create npm process state tempfile for running lifecycle scripts")?; + ) + .map_err(LifecycleScriptsError::CreateNpmProcessState)?; // SAFETY: fd/handle is valid let _temp_file = unsafe { std::fs::File::from_raw_io_handle(temp_file_fd) }; // make sure the file gets closed @@ -273,7 +294,8 @@ impl<'a> LifecycleScripts<'a> { kill_signal: kill_signal.clone(), }, ) - .await?; + .await + .map_err(LifecycleScriptsError::Task)?; let stdout = stdout.unwrap(); let stderr = stderr.unwrap(); if exit_code != 0 { @@ -322,14 +344,12 @@ impl<'a> LifecycleScripts<'a> { if failed_packages.is_empty() { Ok(()) } else { - Err(AnyError::msg(format!( - "failed to run scripts for packages: {}", + Err(LifecycleScriptsError::RunScripts( failed_packages .iter() .map(|p| p.to_string()) - .collect::>() - .join(", ") - ))) + .collect::>(), + )) } } } diff --git a/cli/npm/managed/resolvers/global.rs b/cli/npm/managed/resolvers/global.rs index c0229274f4d7f3..7c4b8045102044 100644 --- a/cli/npm/managed/resolvers/global.rs +++ b/cli/npm/managed/resolvers/global.rs @@ -13,7 +13,7 @@ use crate::npm::CliNpmCache; use crate::npm::CliNpmTarballCache; use async_trait::async_trait; use deno_ast::ModuleSpecifier; -use deno_core::error::{AnyError, JsNativeError}; +use deno_core::error::JsNativeError; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; @@ -143,7 +143,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { fn resolve_package_cache_folder_id_from_specifier( &self, specifier: &ModuleSpecifier, - ) -> Result, AnyError> { + ) -> Result, std::io::Error> { Ok( self .cache @@ -170,7 +170,8 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { for copy in package_partitions.copy_packages { self .cache - .ensure_copy_package(©.get_package_cache_folder_id())?; + .ensure_copy_package(©.get_package_cache_folder_id()) + .map_err(JsNativeError::from_err)?; } let mut lifecycle_scripts = @@ -183,7 +184,9 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { lifecycle_scripts.add(package, Cow::Borrowed(&package_folder)); } - lifecycle_scripts.warn_not_run_scripts()?; + lifecycle_scripts + .warn_not_run_scripts() + .map_err(JsNativeError::from_err)?; Ok(()) } @@ -192,7 +195,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> + ) -> Result, super::common::EnsureRegistryReadPermissionError> { self .registry_read_permission_checker @@ -262,7 +265,7 @@ impl<'a> super::common::lifecycle_scripts::LifecycleScriptsStrategy fn did_run_scripts( &self, _package: &NpmResolutionPackage, - ) -> std::result::Result<(), deno_core::anyhow::Error> { + ) -> Result<(), std::io::Error> { Ok(()) } diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index 7baab4c0677e0a..2f20280c0e2e7f 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -55,9 +55,9 @@ use crate::util::progress_bar::ProgressBar; use crate::util::progress_bar::ProgressMessagePrompt; use super::super::resolution::NpmResolution; -use super::common::bin_entries; use super::common::NpmPackageFsResolver; use super::common::RegistryReadPermissionChecker; +use super::common::{bin_entries, EnsureRegistryReadPermissionError}; /// Resolver that creates a local node_modules directory /// and resolves packages from it. @@ -145,7 +145,7 @@ impl LocalNpmPackageResolver { fn resolve_package_folder_from_specifier( &self, specifier: &ModuleSpecifier, - ) -> Result, AnyError> { + ) -> Result, std::io::Error> { let Some(local_path) = self.resolve_folder_for_specifier(specifier)? else { return Ok(None); }; @@ -230,7 +230,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { fn resolve_package_cache_folder_id_from_specifier( &self, specifier: &ModuleSpecifier, - ) -> Result, AnyError> { + ) -> Result, std::io::Error> { let Some(folder_path) = self.resolve_package_folder_from_specifier(specifier)? else { @@ -279,11 +279,11 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError> - { + ) -> Result, EnsureRegistryReadPermissionError> { self .registry_read_permission_checker .ensure_registry_read_permission(permissions, path) + .map_err(Into::into) } } @@ -320,7 +320,18 @@ pub enum SyncResolutionWithFsError { SymlinkPackageDir(#[from] SymlinkPackageDirError), #[class(inherit)] #[error(transparent)] + BinEntries(#[from] bin_entries::BinEntriesError), + #[class(inherit)] + #[error(transparent)] + LifecycleScripts( + #[from] super::common::lifecycle_scripts::LifecycleScriptsError, + ), + #[class(inherit)] + #[error(transparent)] Io(#[from] std::io::Error), + #[class(inherit)] + #[error(transparent)] + Other(#[from] JsNativeError), } /// Creates a pnpm style folder structure. @@ -452,7 +463,8 @@ async fn sync_resolution_with_fs( cache_futures.push(async move { tarball_cache .ensure_package(&package.id.nv, &package.dist) - .await?; + .await + .map_err(JsNativeError::from_err)?; let pb_guard = progress_bar.update_with_prompt( ProgressMessagePrompt::Initialize, &package.id.nv.to_string(), @@ -472,7 +484,9 @@ async fn sync_resolution_with_fs( Ok::<_, SyncResolutionWithFsError>(()) } }) - .await??; + .await + .map_err(JsNativeError::from_err)? + .map_err(JsNativeError::from_err)?; if package.bin.is_some() { bin_entries_to_setup.borrow_mut().add(package, package_path); @@ -486,7 +500,7 @@ async fn sync_resolution_with_fs( // finally stop showing the progress bar drop(pb_guard); // explicit for clarity - Ok::<_, SyncResolutionWithFsError>(()) + Ok::<_, JsNativeError>(()) }); } else if matches!(package_state, PackageFolderState::TagsOutdated) { fs::write(initialized_file, tags)?; @@ -840,7 +854,7 @@ impl<'a> super::common::lifecycle_scripts::LifecycleScriptsStrategy fn did_run_scripts( &self, package: &NpmResolutionPackage, - ) -> std::result::Result<(), deno_core::anyhow::Error> { + ) -> std::result::Result<(), std::io::Error> { std::fs::write(self.ran_scripts_file(package), "")?; Ok(()) } diff --git a/cli/npm/managed/resolvers/mod.rs b/cli/npm/managed/resolvers/mod.rs index b4a66398d83789..f33ac5663453ad 100644 --- a/cli/npm/managed/resolvers/mod.rs +++ b/cli/npm/managed/resolvers/mod.rs @@ -16,6 +16,7 @@ use crate::npm::CliNpmCache; use crate::npm::CliNpmTarballCache; use crate::util::progress_bar::ProgressBar; +pub use self::common::EnsureRegistryReadPermissionError; pub use self::common::NpmPackageFsResolver; pub use self::common::NpmPackageFsResolverPackageFolderError; diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index 2a5d410d039ef3..f4d038795682b6 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -8,7 +8,7 @@ use std::path::Path; use std::sync::Arc; use dashmap::DashMap; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, JsNativeError}; use deno_core::serde_json; use deno_core::url::Url; use deno_npm::npm_rc::ResolvedNpmRc; @@ -40,8 +40,10 @@ pub use self::byonm::CliByonmNpmResolverCreateOptions; pub use self::managed::CliManagedInNpmPkgCheckerCreateOptions; pub use self::managed::CliManagedNpmResolverCreateOptions; pub use self::managed::CliNpmResolverManagedSnapshotOption; +pub use self::managed::EnsureRegistryReadPermissionError; pub use self::managed::ManagedCliNpmResolver; pub use self::managed::PackageCaching; +pub use self::managed::ResolvePkgFolderFromDenoModuleError; pub type CliNpmTarballCache = deno_npm_cache::TarballCache; pub type CliNpmCache = deno_npm_cache::NpmCache; @@ -79,9 +81,9 @@ impl deno_npm_cache::NpmCacheEnv for CliNpmCacheEnv { &self, from: &Path, to: &Path, - ) -> Result<(), AnyError> { + ) -> Result<(), JsNativeError> { // todo(dsherret): use self.fs here instead - hard_link_dir_recursive(from, to) + hard_link_dir_recursive(from, to).map_err(JsNativeError::from_err) } fn atomic_write_file_with_retries( @@ -223,7 +225,7 @@ pub trait CliNpmResolver: NpmPackageFolderResolver + CliNpmReqResolver { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, deno_runtime::deno_permissions::PermissionCheckError>; + ) -> Result, managed::EnsureRegistryReadPermissionError>; /// Returns a hash returning the state of the npm resolver /// or `None` if the state currently can't be determined. diff --git a/cli/resolver.rs b/cli/resolver.rs index 73513fb1af9db5..e53d704ff245a1 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -106,7 +106,8 @@ impl deno_resolver::fs::DenoResolverFs for CliDenoResolverFs { } } -#[derive(Debug, Error)] +#[derive(Debug, Error, deno_error::JsError)] +#[class(type)] #[error("{media_type} files are not supported in npm packages: {specifier}")] pub struct NotSupportedKindInNpmError { pub media_type: MediaType, diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index bcf92e334039eb..40deac0d4dce78 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -530,10 +530,7 @@ impl NodeRequireLoader for EmbeddedModuleLoader { &self, permissions: &mut dyn deno_runtime::deno_node::NodePermissions, path: &'a std::path::Path, - ) -> Result< - Cow<'a, std::path::Path>, - deno_runtime::deno_permissions::PermissionCheckError, - > { + ) -> Result, JsNativeError> { if self.shared.modules.has_file(path) { // allow reading if the file is in the snapshot return Ok(Cow::Borrowed(path)); @@ -543,6 +540,7 @@ impl NodeRequireLoader for EmbeddedModuleLoader { .shared .npm_resolver .ensure_read_permission(permissions, path) + .map_err(JsNativeError::from_err) } fn load_text_file_lossy( diff --git a/cli/tools/run/hmr.rs b/cli/tools/run/hmr.rs index c16316a546048d..421b848f76b88d 100644 --- a/cli/tools/run/hmr.rs +++ b/cli/tools/run/hmr.rs @@ -87,7 +87,7 @@ impl crate::worker::HmrRunner for HmrRunner { select! { biased; Some(notification) = session_rx.next() => { - let notification = serde_json::from_value::(notification)?; + let notification = serde_json::from_value::(notification).map_err(JsNativeError::from_err)?; if notification.method == "Runtime.exceptionThrown" { let exception_thrown = serde_json::from_value::(notification.params).map_err(JsNativeError::from_err)?; let (message, description) = exception_thrown.exception_details.get_message_and_description(); @@ -105,7 +105,7 @@ impl crate::worker::HmrRunner for HmrRunner { } } changed_paths = self.watcher_communicator.watch_for_changed_paths() => { - let changed_paths = changed_paths?; + let changed_paths = changed_paths.map_err(JsNativeError::from_err)?; let Some(changed_paths) = changed_paths else { let _ = self.watcher_communicator.force_restart(); diff --git a/cli/tools/serve.rs b/cli/tools/serve.rs index d7989140aeb20f..32d1ad519339c4 100644 --- a/cli/tools/serve.rs +++ b/cli/tools/serve.rs @@ -73,7 +73,7 @@ async fn do_serve( ) .await?; let worker_count = match worker_count { - None | Some(1) => return worker.run().await, + None | Some(1) => return worker.run().await.map_err(Into::into), Some(c) => c, }; @@ -133,7 +133,7 @@ async fn run_worker( worker.run_for_watcher().await?; Ok(0) } else { - worker.run().await + worker.run().await.map_err(Into::into) } } diff --git a/cli/tools/task.rs b/cli/tools/task.rs index db876ffdfd393d..836a94fcc6699f 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -231,7 +231,7 @@ pub async fn execute_script( &Url::from_directory_path(cli_options.initial_cwd()).unwrap(), "", &TaskDefinition { - command: task_flags.task.as_ref().unwrap().to_string(), + command: Some(task_flags.task.as_ref().unwrap().to_string()), dependencies: vec![], description: None, }, @@ -873,11 +873,13 @@ fn print_available_tasks( )?; } } - writeln!( - writer, - " {}", - strip_ansi_codes_and_escape_control_chars(&desc.task.command) - )?; + if let Some(command) = desc.task.command { + writeln!( + writer, + " {}", + strip_ansi_codes_and_escape_control_chars(&command) + )?; + } if !desc.task.dependencies.is_empty() { let dependencies = desc .task diff --git a/cli/tools/test/reporters/compound.rs b/cli/tools/test/reporters/compound.rs index 3ab7297db59b60..818e5a8cf597d8 100644 --- a/cli/tools/test/reporters/compound.rs +++ b/cli/tools/test/reporters/compound.rs @@ -129,7 +129,7 @@ impl TestReporter for CompoundTestReporter { if errors.is_empty() { Ok(()) } else { - bail!( + anyhow::bail!( "error in one or more wrapped reporters:\n{}", errors .iter() diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index 2c3128fec65173..c10b6d5eb7afa7 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -724,7 +724,7 @@ pub enum ResolveError { #[class(inherit)] #[error("{0}")] ResolvePkgFolderFromDenoModule( - #[from] ResolvePkgFolderFromDenoModuleError, + #[from] crate::npm::ResolvePkgFolderFromDenoModuleError, ), #[class(inherit)] #[error("{0}")] diff --git a/cli/util/fs.rs b/cli/util/fs.rs index e5b0328a2a13e7..4273f3629cb32b 100644 --- a/cli/util/fs.rs +++ b/cli/util/fs.rs @@ -15,7 +15,6 @@ use deno_config::glob::PathOrPattern; use deno_config::glob::PathOrPatternSet; use deno_config::glob::WalkEntry; use deno_core::anyhow::anyhow; -use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::unsync::spawn_blocking; use deno_core::ModuleSpecifier; @@ -530,14 +529,75 @@ pub fn copy_dir_recursive( Ok(()) } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum HardLinkDirRecursiveError { + #[class(inherit)] + #[error(transparent)] + Io(#[from] Error), + #[class(inherit)] + #[error("Creating {path}")] + Creating { + path: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error("Creating {path}")] + Reading { + path: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error("Dir {from} to {to}")] + Dir { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: Box, + }, + #[class(inherit)] + #[error("Removing file to hard link {from} to {to}")] + RemoveFileToHardLink { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error("Hard linking {from} to {to}")] + HardLinking { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: Error, + }, +} + /// Hardlinks the files in one directory to another directory. /// /// Note: Does not handle symlinks. -pub fn hard_link_dir_recursive(from: &Path, to: &Path) -> Result<(), AnyError> { - std::fs::create_dir_all(to) - .with_context(|| format!("Creating {}", to.display()))?; - let read_dir = std::fs::read_dir(from) - .with_context(|| format!("Reading {}", from.display()))?; +pub fn hard_link_dir_recursive( + from: &Path, + to: &Path, +) -> Result<(), HardLinkDirRecursiveError> { + std::fs::create_dir_all(to).map_err(|source| { + HardLinkDirRecursiveError::Creating { + path: to.to_path_buf(), + source, + } + })?; + let read_dir = std::fs::read_dir(from).map_err(|source| { + HardLinkDirRecursiveError::Reading { + path: from.to_path_buf(), + source, + } + })?; for entry in read_dir { let entry = entry?; @@ -546,8 +606,12 @@ pub fn hard_link_dir_recursive(from: &Path, to: &Path) -> Result<(), AnyError> { let new_to = to.join(entry.file_name()); if file_type.is_dir() { - hard_link_dir_recursive(&new_from, &new_to).with_context(|| { - format!("Dir {} to {}", new_from.display(), new_to.display()) + hard_link_dir_recursive(&new_from, &new_to).map_err(|source| { + HardLinkDirRecursiveError::Dir { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: Box::new(source), + } })?; } else if file_type.is_file() { // note: chance for race conditions here between attempting to create, @@ -564,12 +628,10 @@ pub fn hard_link_dir_recursive(from: &Path, to: &Path) -> Result<(), AnyError> { // faster to reduce contention. std::thread::sleep(Duration::from_millis(10)); } else { - return Err(err).with_context(|| { - format!( - "Removing file to hard link {} to {}", - new_from.display(), - new_to.display() - ) + return Err(HardLinkDirRecursiveError::RemoveFileToHardLink { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: err, }); } } @@ -583,22 +645,18 @@ pub fn hard_link_dir_recursive(from: &Path, to: &Path) -> Result<(), AnyError> { if err.kind() == ErrorKind::AlreadyExists { std::thread::sleep(Duration::from_millis(10)); } else { - return Err(err).with_context(|| { - format!( - "Hard linking {} to {}", - new_from.display(), - new_to.display() - ) + return Err(HardLinkDirRecursiveError::HardLinking { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: err, }); } } } else { - return Err(err).with_context(|| { - format!( - "Hard linking {} to {}", - new_from.display(), - new_to.display() - ) + return Err(HardLinkDirRecursiveError::HardLinking { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: err, }); } } diff --git a/cli/worker.rs b/cli/worker.rs index 904263c7088085..c02c9625fcdf04 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -7,8 +7,8 @@ use std::sync::Arc; use deno_ast::ModuleSpecifier; use deno_core::anyhow::bail; -use deno_core::error::{AnyError}; -use deno_core::error::{CoreError}; +use deno_core::error::AnyError; +use deno_core::error::CoreError; use deno_core::futures::FutureExt; use deno_core::url::Url; use deno_core::v8; diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index 34e6c062c42474..0a5e27f890d598 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -359,7 +359,7 @@ pub async fn op_crypto_sign_key( Algorithm::Ecdsa => { let curve: &EcdsaSigningAlgorithm = args .named_curve - .ok_or_else(|| JsNativeError::not_supported())? + .ok_or_else(JsNativeError::not_supported)? .into(); let rng = RingRand::SystemRandom::new(); @@ -379,10 +379,8 @@ pub async fn op_crypto_sign_key( signature.as_ref().to_vec() } Algorithm::Hmac => { - let hash: HmacAlgorithm = args - .hash - .ok_or_else(|| JsNativeError::not_supported())? - .into(); + let hash: HmacAlgorithm = + args.hash.ok_or_else(JsNativeError::not_supported)?.into(); let key = HmacKey::new(hash, &args.key.data); @@ -475,21 +473,19 @@ pub async fn op_crypto_verify_key( } } Algorithm::Hmac => { - let hash: HmacAlgorithm = args - .hash - .ok_or_else(|| JsNativeError::not_supported())? - .into(); + let hash: HmacAlgorithm = + args.hash.ok_or_else(JsNativeError::not_supported)?.into(); let key = HmacKey::new(hash, &args.key.data); ring::hmac::verify(&key, data, &args.signature).is_ok() } Algorithm::Ecdsa => { let signing_alg: &EcdsaSigningAlgorithm = args .named_curve - .ok_or_else(|| JsNativeError::not_supported())? + .ok_or_else(JsNativeError::not_supported)? .into(); let verify_alg: &EcdsaVerificationAlgorithm = args .named_curve - .ok_or_else(|| JsNativeError::not_supported())? + .ok_or_else(JsNativeError::not_supported)? .into(); let private_key; @@ -544,15 +540,14 @@ pub async fn op_crypto_derive_bits( let algorithm = args.algorithm; match algorithm { Algorithm::Pbkdf2 => { - let zero_copy = - zero_copy.ok_or_else(|| JsNativeError::not_supported())?; + let zero_copy = zero_copy.ok_or_else(JsNativeError::not_supported)?; let salt = &*zero_copy; // The caller must validate these cases. assert!(args.length > 0); assert!(args.length % 8 == 0); let algorithm = - match args.hash.ok_or_else(|| JsNativeError::not_supported())? { + match args.hash.ok_or_else(JsNativeError::not_supported)? { CryptoHash::Sha1 => pbkdf2::PBKDF2_HMAC_SHA1, CryptoHash::Sha256 => pbkdf2::PBKDF2_HMAC_SHA256, CryptoHash::Sha384 => pbkdf2::PBKDF2_HMAC_SHA384, @@ -561,9 +556,7 @@ pub async fn op_crypto_derive_bits( // This will never panic. We have already checked length earlier. let iterations = NonZeroU32::new( - args - .iterations - .ok_or_else(|| JsNativeError::not_supported())?, + args.iterations.ok_or_else(JsNativeError::not_supported)?, ) .unwrap(); let secret = args.key.data; @@ -650,18 +643,17 @@ pub async fn op_crypto_derive_bits( } } Algorithm::Hkdf => { - let zero_copy = - zero_copy.ok_or_else(|| JsNativeError::not_supported())?; + let zero_copy = zero_copy.ok_or_else(JsNativeError::not_supported)?; let salt = &*zero_copy; let algorithm = - match args.hash.ok_or_else(|| JsNativeError::not_supported())? { + match args.hash.ok_or_else(JsNativeError::not_supported)? { CryptoHash::Sha1 => hkdf::HKDF_SHA1_FOR_LEGACY_USE_ONLY, CryptoHash::Sha256 => hkdf::HKDF_SHA256, CryptoHash::Sha384 => hkdf::HKDF_SHA384, CryptoHash::Sha512 => hkdf::HKDF_SHA512, }; - let info = args.info.ok_or_else(|| CryptoError::MissingArgumentInfo)?; + let info = args.info.ok_or(CryptoError::MissingArgumentInfo)?; // IKM let secret = args.key.data; // L diff --git a/ext/io/lib.rs b/ext/io/lib.rs index 3f425022912cdb..078cd4b56d3ef9 100644 --- a/ext/io/lib.rs +++ b/ext/io/lib.rs @@ -1014,10 +1014,8 @@ pub fn op_print( ) -> Result<(), JsNativeError> { let rid = if is_err { 2 } else { 1 }; FileResource::with_file(state, rid, move |file| { - Ok( - file - .write_all_sync(msg.as_bytes()) - .map_err(JsNativeError::from_err)?, - ) + file + .write_all_sync(msg.as_bytes()) + .map_err(JsNativeError::from_err) }) } diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 85eafe40c910a6..28b3c6beaa502a 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -155,7 +155,7 @@ pub trait NodeRequireLoader { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, PermissionCheckError>; + ) -> Result, JsNativeError>; fn load_text_file_lossy( &self, diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index 04e453176530ce..783dfcfe90dcad 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -18,7 +18,6 @@ use deno_package_json::PackageJsonRc; use deno_path_util::normalize_path; use deno_path_util::url_from_file_path; use deno_path_util::url_to_file_path; -use deno_permissions::PermissionCheckError; use node_resolver::errors::ClosestPkgJsonError; use node_resolver::NodeResolutionKind; use node_resolver::ResolutionMode; @@ -33,7 +32,7 @@ use std::rc::Rc; fn ensure_read_permission<'a, P>( state: &mut OpState, file_path: &'a Path, -) -> Result, PermissionCheckError> +) -> Result, JsNativeError> where P: NodePermissions + 'static, { @@ -56,11 +55,7 @@ pub enum RequireErrorKind { ), #[class(inherit)] #[error(transparent)] - Permission( - #[from] - #[inherit] - PermissionCheckError, - ), + Permission(#[inherit] JsNativeError), #[class(generic)] #[error(transparent)] PackageExportsResolve( @@ -328,7 +323,7 @@ pub fn op_require_path_is_absolute(#[string] p: String) -> bool { pub fn op_require_stat

( state: &mut OpState, #[string] path: String, -) -> Result +) -> Result where P: NodePermissions + 'static, { @@ -413,7 +408,7 @@ pub fn op_require_try_self_parent_path

( has_parent: bool, #[string] maybe_parent_filename: Option, #[string] maybe_parent_id: Option, -) -> Result, PermissionCheckError> +) -> Result, JsNativeError> where P: NodePermissions + 'static, { diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index c0bb336993d8b7..4a0d7d0cfcda85 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -2,11 +2,11 @@ use crate::NodePermissions; use crate::NodeRequireLoaderRc; +use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::url::Url; use deno_core::OpState; use deno_fs::FileSystemRc; -use deno_permissions::PermissionCheckError; use std::borrow::Cow; use std::path::Path; use std::path::PathBuf; @@ -15,7 +15,7 @@ use std::path::PathBuf; fn ensure_read_permission<'a, P>( state: &mut OpState, file_path: &'a Path, -) -> Result, PermissionCheckError> +) -> Result, JsNativeError> where P: NodePermissions + 'static, { @@ -28,7 +28,7 @@ where pub enum WorkerThreadsFilenameError { #[class(inherit)] #[error(transparent)] - Permission(#[from] PermissionCheckError), + Permission(JsNativeError), #[class(inherit)] #[error("{0}")] UrlParse( @@ -80,7 +80,8 @@ where if path.is_relative() && !specifier.starts_with('.') { return Err(WorkerThreadsFilenameError::InvalidRelativeUrl); } - let path = ensure_read_permission::

(state, &path)?; + let path = ensure_read_permission::

(state, &path) + .map_err(WorkerThreadsFilenameError::Permission)?; let fs = state.borrow::(); let canonicalized_path = deno_path_util::strip_unc_prefix(fs.realpath_sync(&path)?); @@ -90,7 +91,8 @@ where let url_path = url .to_file_path() .map_err(|_| WorkerThreadsFilenameError::UrlToPathString)?; - let url_path = ensure_read_permission::

(state, &url_path)?; + let url_path = ensure_read_permission::

(state, &url_path) + .map_err(WorkerThreadsFilenameError::Permission)?; let fs = state.borrow::(); if !fs.exists_sync(&url_path) { return Err(WorkerThreadsFilenameError::FileNotFound( diff --git a/ext/web/stream_resource.rs b/ext/web/stream_resource.rs index b71abc22aeece4..34e03bbffae986 100644 --- a/ext/web/stream_resource.rs +++ b/ext/web/stream_resource.rs @@ -407,7 +407,7 @@ impl Resource for ReadableStreamResource { fn read(self: Rc, limit: usize) -> AsyncResult { Box::pin( ReadableStreamResource::read(self, limit) - .map_err(|e| deno_core::error::JsNativeError::from_err(e)), + .map_err(deno_core::error::JsNativeError::from_err), ) } diff --git a/resolvers/npm_cache/lib.rs b/resolvers/npm_cache/lib.rs index 311627bf8261bd..97be88f1280bf5 100644 --- a/resolvers/npm_cache/lib.rs +++ b/resolvers/npm_cache/lib.rs @@ -6,11 +6,10 @@ use std::path::Path; use std::path::PathBuf; use std::sync::Arc; -use anyhow::bail; -use anyhow::Context; use anyhow::Error as AnyError; use deno_cache_dir::file_fetcher::CacheSetting; use deno_cache_dir::npm::NpmCacheDir; +use deno_core::error::JsNativeError; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageInfo; use deno_npm::NpmPackageCacheFolderId; @@ -61,7 +60,7 @@ pub trait NpmCacheEnv: Send + Sync + 'static { &self, from: &Path, to: &Path, - ) -> Result<(), AnyError>; + ) -> Result<(), JsNativeError>; fn atomic_write_file_with_retries( &self, file_path: &Path, @@ -182,7 +181,7 @@ impl NpmCache { pub fn ensure_copy_package( &self, folder_id: &NpmPackageCacheFolderId, - ) -> Result<(), AnyError> { + ) -> Result<(), WithFolderSyncLockError> { let registry_url = self.npmrc.get_registry_url(&folder_id.nv.name); assert_ne!(folder_id.copy_index, 0); let package_folder = self.cache_dir.package_folder_for_id( @@ -280,7 +279,7 @@ impl NpmCache { Err(err) if err.kind() == ErrorKind::NotFound => return Ok(None), Err(err) => return Err(serde_json::Error::io(err)), }; - Ok(serde_json::from_str(&file_text)?) + serde_json::from_str(&file_text) } pub fn save_package_info( @@ -304,17 +303,51 @@ impl NpmCache { const NPM_PACKAGE_SYNC_LOCK_FILENAME: &str = ".deno_sync_lock"; +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum WithFolderSyncLockError { + #[class(inherit)] + #[error("Error creating '{path}'")] + CreateDir { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error("Error creating package sync lock file at '{path}'. Maybe try manually deleting this folder.")] + CreateLockFile { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error(transparent)] + Action(#[from] JsNativeError), + #[class(generic)] + #[error("Failed setting up package cache directory for {package}, then failed cleaning it up.\n\nOriginal error:\n\n{error}\n\nRemove error:\n\n{remove_error}\n\nPlease manually delete this folder or you will run into issues using this package in the future:\n\n{output_folder}")] + SetUpPackageCacheDir { + package: Box, + error: Box, + remove_error: std::io::Error, + output_folder: PathBuf, + }, +} + fn with_folder_sync_lock( package: &PackageNv, output_folder: &Path, - action: impl FnOnce() -> Result<(), AnyError>, -) -> Result<(), AnyError> { + action: impl FnOnce() -> Result<(), JsNativeError>, +) -> Result<(), WithFolderSyncLockError> { fn inner( output_folder: &Path, - action: impl FnOnce() -> Result<(), AnyError>, - ) -> Result<(), AnyError> { - std::fs::create_dir_all(output_folder).with_context(|| { - format!("Error creating '{}'.", output_folder.display()) + action: impl FnOnce() -> Result<(), JsNativeError>, + ) -> Result<(), WithFolderSyncLockError> { + std::fs::create_dir_all(output_folder).map_err(|source| { + WithFolderSyncLockError::CreateDir { + path: output_folder.to_path_buf(), + source, + } })?; // This sync lock file is a way to ensure that partially created @@ -338,16 +371,10 @@ fn with_folder_sync_lock( let _ignore = std::fs::remove_file(&sync_lock_path); Ok(()) } - Err(err) => { - bail!( - concat!( - "Error creating package sync lock file at '{}'. ", - "Maybe try manually deleting this folder.\n\n{:#}", - ), - output_folder.display(), - err - ); - } + Err(err) => Err(WithFolderSyncLockError::CreateLockFile { + path: output_folder.to_path_buf(), + source: err, + }), } } @@ -356,19 +383,12 @@ fn with_folder_sync_lock( Err(err) => { if let Err(remove_err) = std::fs::remove_dir_all(output_folder) { if remove_err.kind() != std::io::ErrorKind::NotFound { - bail!( - concat!( - "Failed setting up package cache directory for {}, then ", - "failed cleaning it up.\n\nOriginal error:\n\n{}\n\n", - "Remove error:\n\n{}\n\nPlease manually ", - "delete this folder or you will run into issues using this ", - "package in the future:\n\n{}" - ), - package, - err, - remove_err, - output_folder.display(), - ); + return Err(WithFolderSyncLockError::SetUpPackageCacheDir { + package: Box::new(package.clone()), + error: Box::new(err), + remove_error: remove_err, + output_folder: output_folder.to_path_buf(), + }); } } Err(err) diff --git a/resolvers/npm_cache/tarball.rs b/resolvers/npm_cache/tarball.rs index b7312683a59725..5b3ccf7788b704 100644 --- a/resolvers/npm_cache/tarball.rs +++ b/resolvers/npm_cache/tarball.rs @@ -3,10 +3,7 @@ use std::collections::HashMap; use std::sync::Arc; -use deno_core::anyhow::anyhow; -use deno_core::anyhow::bail; -use deno_core::anyhow::Context; -use deno_core::error::AnyError; +use deno_core::error::JsNativeError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; use deno_core::parking_lot::Mutex; @@ -24,7 +21,7 @@ use crate::NpmCache; use crate::NpmCacheEnv; use crate::NpmCacheSetting; -type LoadResult = Result<(), Arc>; +type LoadResult = Result<(), Arc>; type LoadFuture = LocalBoxFuture<'static, LoadResult>; #[derive(Debug, Clone)] @@ -32,7 +29,7 @@ enum MemoryCacheItem { /// The cache item hasn't finished yet. Pending(Arc>), /// The result errored. - Errored(Arc), + Errored(Arc), /// This package has already been cached. Cached, } @@ -49,6 +46,15 @@ pub struct TarballCache { memory_cache: Mutex>, } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(generic)] +#[error("Failed caching npm package '{package_nv}'")] +pub struct EnsurePackageError { + package_nv: Box, + #[source] + source: Arc, +} + impl TarballCache { pub fn new( cache: Arc>, @@ -67,18 +73,21 @@ impl TarballCache { self: &Arc, package_nv: &PackageNv, dist: &NpmPackageVersionDistInfo, - ) -> Result<(), AnyError> { + ) -> Result<(), EnsurePackageError> { self .ensure_package_inner(package_nv, dist) .await - .with_context(|| format!("Failed caching npm package '{}'.", package_nv)) + .map_err(|source| EnsurePackageError { + package_nv: Box::new(package_nv.clone()), + source, + }) } async fn ensure_package_inner( self: &Arc, package_nv: &PackageNv, dist: &NpmPackageVersionDistInfo, - ) -> Result<(), AnyError> { + ) -> Result<(), Arc> { let cache_item = { let mut mem_cache = self.memory_cache.lock(); if let Some(cache_item) = mem_cache.get(package_nv) { @@ -100,7 +109,7 @@ impl TarballCache { match cache_item { MemoryCacheItem::Cached => Ok(()), - MemoryCacheItem::Errored(err) => Err(anyhow!("{:#}", err)), + MemoryCacheItem::Errored(err) => Err(err), MemoryCacheItem::Pending(creator) => { let result = creator.get().await; match result { @@ -110,10 +119,9 @@ impl TarballCache { Ok(()) } Err(err) => { - let result_err = anyhow!("{:#}", err); *self.memory_cache.lock().get_mut(package_nv).unwrap() = - MemoryCacheItem::Errored(err); - Err(result_err) + MemoryCacheItem::Errored(err.clone()); + Err(err) } } } @@ -135,23 +143,23 @@ impl TarballCache { if should_use_cache && package_folder_exists { return Ok(()); } else if tarball_cache.cache.cache_setting() == &NpmCacheSetting::Only { - return Err(deno_core::error::JsNativeError::new( + return Err(JsNativeError::new( "NotCached", format!( "npm package not found in cache: \"{}\", --cached-only is specified.", &package_nv.name ) - ).into() + ) ); } if dist.tarball.is_empty() { - bail!("Tarball URL was empty."); + return Err(JsNativeError::generic("Tarball URL was empty.")); } // IMPORTANT: npm registries may specify tarball URLs at different URLS than the // registry, so we MUST get the auth for the tarball URL and not the registry URL. - let tarball_uri = Url::parse(&dist.tarball)?; + let tarball_uri = Url::parse(&dist.tarball).map_err(JsNativeError::from_err)?; let maybe_registry_config = tarball_cache.npmrc.tarball_config(&tarball_uri); let maybe_auth_header = maybe_registry_config.and_then(|c| maybe_auth_header_for_npm_registry(c).ok()?); @@ -166,7 +174,7 @@ impl TarballCache { && maybe_registry_config.is_none() && tarball_cache.npmrc.get_registry_config(&package_nv.name).auth_token.is_some() { - bail!( + return Err(JsNativeError::generic(format!( concat!( "No auth for tarball URI, but present for scoped registry.\n\n", "Tarball URI: {}\n", @@ -175,9 +183,9 @@ impl TarballCache { ), dist.tarball, registry_url, - ) + ))); } - return Err(err.into()) + return Err(JsNativeError::from_err(err)) }, }; match maybe_bytes { @@ -206,10 +214,10 @@ impl TarballCache { extraction_mode, ) }) - .await? + .await.map_err(JsNativeError::from_err)?.map_err(JsNativeError::from_err) } None => { - bail!("Could not find npm package tarball at: {}", dist.tarball); + Err(JsNativeError::generic(format!("Could not find npm package tarball at: {}", dist.tarball))) } } } diff --git a/resolvers/npm_cache/tarball_extract.rs b/resolvers/npm_cache/tarball_extract.rs index c4c614b35fdb34..9853aed5eaebd1 100644 --- a/resolvers/npm_cache/tarball_extract.rs +++ b/resolvers/npm_cache/tarball_extract.rs @@ -7,9 +7,6 @@ use std::io::ErrorKind; use std::path::Path; use std::path::PathBuf; -use anyhow::bail; -use anyhow::Context; -use anyhow::Error as AnyError; use base64::prelude::BASE64_STANDARD; use base64::Engine; use deno_npm::registry::NpmPackageVersionDistInfo; @@ -31,23 +28,37 @@ pub enum TarballExtractionMode { SiblingTempDir, } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum VerifyAndExtractTarballError { + #[class(inherit)] + #[error(transparent)] + TarballIntegrity(#[from] TarballIntegrityError), + #[class(inherit)] + #[error(transparent)] + ExtractTarball(#[from] ExtractTarballError), + #[class(inherit)] + #[error("Failed moving extracted tarball to final destination")] + MoveFailed(std::io::Error), +} + pub fn verify_and_extract_tarball( package_nv: &PackageNv, data: &[u8], dist_info: &NpmPackageVersionDistInfo, output_folder: &Path, extraction_mode: TarballExtractionMode, -) -> Result<(), AnyError> { +) -> Result<(), VerifyAndExtractTarballError> { verify_tarball_integrity(package_nv, data, &dist_info.integrity())?; match extraction_mode { - TarballExtractionMode::Overwrite => extract_tarball(data, output_folder), + TarballExtractionMode::Overwrite => { + extract_tarball(data, output_folder).map_err(Into::into) + } TarballExtractionMode::SiblingTempDir => { let temp_dir = get_atomic_dir_path(output_folder); extract_tarball(data, &temp_dir)?; rename_with_retries(&temp_dir, output_folder) - .map_err(AnyError::from) - .context("Failed moving extracted tarball to final destination.") + .map_err(VerifyAndExtractTarballError::MoveFailed) } } } @@ -89,11 +100,32 @@ fn rename_with_retries( } } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(generic)] +pub enum TarballIntegrityError { + #[error("Not implemented hash function for {package}: {hash_kind}")] + NotImplementedHashFunction { + package: Box, + hash_kind: String, + }, + #[error("Not implemented integrity kind for {package}: {integrity}")] + NotImplementedIntegrityKind { + package: Box, + integrity: String, + }, + #[error("Tarball checksum did not match what was provided by npm registry for {package}.\n\nExpected: {expected}\nActual: {actual}")] + MismatchedChecksum { + package: Box, + expected: String, + actual: String, + }, +} + fn verify_tarball_integrity( package: &PackageNv, data: &[u8], npm_integrity: &NpmPackageVersionDistInfoIntegrity, -) -> Result<(), AnyError> { +) -> Result<(), TarballIntegrityError> { use ring::digest::Context; let (tarball_checksum, expected_checksum) = match npm_integrity { NpmPackageVersionDistInfoIntegrity::Integrity { @@ -103,11 +135,12 @@ fn verify_tarball_integrity( let algo = match *algorithm { "sha512" => &ring::digest::SHA512, "sha1" => &ring::digest::SHA1_FOR_LEGACY_USE_ONLY, - hash_kind => bail!( - "Not implemented hash function for {}: {}", - package, - hash_kind - ), + hash_kind => { + return Err(TarballIntegrityError::NotImplementedHashFunction { + package: Box::new(package.clone()), + hash_kind: hash_kind.to_string(), + }); + } }; let mut hash_ctx = Context::new(algo); hash_ctx.update(data); @@ -123,26 +156,39 @@ fn verify_tarball_integrity( (tarball_checksum, hex) } NpmPackageVersionDistInfoIntegrity::UnknownIntegrity(integrity) => { - bail!( - "Not implemented integrity kind for {}: {}", - package, - integrity - ) + return Err(TarballIntegrityError::NotImplementedIntegrityKind { + package: Box::new(package.clone()), + integrity: integrity.to_string(), + }); } }; if tarball_checksum != *expected_checksum { - bail!( - "Tarball checksum did not match what was provided by npm registry for {}.\n\nExpected: {}\nActual: {}", - package, - expected_checksum, - tarball_checksum, - ) + return Err(TarballIntegrityError::MismatchedChecksum { + package: Box::new(package.clone()), + expected: expected_checksum.to_string(), + actual: tarball_checksum, + }); } Ok(()) } -fn extract_tarball(data: &[u8], output_folder: &Path) -> Result<(), AnyError> { +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum ExtractTarballError { + #[class(inherit)] + #[error(transparent)] + Io(#[from] std::io::Error), + #[class(generic)] + #[error( + "Extracted directory '{0}' of npm tarball was not in output directory." + )] + NotInOutputDirectory(PathBuf), +} + +fn extract_tarball( + data: &[u8], + output_folder: &Path, +) -> Result<(), ExtractTarballError> { fs::create_dir_all(output_folder)?; let output_folder = fs::canonicalize(output_folder)?; let tar = GzDecoder::new(data); @@ -174,10 +220,9 @@ fn extract_tarball(data: &[u8], output_folder: &Path) -> Result<(), AnyError> { fs::create_dir_all(dir_path)?; let canonicalized_dir = fs::canonicalize(dir_path)?; if !canonicalized_dir.starts_with(&output_folder) { - bail!( - "Extracted directory '{}' of npm tarball was not in output directory.", - canonicalized_dir.display() - ) + return Err(ExtractTarballError::NotInOutputDirectory( + canonicalized_dir.to_path_buf(), + )); } } diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index f3710444a1f158..247469916a57bc 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -109,7 +109,7 @@ impl StdioOrRid { StdioOrRid::Stdio(val) => Ok(val.as_stdio()), StdioOrRid::Rid(rid) => { Ok(FileResource::with_file(state, *rid, |file| { - Ok(file.as_stdio().map_err(JsNativeError::from_err)?) + file.as_stdio().map_err(JsNativeError::from_err) })?) } } diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index edb9ef0a255654..d4d19f5d3315b9 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -452,7 +452,7 @@ deno_error::js_error_wrapper!(ReadlineError, JsReadlineError, |err| { ReadlineError::Eof => GENERIC_ERROR, ReadlineError::Interrupted => GENERIC_ERROR, #[cfg(unix)] - ReadlineError::Errno(e) => JsNixError(e.clone()).get_class(), + ReadlineError::Errno(e) => JsNixError(*e).get_class(), ReadlineError::WindowResized => GENERIC_ERROR, #[cfg(windows)] ReadlineError::Decode(_) => GENERIC_ERROR, From 3c807d854b59ff801091dac0c994f20e3b31ed40 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Thu, 19 Dec 2024 05:44:35 +0100 Subject: [PATCH 08/36] fixes --- cli/graph_util.rs | 8 ++++---- cli/lsp/diagnostics.rs | 3 ++- cli/lsp/language_server.rs | 2 +- cli/tools/task.rs | 2 +- cli/tsc/mod.rs | 5 +++-- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cli/graph_util.rs b/cli/graph_util.rs index 4cef8f21d53a35..3b02662bf9fef5 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -946,8 +946,8 @@ fn get_resolution_error_bare_specifier( Some(specifier.as_str()) } else if let ResolutionError::ResolverError { error, .. } = error { if let ResolveError::Other(error) = (*error).as_ref() { - if let Some(ImportMapError::UnmappedBareSpecifier(specifier, _)) = - error.downcast_ref::() + if let Some(import_map::ImportMapErrorKind::UnmappedBareSpecifier(specifier, _)) = + error.as_any().downcast_ref::().map(|e| &**e) { Some(specifier.as_str()) } else { @@ -984,7 +984,7 @@ fn get_import_prefix_missing_error(error: &ResolutionError) -> Option<&str> { ResolveError::Other(other_error) => { if let Some(SpecifierError::ImportPrefixMissing { specifier, .. - }) = other_error.downcast_ref::() + }) = other_error.as_any().downcast_ref::() { maybe_specifier = Some(specifier); } @@ -1303,7 +1303,7 @@ mod test { let specifier = ModuleSpecifier::parse("file:///file.ts").unwrap(); let err = import_map.resolve(input, &specifier).err().unwrap(); let err = ResolutionError::ResolverError { - error: Arc::new(ResolveError::Other(err.into())), + error: Arc::new(ResolveError::Other(Box::new(err))), specifier: input.to_string(), range: Range { specifier, diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs index 804cebfb9b98f0..a6718e6ccc41f5 100644 --- a/cli/lsp/diagnostics.rs +++ b/cli/lsp/diagnostics.rs @@ -55,6 +55,7 @@ use deno_semver::jsr::JsrPackageReqReference; use deno_semver::npm::NpmPackageReqReference; use deno_semver::package::PackageReq; use import_map::ImportMap; +use import_map::ImportMapErrorKind; use import_map::ImportMapError; use log::error; use std::collections::HashMap; @@ -1298,7 +1299,7 @@ impl DenoDiagnostic { message = enhanced_resolution_error_message(err); if let deno_graph::ResolutionError::ResolverError {error, ..} = err{ if let ResolveError::Other(resolve_error, ..) = (*error).as_ref() { - if let Some(ImportMapError::UnmappedBareSpecifier(specifier, _)) = resolve_error.downcast_ref::() { + if let Some(ImportMapErrorKind::UnmappedBareSpecifier(specifier, _)) = resolve_error.as_any().downcast_ref::().map(|e| &**e) { if specifier.chars().next().unwrap_or('\0') == '@'{ let hint = format!("\nHint: Use [deno add {}] to add the dependency.", specifier); message.push_str(hint.as_str()); diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 211f76af8af2aa..8be4e4da8d9bce 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -3783,7 +3783,7 @@ impl Inner { for (name, def) in tasks { result.push(TaskDefinition { name: name.clone(), - command: def.command.clone(), + command: def.command.clone().unwrap(), source_uri: url_to_uri(&config_file.specifier) .map_err(|_| LspError::internal_error())?, }); diff --git a/cli/tools/task.rs b/cli/tools/task.rs index 836a94fcc6699f..d269d30b6c690f 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -469,7 +469,7 @@ impl<'a> TaskRunner<'a> { self .run_single(RunSingleOptions { task_name, - script: &definition.command, + script: definition.command.as_ref().unwrap(), cwd: &cwd, custom_commands, kill_signal, diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index c10b6d5eb7afa7..fe3d9f597ec7de 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -964,7 +964,7 @@ fn resolve_graph_specifier_types( } #[derive(Debug, Error, deno_error::JsError)] -enum ResolveNonGraphSpecifierTypesError { +pub enum ResolveNonGraphSpecifierTypesError { #[class(inherit)] #[error(transparent)] ResolvePkgFolderFromDenoReq(#[from] ResolvePkgFolderFromDenoReqError), @@ -1166,6 +1166,7 @@ pub fn exec(request: Request) -> Result { #[cfg(test)] mod tests { + use deno_core::error::JsNativeError; use super::Diagnostic; use super::DiagnosticCategory; use super::*; @@ -1200,7 +1201,7 @@ mod tests { maybe_headers: None, content: c.into(), }) - }); + }).map_err(|e| Arc::new(JsNativeError::generic(e.to_string())).into()); Box::pin(future::ready(response)) } } From 5c8f3ca547e5762cbe997fe27652a049c1e9193c Mon Sep 17 00:00:00 2001 From: crowlkats Date: Sat, 21 Dec 2024 02:53:21 +0100 Subject: [PATCH 09/36] fixes --- Cargo.lock | 20 ++++---- Cargo.toml | 3 ++ cli/Cargo.toml | 1 + cli/args/lockfile.rs | 7 +-- cli/args/mod.rs | 3 +- cli/build.rs | 14 +++--- cli/cache/mod.rs | 12 ++--- cli/emit.rs | 18 +++---- cli/factory.rs | 7 +-- cli/graph_util.rs | 29 +++++++----- cli/http_util.rs | 11 +++-- cli/lsp/analysis.rs | 4 +- cli/lsp/diagnostics.rs | 3 +- cli/lsp/documents.rs | 4 +- cli/lsp/language_server.rs | 4 +- cli/lsp/text.rs | 12 ++--- cli/main.rs | 4 +- cli/mainrt.rs | 5 +- cli/module_loader.rs | 37 +++++++-------- cli/npm/byonm.rs | 3 +- cli/npm/managed/mod.rs | 14 +++--- cli/npm/managed/resolution.rs | 7 +-- cli/npm/managed/resolvers/common.rs | 8 ++-- cli/npm/managed/resolvers/global.rs | 8 ++-- cli/npm/managed/resolvers/local.rs | 19 ++++---- cli/npm/mod.rs | 7 +-- cli/ops/bench.rs | 10 ++-- cli/ops/testing.rs | 10 ++-- cli/resolver.rs | 10 ++-- cli/standalone/mod.rs | 50 +++++++++---------- cli/tools/lint/rules/no_sloppy_imports.rs | 6 +-- cli/tools/repl/channel.rs | 8 ++-- cli/tools/repl/session.rs | 6 +-- cli/tools/run/hmr.rs | 14 +++--- cli/tsc/mod.rs | 17 ++++--- cli/util/file_watcher.rs | 8 ++-- ext/broadcast_channel/lib.rs | 4 +- ext/cache/lib.rs | 14 ++++-- ext/cache/sqlite.rs | 4 +- ext/cron/lib.rs | 4 +- ext/crypto/lib.rs | 46 +++++++++--------- ext/fetch/fs_fetch_handler.rs | 4 +- ext/fetch/lib.rs | 38 +++++++-------- ext/ffi/callback.rs | 2 +- ext/ffi/dlfcn.rs | 4 +- ext/ffi/symbol.rs | 6 +-- ext/fs/ops.rs | 6 +-- ext/http/http_next.rs | 2 +- ext/http/lib.rs | 6 +-- ext/http/request_body.rs | 4 +- ext/http/request_properties.rs | 18 +++---- ext/http/response_body.rs | 10 ++-- ext/http/service.rs | 4 +- ext/io/fs.rs | 29 ++++++------ ext/io/lib.rs | 8 ++-- ext/kv/dynamic.rs | 31 ++++++------ ext/kv/interface.rs | 4 +- ext/kv/lib.rs | 8 ++-- ext/kv/remote.rs | 58 +++++++++++++---------- ext/kv/sqlite.rs | 36 +++++++------- ext/net/io.rs | 8 ++-- ext/net/lib.rs | 2 +- ext/net/ops.rs | 2 +- ext/net/ops_tls.rs | 4 +- ext/net/raw.rs | 15 +++--- ext/node/lib.rs | 6 +-- ext/node/ops/buffer.rs | 16 +++---- ext/node/ops/crypto/keys.rs | 52 ++++++++++---------- ext/node/ops/crypto/mod.rs | 14 +++--- ext/node/ops/http.rs | 18 +++---- ext/node/ops/inspector.rs | 4 +- ext/node/ops/ipc.rs | 6 +-- ext/node/ops/require.rs | 20 ++++---- ext/node/ops/v8.rs | 18 +++---- ext/node/ops/vm_internal.rs | 6 +-- ext/node/ops/worker_threads.rs | 6 +-- ext/node/ops/zlib/mod.rs | 24 +++++----- ext/telemetry/Cargo.toml | 4 +- ext/tls/lib.rs | 4 +- ext/url/lib.rs | 6 +-- ext/web/stream_resource.rs | 2 +- ext/webgpu/byow.rs | 6 +-- ext/websocket/lib.rs | 8 ++-- resolvers/deno/Cargo.toml | 2 +- resolvers/node/Cargo.toml | 2 +- resolvers/npm_cache/Cargo.toml | 2 +- resolvers/npm_cache/lib.rs | 10 ++-- resolvers/npm_cache/registry_info.rs | 28 +++++------ resolvers/npm_cache/tarball.rs | 24 +++++----- runtime/Cargo.toml | 2 +- runtime/ops/os/mod.rs | 3 +- runtime/ops/process.rs | 10 ++-- runtime/ops/tty.rs | 8 ++-- runtime/ops/web_worker/sync_fetch.rs | 2 +- runtime/shared.rs | 8 ++-- runtime/worker.rs | 3 +- 96 files changed, 556 insertions(+), 552 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c274dd602f32a5..94133f9c8c2f94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1623,6 +1623,7 @@ dependencies = [ "libc", "serde", "serde_json", + "thiserror 2.0.3", "tokio", "url", ] @@ -2452,12 +2453,10 @@ dependencies = [ [[package]] name = "denokv_proto" version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ba1f99ed11a9c11e868a8521b1f71a7e1aba785d7f42ea9ecbdc01146c89ec" dependencies = [ - "anyhow", "async-trait", "chrono", + "deno_error", "futures", "num-bigint", "prost", @@ -2468,14 +2467,12 @@ dependencies = [ [[package]] name = "denokv_remote" version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ed833073189e8f6d03155fe3b05a024e75e29d8a28a4c2e9ec3b5c925e727b" dependencies = [ - "anyhow", "async-stream", "async-trait", "bytes", "chrono", + "deno_error", "denokv_proto", "futures", "http 1.1.0", @@ -2484,6 +2481,7 @@ dependencies = [ "rand", "serde", "serde_json", + "thiserror 2.0.3", "tokio", "tokio-util", "url", @@ -2493,13 +2491,11 @@ dependencies = [ [[package]] name = "denokv_sqlite" version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b790f01d1302d53a0c3cbd27de88a06b3abd64ec8ab8673924e490541c7c713" dependencies = [ - "anyhow", "async-stream", "async-trait", "chrono", + "deno_error", "denokv_proto", "futures", "hex", @@ -2508,7 +2504,7 @@ dependencies = [ "rand", "rusqlite", "serde_json", - "thiserror 1.0.64", + "thiserror 2.0.3", "tokio", "tokio-stream", "uuid", @@ -5817,7 +5813,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ "bytes", - "heck 0.5.0", + "heck 0.4.1", "itertools 0.13.0", "log", "multimap", @@ -9204,7 +9200,7 @@ dependencies = [ [[patch.unused]] name = "deno_doc" -version = "0.162.1" +version = "0.162.2" [[patch.unused]] name = "v8" diff --git a/Cargo.toml b/Cargo.toml index 5d16a7167068d4..25f4aa2ec79fbe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -353,3 +353,6 @@ deno_npm = { path = "../deno_npm" } deno_doc = { path = "../deno_doc" } deno_config = { path = "../deno_config" } deno_cache_dir = { path = "../deno_cache_dir/rs_lib" } +denokv_sqlite = { path = "../denokv/sqlite" } +denokv_proto = { path = "../denokv/proto" } +denokv_remote = { path = "../denokv/remote" } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 04962281a6d0ba..1f0c55d264535d 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -62,6 +62,7 @@ serde_json.workspace = true zstd.workspace = true glibc_version = "0.1.2" flate2 = { workspace = true, features = ["default"] } +deno_error.workspace = true [target.'cfg(windows)'.build-dependencies] winapi.workspace = true diff --git a/cli/args/lockfile.rs b/cli/args/lockfile.rs index d7c0ac9756412b..d2557e8c1e4a59 100644 --- a/cli/args/lockfile.rs +++ b/cli/args/lockfile.rs @@ -6,10 +6,11 @@ use std::path::PathBuf; use deno_config::deno_json::ConfigFile; use deno_config::workspace::Workspace; use deno_core::anyhow::Context; -use deno_core::error::{AnyError, JsNativeError}; +use deno_core::error::AnyError; use deno_core::parking_lot::Mutex; use deno_core::parking_lot::MutexGuard; use deno_core::serde_json; +use deno_error::JsErrorBox; use deno_lockfile::WorkspaceMemberConfig; use deno_package_json::PackageJsonDepValue; use deno_runtime::deno_node::PackageJson; @@ -248,7 +249,7 @@ impl CliLockfile { }) } - pub fn error_if_changed(&self) -> Result<(), JsNativeError> { + pub fn error_if_changed(&self) -> Result<(), JsErrorBox> { if !self.frozen { return Ok(()); } @@ -260,7 +261,7 @@ impl CliLockfile { let diff = crate::util::diff::diff(&contents, &new_contents); // has an extra newline at the end let diff = diff.trim_end(); - Err(JsNativeError::generic(format!("The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it.\nchanges:\n{diff}"))) + Err(JsErrorBox::generic(format!("The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it.\nchanges:\n{diff}"))) } else { Ok(()) } diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 294985369fb48b..36633d83e54827 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -10,7 +10,8 @@ mod package_json; use deno_ast::MediaType; use deno_ast::SourceMapOption; use deno_cache_dir::file_fetcher::CacheSetting; -use deno_config::deno_json::{ConfigFileError, NodeModulesDirMode}; +use deno_config::deno_json::ConfigFileError; +use deno_config::deno_json::NodeModulesDirMode; use deno_config::workspace::CreateResolverOptions; use deno_config::workspace::FolderConfigs; use deno_config::workspace::PackageJsonDepResolution; diff --git a/cli/build.rs b/cli/build.rs index 9e9b9b1cb317c5..e45395ac7dda34 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -9,9 +9,9 @@ mod shared; mod ts { use super::*; - use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::OpState; + use deno_error::JsErrorBox; use serde::Serialize; use std::collections::HashMap; use std::io::Write; @@ -50,7 +50,7 @@ mod ts { fn op_script_version( _state: &mut OpState, #[string] _arg: &str, - ) -> Result, JsNativeError> { + ) -> Result, JsErrorBox> { Ok(Some("1".to_string())) } @@ -69,7 +69,7 @@ mod ts { fn op_load( state: &mut OpState, #[string] load_specifier: &str, - ) -> Result { + ) -> Result { let op_crate_libs = state.borrow::>(); let path_dts = state.borrow::(); let re_asset = lazy_regex::regex!(r"asset:/{3}lib\.(\S+)\.d\.ts"); @@ -92,13 +92,13 @@ mod ts { let path = if let Some(op_crate_lib) = op_crate_libs.get(lib) { PathBuf::from(op_crate_lib) .canonicalize() - .map_err(JsNativeError::from_err)? + .map_err(JsErrorBox::from_err)? // otherwise we will generate the path ourself } else { path_dts.join(format!("lib.{lib}.d.ts")) }; let data = - std::fs::read_to_string(path).map_err(JsNativeError::from_err)?; + std::fs::read_to_string(path).map_err(JsErrorBox::from_err)?; Ok(LoadResponse { data, version: "1".to_string(), @@ -106,13 +106,13 @@ mod ts { script_kind: 3, }) } else { - Err(JsNativeError::new( + Err(JsErrorBox::new( "InvalidSpecifier", format!("An invalid specifier was requested: {}", load_specifier), )) } } else { - Err(JsNativeError::new( + Err(JsErrorBox::new( "InvalidSpecifier", format!("An invalid specifier was requested: {}", load_specifier), )) diff --git a/cli/cache/mod.rs b/cli/cache/mod.rs index 300c61f39f8e97..f3a829fbe89407 100644 --- a/cli/cache/mod.rs +++ b/cli/cache/mod.rs @@ -178,7 +178,7 @@ pub type LocalHttpCache = deno_cache_dir::LocalHttpCache; pub type LocalLspHttpCache = deno_cache_dir::LocalLspHttpCache; pub use deno_cache_dir::HttpCache; -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; pub struct FetchCacherOptions { pub file_header_overrides: HashMap>, @@ -312,7 +312,7 @@ impl Loader for FetchCacher { LoaderCacheSetting::Use => None, LoaderCacheSetting::Reload => { if matches!(file_fetcher.cache_setting(), CacheSetting::Only) { - return Err(Arc::new(JsNativeError::generic( + return Err(Arc::new(JsErrorBox::generic( "Could not resolve version constraint using only cached data. Try running again without --cached-only" )).into()); } @@ -380,19 +380,19 @@ impl Loader for FetchCacher { FetchNoFollowErrorKind::CacheSave { .. } | FetchNoFollowErrorKind::UnsupportedScheme { .. } | FetchNoFollowErrorKind::RedirectHeaderParse { .. } | - FetchNoFollowErrorKind::InvalidHeader { .. } => Err(JsNativeError::from_err(err)), + FetchNoFollowErrorKind::InvalidHeader { .. } => Err(JsErrorBox::from_err(err)), FetchNoFollowErrorKind::NotCached { .. } => { if options.cache_setting == LoaderCacheSetting::Only { Ok(None) } else { - Err(JsNativeError::from_err(err)) + Err(JsErrorBox::from_err(err)) } }, FetchNoFollowErrorKind::ChecksumIntegrity(err) => { // convert to the equivalent deno_graph error so that it // enhances it if this is passed to deno_graph Err( - JsNativeError::from_err( deno_graph::source::ChecksumIntegrityError { + JsErrorBox::from_err( deno_graph::source::ChecksumIntegrityError { actual: err.actual, expected: err.expected, }), @@ -400,7 +400,7 @@ impl Loader for FetchCacher { } } }, - CliFetchNoFollowErrorKind::PermissionCheck(permission_check_error) => Err(JsNativeError::from_err(permission_check_error)), + CliFetchNoFollowErrorKind::PermissionCheck(permission_check_error) => Err(JsErrorBox::from_err(permission_check_error)), } }).map_err(|e| Arc::new(e).into()) } diff --git a/cli/emit.rs b/cli/emit.rs index 29f639e6957c23..a0a96db0aa9288 100644 --- a/cli/emit.rs +++ b/cli/emit.rs @@ -12,11 +12,13 @@ use deno_ast::SourceRanged; use deno_ast::SourceRangedForSpanned; use deno_ast::TranspileModuleOptions; use deno_ast::TranspileResult; -use deno_core::error::{AnyError, CoreError, JsNativeError}; +use deno_core::error::AnyError; +use deno_core::error::CoreError; use deno_core::futures::stream::FuturesUnordered; use deno_core::futures::FutureExt; use deno_core::futures::StreamExt; use deno_core::ModuleSpecifier; +use deno_error::JsErrorBox; use deno_graph::MediaType; use deno_graph::Module; use deno_graph::ModuleGraph; @@ -197,7 +199,7 @@ impl Emitter { let parsed_source = self .parsed_source_cache .remove_or_parse_module(specifier, source_arc, media_type) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; // HMR doesn't work with embedded source maps for some reason, so set // the option to not use them (though you should test this out because // this statement is probably wrong) @@ -210,7 +212,7 @@ impl Emitter { media_type, parsed_source.compute_is_script(), ) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; let transpiled_source = parsed_source .transpile( &self.transpile_and_emit_options.0, @@ -219,7 +221,7 @@ impl Emitter { }, &options, ) - .map_err(JsNativeError::from_err)? + .map_err(JsErrorBox::from_err)? .into_source(); Ok(transpiled_source.text) } @@ -268,7 +270,7 @@ pub enum EmitParsedSourceHelperError { Transpile(#[from] deno_ast::TranspileError), #[class(inherit)] #[error(transparent)] - Other(#[from] JsNativeError), + Other(#[from] JsErrorBox), } /// Helper to share code between async and sync emit_parsed_source methods. @@ -341,7 +343,7 @@ impl<'a> EmitParsedSourceHelper<'a> { // todo(dsherret): this is a temporary measure until we have swc erroring for this fn ensure_no_import_assertion( parsed_source: &deno_ast::ParsedSource, -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { fn has_import_assertion(text: &str) -> bool { // good enough text.contains(" assert ") && !text.contains(" with ") @@ -350,7 +352,7 @@ fn ensure_no_import_assertion( fn create_err( parsed_source: &deno_ast::ParsedSource, range: SourceRange, - ) -> JsNativeError { + ) -> JsErrorBox { let text_info = parsed_source.text_info_lazy(); let loc = text_info.line_and_column_display(range.start); let mut msg = "Import assertions are deprecated. Use `with` keyword, instead of 'assert' keyword.".to_string(); @@ -363,7 +365,7 @@ fn ensure_no_import_assertion( loc.line_number, loc.column_number, )); - JsNativeError::generic(msg) + JsErrorBox::generic(msg) } let deno_ast::ProgramRef::Module(module) = parsed_source.program_ref() else { diff --git a/cli/factory.rs b/cli/factory.rs index d61cca8f353e5a..bac8d84c67d375 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -67,9 +67,10 @@ use std::path::PathBuf; use deno_cache_dir::npm::NpmCacheDir; use deno_config::workspace::PackageJsonDepResolution; use deno_config::workspace::WorkspaceResolver; -use deno_core::error::{AnyError, JsNativeError}; +use deno_core::error::AnyError; use deno_core::futures::FutureExt; use deno_core::FeatureChecker; +use deno_error::JsErrorBox; use deno_resolver::cjs::IsCjsResolutionMode; use deno_resolver::npm::NpmReqResolverOptions; @@ -116,7 +117,7 @@ impl CliRootCertStoreProvider { } impl RootCertStoreProvider for CliRootCertStoreProvider { - fn get_or_try_init(&self) -> Result<&RootCertStore, JsNativeError> { + fn get_or_try_init(&self) -> Result<&RootCertStore, JsErrorBox> { self .cell .get_or_try_init(|| { @@ -126,7 +127,7 @@ impl RootCertStoreProvider for CliRootCertStoreProvider { self.maybe_ca_data.clone(), ) }) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) } } diff --git a/cli/graph_util.rs b/cli/graph_util.rs index 3b02662bf9fef5..8c65340e9502b4 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -33,9 +33,9 @@ use deno_graph::ModuleLoadError; use deno_graph::WorkspaceFastCheckOption; use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::parking_lot::Mutex; use deno_core::ModuleSpecifier; +use deno_error::JsErrorBox; use deno_error::JsErrorClass; use deno_graph::source::Loader; use deno_graph::source::ResolveError; @@ -81,7 +81,7 @@ pub fn graph_valid( fs: &Arc, roots: &[ModuleSpecifier], options: GraphValidOptions, -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { if options.exit_integrity_errors { graph_exit_integrity_errors(graph); } @@ -100,7 +100,7 @@ pub fn graph_valid( } else { // finally surface the npm resolution result if let Err(err) = &graph.npm_dep_graph_result { - return Err(JsNativeError::new( + return Err(JsErrorBox::new( err.get_class(), format_deno_graph_error(err), )); @@ -141,7 +141,7 @@ pub fn graph_walk_errors<'a>( fs: &'a Arc, roots: &'a [ModuleSpecifier], options: GraphWalkErrorsOptions, -) -> impl Iterator + 'a { +) -> impl Iterator + 'a { graph .walk( roots.iter(), @@ -195,7 +195,7 @@ pub fn graph_walk_errors<'a>( return None; } - Some(JsNativeError::new(error.get_class(), message)) + Some(JsErrorBox::new(error.get_class(), message)) }) } @@ -396,7 +396,7 @@ impl ModuleGraphCreator { } } - pub fn graph_valid(&self, graph: &ModuleGraph) -> Result<(), JsNativeError> { + pub fn graph_valid(&self, graph: &ModuleGraph) -> Result<(), JsErrorBox> { self.module_graph_builder.graph_valid(graph) } @@ -763,7 +763,7 @@ impl ModuleGraphBuilder { /// Check if `roots` and their deps are available. Returns `Ok(())` if /// so. Returns `Err(_)` if there is a known module graph or resolution /// error statically reachable from `roots` and not a dynamic import. - pub fn graph_valid(&self, graph: &ModuleGraph) -> Result<(), JsNativeError> { + pub fn graph_valid(&self, graph: &ModuleGraph) -> Result<(), JsErrorBox> { self.graph_roots_valid( graph, &graph.roots.iter().cloned().collect::>(), @@ -774,7 +774,7 @@ impl ModuleGraphBuilder { &self, graph: &ModuleGraph, roots: &[ModuleSpecifier], - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { graph_valid( graph, &self.fs, @@ -853,7 +853,7 @@ fn enhanced_sloppy_imports_error_message( } fn enhanced_integrity_error_message(err: &ModuleError) -> Option { - match err { + match dbg!(err) { ModuleError::LoadingErr( specifier, _, @@ -946,8 +946,13 @@ fn get_resolution_error_bare_specifier( Some(specifier.as_str()) } else if let ResolutionError::ResolverError { error, .. } = error { if let ResolveError::Other(error) = (*error).as_ref() { - if let Some(import_map::ImportMapErrorKind::UnmappedBareSpecifier(specifier, _)) = - error.as_any().downcast_ref::().map(|e| &**e) + if let Some(import_map::ImportMapErrorKind::UnmappedBareSpecifier( + specifier, + _, + )) = error + .as_any() + .downcast_ref::() + .map(|e| &**e) { Some(specifier.as_str()) } else { @@ -1303,7 +1308,7 @@ mod test { let specifier = ModuleSpecifier::parse("file:///file.ts").unwrap(); let err = import_map.resolve(input, &specifier).err().unwrap(); let err = ResolutionError::ResolverError { - error: Arc::new(ResolveError::Other(Box::new(err))), + error: Arc::new(ResolveError::Other(JsErrorBox::from_err(err))), specifier: input.to_string(), range: Range { specifier, diff --git a/cli/http_util.rs b/cli/http_util.rs index f332c4aa20effc..63131c0117be1e 100644 --- a/cli/http_util.rs +++ b/cli/http_util.rs @@ -6,12 +6,13 @@ use crate::version; use boxed_error::Boxed; use deno_cache_dir::file_fetcher::RedirectHeaderParseError; use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::parking_lot::Mutex; +use deno_core::serde; use deno_core::serde_json; use deno_core::url::Url; -use deno_core::{serde, JsError}; +use deno_core::JsError; +use deno_error::JsErrorBox; use deno_runtime::deno_fetch; use deno_runtime::deno_fetch::create_http_client; use deno_runtime::deno_fetch::CreateHttpClientOptions; @@ -107,7 +108,7 @@ pub struct DownloadError(pub Box); #[derive(Debug, Error, JsError)] pub enum DownloadErrorKind { - #[class(type)] + #[class(inherit)] #[error(transparent)] Fetch(deno_fetch::ClientSendError), #[class(inherit)] @@ -136,7 +137,7 @@ pub enum DownloadErrorKind { NotFound, #[class(inherit)] #[error(transparent)] - Other(JsNativeError), + Other(JsErrorBox), } #[derive(Debug)] @@ -353,7 +354,7 @@ impl HttpClient { pub async fn get_response_body_with_progress( response: http::Response, progress_guard: Option<&UpdateGuard>, -) -> Result<(HeaderMap, Vec), JsNativeError> { +) -> Result<(HeaderMap, Vec), JsErrorBox> { use http_body::Body as _; if let Some(progress_guard) = progress_guard { let mut total_size = response.body().size_hint().exact(); diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index f4f4cfbc167b1e..5d9b5729b225d3 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -21,12 +21,12 @@ use deno_ast::SourceRange; use deno_ast::SourceRangedForSpanned; use deno_ast::SourceTextInfo; use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; use deno_core::serde_json; use deno_core::serde_json::json; use deno_core::ModuleSpecifier; +use deno_error::JsErrorBox; use deno_path_util::url_to_file_path; use deno_runtime::deno_node::PathClean; use deno_semver::jsr::JsrPackageNvReference; @@ -1054,7 +1054,7 @@ impl CodeActionCollection { // actually easier to return errors if we ever encounter one of these, // which we really wouldn't expect from the Deno lsp. return Err( - JsNativeError::new( + JsErrorBox::new( "UnsupportedFix", "The action returned from TypeScript is unsupported.", ) diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs index a6718e6ccc41f5..c319a405d69494 100644 --- a/cli/lsp/diagnostics.rs +++ b/cli/lsp/diagnostics.rs @@ -41,6 +41,7 @@ use deno_core::unsync::spawn_blocking; use deno_core::unsync::JoinHandle; use deno_core::url::Url; use deno_core::ModuleSpecifier; +use deno_error::JsErrorClass; use deno_graph::source::ResolveError; use deno_graph::Resolution; use deno_graph::ResolutionError; @@ -55,8 +56,8 @@ use deno_semver::jsr::JsrPackageReqReference; use deno_semver::npm::NpmPackageReqReference; use deno_semver::package::PackageReq; use import_map::ImportMap; -use import_map::ImportMapErrorKind; use import_map::ImportMapError; +use import_map::ImportMapErrorKind; use log::error; use std::collections::HashMap; use std::collections::HashSet; diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index bdd325819b0ee2..64a6e6381398b5 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -20,12 +20,12 @@ use deno_ast::MediaType; use deno_ast::ParsedSource; use deno_ast::SourceTextInfo; use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::futures::future; use deno_core::futures::future::Shared; use deno_core::futures::FutureExt; use deno_core::parking_lot::Mutex; use deno_core::ModuleSpecifier; +use deno_error::JsErrorBox; use deno_graph::Resolution; use deno_path_util::url_to_file_path; use deno_runtime::deno_node; @@ -1062,7 +1062,7 @@ impl Documents { .or_else(|| self.file_system_docs.remove_document(specifier)) .map(Ok) .unwrap_or_else(|| { - Err(JsNativeError::new( + Err(JsErrorBox::new( "NotFound", format!("The specifier \"{specifier}\" was not found."), )) diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 8be4e4da8d9bce..916a43d1275154 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -120,9 +120,7 @@ use crate::util::sync::AsyncFlag; struct LspRootCertStoreProvider(RootCertStore); impl RootCertStoreProvider for LspRootCertStoreProvider { - fn get_or_try_init( - &self, - ) -> Result<&RootCertStore, deno_core::error::JsNativeError> { + fn get_or_try_init(&self) -> Result<&RootCertStore, deno_error::JsErrorBox> { Ok(&self.0) } } diff --git a/cli/lsp/text.rs b/cli/lsp/text.rs index 938b73f377baea..6d184a35a18486 100644 --- a/cli/lsp/text.rs +++ b/cli/lsp/text.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use deno_core::error::AnyError; -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; use dissimilar::diff; use dissimilar::Chunk; use std::collections::HashMap; @@ -136,10 +136,7 @@ impl LineIndex { if let Some(line_offset) = self.utf8_offsets.get(position.line as usize) { Ok(line_offset + col) } else { - Err( - JsNativeError::new("OutOfRange", "The position is out of range.") - .into(), - ) + Err(JsErrorBox::new("OutOfRange", "The position is out of range.").into()) } } @@ -159,10 +156,7 @@ impl LineIndex { if let Some(line_offset) = self.utf16_offsets.get(position.line as usize) { Ok(line_offset + TextSize::from(position.character)) } else { - Err( - JsNativeError::new("OutOfRange", "The position is out of range.") - .into(), - ) + Err(JsErrorBox::new("OutOfRange", "The position is out of range.").into()) } } diff --git a/cli/main.rs b/cli/main.rs index 9631933f9e8491..35634a743ebf4c 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -41,7 +41,7 @@ pub use deno_runtime::UNSTABLE_GRANULAR_FLAGS; use deno_core::anyhow::Context; use deno_core::error::AnyError; -use deno_core::error::JsError; +use deno_core::error::CoreError; use deno_core::futures::FutureExt; use deno_core::unsync::JoinHandle; use deno_npm::resolution::SnapshotFromLockfileError; @@ -371,7 +371,7 @@ fn exit_for_error(error: AnyError) -> ! { let mut error_string = format!("{error:?}"); let mut error_code = 1; - if let Some(e) = error.downcast_ref::() { + if let Some(CoreError::Js(e)) = error.downcast_ref::() { error_string = format_js_error(e); } else if let Some(SnapshotFromLockfileError::IntegrityCheckFailed(e)) = error.downcast_ref::() diff --git a/cli/mainrt.rs b/cli/mainrt.rs index 702dec1d2d05da..59ded71bc6a4e6 100644 --- a/cli/mainrt.rs +++ b/cli/mainrt.rs @@ -23,6 +23,7 @@ mod version; mod worker; use deno_core::error::AnyError; +use deno_core::error::CoreError; use deno_core::error::JsError; use deno_runtime::fmt_errors::format_js_error; use deno_runtime::tokio_util::create_and_run_current_thread_with_maybe_metrics; @@ -60,8 +61,8 @@ fn unwrap_or_exit(result: Result) -> T { Err(error) => { let mut error_string = format!("{:?}", error); - if let Some(e) = error.downcast_ref::() { - error_string = format_js_error(e); + if let Some(CoreError::Js(js_error)) = error.downcast_ref::() { + error_string = format_js_error(js_error); } exit_with_message(&error_string, 1); diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 5e6b4704ee7e98..cb2c71d395c92a 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -46,7 +46,6 @@ use deno_ast::ModuleKind; use deno_core::anyhow::anyhow; use deno_core::anyhow::Context; use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::error::ModuleLoaderError; use deno_core::futures::future::FutureExt; use deno_core::futures::Future; @@ -60,6 +59,7 @@ use deno_core::ModuleSpecifier; use deno_core::ModuleType; use deno_core::RequestedModuleType; use deno_core::SourceCodeCacheInfo; +use deno_error::JsErrorBox; use deno_graph::GraphKind; use deno_graph::JsModule; use deno_graph::JsonModule; @@ -199,7 +199,7 @@ impl ModuleLoadPreparer { &self, graph: &ModuleGraph, roots: &[ModuleSpecifier], - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { self.module_graph_builder.graph_roots_valid(graph, roots) } } @@ -433,7 +433,7 @@ impl if module_type == ModuleType::Json && requested_module_type != RequestedModuleType::Json { - return Err(JsNativeError::generic("Attempted to load JSON module without specifying \"type\": \"json\" attribute in the import statement.").into()); + return Err(JsErrorBox::generic("Attempted to load JSON module without specifying \"type\": \"json\" attribute in the import statement.").into()); } let code_cache = if module_type == ModuleType::JavaScript { @@ -535,11 +535,8 @@ impl Resolution::Ok(resolved) => Cow::Borrowed(&resolved.specifier), Resolution::Err(err) => { return Err( - JsNativeError::type_error(format!( - "{}\n", - err.to_string_with_range() - )) - .into(), + JsErrorBox::type_error(format!("{}\n", err.to_string_with_range())) + .into(), ); } Resolution::None => Cow::Owned( @@ -554,7 +551,7 @@ impl ResolutionMode::Import, NodeResolutionKind::Execution, ) - .map_err(JsNativeError::from_err)?, + .map_err(JsErrorBox::from_err)?, ), }; @@ -570,7 +567,7 @@ impl ResolutionMode::Import, NodeResolutionKind::Execution, ) - .map_err(|e| JsNativeError::from_err(e).into()); + .map_err(|e| JsErrorBox::from_err(e).into()); } } @@ -582,7 +579,7 @@ impl .as_managed() .unwrap() // byonm won't create a Module::Npm .resolve_pkg_folder_from_deno_module(module.nv_reference.nv()) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; self .shared .node_resolver @@ -862,12 +859,12 @@ impl ModuleLoader fn ensure_not_jsr_non_jsr_remote_import( specifier: &ModuleSpecifier, referrer: &ModuleSpecifier, - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { if referrer.as_str().starts_with(jsr_url().as_str()) && !specifier.as_str().starts_with(jsr_url().as_str()) && matches!(specifier.scheme(), "http" | "https") { - return Err(JsNativeError::generic(format!("Importing {} blocked. JSR packages cannot import non-JSR remote modules for security reasons.", specifier))); + return Err(JsErrorBox::generic(format!("Importing {} blocked. JSR packages cannot import non-JSR remote modules for security reasons.", specifier))); } Ok(()) } @@ -1113,7 +1110,7 @@ impl NodeRequireLoader &self, permissions: &mut dyn deno_runtime::deno_node::NodePermissions, path: &'a Path, - ) -> Result, JsNativeError> { + ) -> Result, JsErrorBox> { if let Ok(url) = deno_path_util::url_from_file_path(path) { // allow reading if it's in the module graph if self.graph_container.graph().get(&url).is_some() { @@ -1123,24 +1120,24 @@ impl NodeRequireLoader self .npm_resolver .ensure_read_permission(permissions, path) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) } fn load_text_file_lossy( &self, path: &Path, - ) -> Result, JsNativeError> { + ) -> Result, JsErrorBox> { // todo(dsherret): use the preloaded module from the graph if available? let media_type = MediaType::from_path(path); let text = self .fs .read_text_file_lossy_sync(path, None) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; if media_type.is_emittable() { let specifier = deno_path_util::url_from_file_path(path) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; if self.in_npm_pkg_checker.in_npm_package(&specifier) { - return Err(JsNativeError::from_err(NotSupportedKindInNpmError { + return Err(JsErrorBox::from_err(NotSupportedKindInNpmError { media_type, specifier, })); @@ -1157,7 +1154,7 @@ impl NodeRequireLoader &text.into(), ) .map(Cow::Owned) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) } else { Ok(text) } diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index 9ad322e1906b58..7f7dace8b154b0 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -17,8 +17,9 @@ use crate::args::NpmProcessState; use crate::args::NpmProcessStateKind; use crate::resolver::CliDenoResolverFs; +use super::managed; +use super::CliNpmResolver; use super::InnerCliNpmResolverRef; -use super::{managed, CliNpmResolver}; pub type CliByonmNpmResolverCreateOptions = ByonmNpmResolverCreateOptions; diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 01c4ebfde1de01..f0ae6774c16b32 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -9,9 +9,9 @@ use deno_ast::ModuleSpecifier; use deno_cache_dir::npm::NpmCacheDir; use deno_core::anyhow::Context; use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::serde_json; use deno_core::url::Url; +use deno_error::JsErrorBox; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageInfo; use deno_npm::registry::NpmRegistryApi; @@ -455,7 +455,7 @@ impl ManagedCliNpmResolver { pub async fn add_and_cache_package_reqs( &self, packages: &[PackageReq], - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { self .add_package_reqs_raw( packages, @@ -468,7 +468,7 @@ impl ManagedCliNpmResolver { pub async fn add_package_reqs_no_cache( &self, packages: &[PackageReq], - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { self .add_package_reqs_raw(packages, None) .await @@ -479,7 +479,7 @@ impl ManagedCliNpmResolver { &self, packages: &[PackageReq], caching: PackageCaching<'_>, - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { self .add_package_reqs_raw(packages, Some(caching)) .await @@ -549,7 +549,7 @@ impl ManagedCliNpmResolver { pub async fn inject_synthetic_types_node_package( &self, - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { let reqs = &[PackageReq::from_str("@types/node").unwrap()]; // add and ensure this isn't added to the lockfile self @@ -562,7 +562,7 @@ impl ManagedCliNpmResolver { pub async fn cache_packages( &self, caching: PackageCaching<'_>, - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { self.fs_resolver.cache_packages(caching).await } @@ -612,7 +612,7 @@ impl ManagedCliNpmResolver { /// return value of `false` means that new packages were added to the NPM resolution. pub async fn ensure_top_level_package_json_install( &self, - ) -> Result { + ) -> Result { if !self.top_level_install_flag.raise() { return Ok(true); // already did this } diff --git a/cli/npm/managed/resolution.rs b/cli/npm/managed/resolution.rs index dcbbd54673fd63..5888aab8da56a7 100644 --- a/cli/npm/managed/resolution.rs +++ b/cli/npm/managed/resolution.rs @@ -4,7 +4,8 @@ use std::collections::HashMap; use std::collections::HashSet; use std::sync::Arc; -use deno_core::error::{AnyError, JsNativeError}; +use deno_core::error::AnyError; +use deno_error::JsErrorBox; use deno_lockfile::NpmPackageDependencyLockfileInfo; use deno_lockfile::NpmPackageLockfileInfo; use deno_npm::registry::NpmRegistryApi; @@ -37,7 +38,7 @@ pub struct AddPkgReqsResult { /// package requirements. pub results: Vec>, /// The final result of resolving and caching all the package requirements. - pub dependencies_result: Result<(), JsNativeError>, + pub dependencies_result: Result<(), JsErrorBox>, } /// Handles updating and storing npm resolution in memory where the underlying @@ -104,7 +105,7 @@ impl NpmResolution { *snapshot_lock.write() = snapshot; Ok(()) } - Err(err) => Err(JsNativeError::from_err(err)), + Err(err) => Err(JsErrorBox::from_err(err)), }, } } diff --git a/cli/npm/managed/resolvers/common.rs b/cli/npm/managed/resolvers/common.rs index 7f85c6ab25628d..24e0016ee2469e 100644 --- a/cli/npm/managed/resolvers/common.rs +++ b/cli/npm/managed/resolvers/common.rs @@ -14,9 +14,9 @@ use std::sync::Mutex; use super::super::PackageCaching; use async_trait::async_trait; use deno_ast::ModuleSpecifier; -use deno_core::error::JsNativeError; use deno_core::futures; use deno_core::futures::StreamExt; +use deno_error::JsErrorBox; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; @@ -63,7 +63,7 @@ pub trait NpmPackageFsResolver: Send + Sync { async fn cache_packages<'a>( &self, caching: PackageCaching<'a>, - ) -> Result<(), JsNativeError>; + ) -> Result<(), JsErrorBox>; #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"] fn ensure_read_permission<'a>( @@ -165,7 +165,7 @@ impl RegistryReadPermissionChecker { pub async fn cache_packages( packages: &[NpmResolutionPackage], tarball_cache: &Arc, -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { let mut futures_unordered = futures::stream::FuturesUnordered::new(); for package in packages { futures_unordered.push(async move { @@ -176,7 +176,7 @@ pub async fn cache_packages( } while let Some(result) = futures_unordered.next().await { // surface the first error - result.map_err(JsNativeError::from_err)?; + result.map_err(JsErrorBox::from_err)?; } Ok(()) } diff --git a/cli/npm/managed/resolvers/global.rs b/cli/npm/managed/resolvers/global.rs index 7c4b8045102044..5174664b2f3439 100644 --- a/cli/npm/managed/resolvers/global.rs +++ b/cli/npm/managed/resolvers/global.rs @@ -13,7 +13,7 @@ use crate::npm::CliNpmCache; use crate::npm::CliNpmTarballCache; use async_trait::async_trait; use deno_ast::ModuleSpecifier; -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; @@ -154,7 +154,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { async fn cache_packages<'a>( &self, caching: PackageCaching<'a>, - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { let package_partitions = match caching { PackageCaching::All => self .resolution @@ -171,7 +171,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { self .cache .ensure_copy_package(©.get_package_cache_folder_id()) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; } let mut lifecycle_scripts = @@ -186,7 +186,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { lifecycle_scripts .warn_not_run_scripts() - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; Ok(()) } diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index 2f20280c0e2e7f..ca09b364a14428 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -23,11 +23,11 @@ use crate::npm::CliNpmTarballCache; use async_trait::async_trait; use deno_ast::ModuleSpecifier; use deno_cache_dir::npm::mixed_case_package_name_decode; -use deno_core::error::JsNativeError; use deno_core::futures::stream::FuturesUnordered; use deno_core::futures::StreamExt; use deno_core::parking_lot::Mutex; use deno_core::url::Url; +use deno_error::JsErrorBox; use deno_npm::resolution::NpmResolutionSnapshot; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; @@ -55,9 +55,10 @@ use crate::util::progress_bar::ProgressBar; use crate::util::progress_bar::ProgressMessagePrompt; use super::super::resolution::NpmResolution; +use super::common::bin_entries; +use super::common::EnsureRegistryReadPermissionError; use super::common::NpmPackageFsResolver; use super::common::RegistryReadPermissionChecker; -use super::common::{bin_entries, EnsureRegistryReadPermissionError}; /// Resolver that creates a local node_modules directory /// and resolves packages from it. @@ -256,7 +257,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { async fn cache_packages<'a>( &self, caching: PackageCaching<'a>, - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { let snapshot = match caching { PackageCaching::All => self.resolution.snapshot(), PackageCaching::Only(reqs) => self.resolution.subset(&reqs), @@ -272,7 +273,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { &self.lifecycle_scripts, ) .await - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) } fn ensure_read_permission<'a>( @@ -331,7 +332,7 @@ pub enum SyncResolutionWithFsError { Io(#[from] std::io::Error), #[class(inherit)] #[error(transparent)] - Other(#[from] JsNativeError), + Other(#[from] JsErrorBox), } /// Creates a pnpm style folder structure. @@ -464,7 +465,7 @@ async fn sync_resolution_with_fs( tarball_cache .ensure_package(&package.id.nv, &package.dist) .await - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; let pb_guard = progress_bar.update_with_prompt( ProgressMessagePrompt::Initialize, &package.id.nv.to_string(), @@ -485,8 +486,8 @@ async fn sync_resolution_with_fs( } }) .await - .map_err(JsNativeError::from_err)? - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)? + .map_err(JsErrorBox::from_err)?; if package.bin.is_some() { bin_entries_to_setup.borrow_mut().add(package, package_path); @@ -500,7 +501,7 @@ async fn sync_resolution_with_fs( // finally stop showing the progress bar drop(pb_guard); // explicit for clarity - Ok::<_, JsNativeError>(()) + Ok::<_, JsErrorBox>(()) }); } else if matches!(package_state, PackageFolderState::TagsOutdated) { fs::write(initialized_file, tags)?; diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index f4d038795682b6..40b3dab3bfa3cf 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -8,9 +8,10 @@ use std::path::Path; use std::sync::Arc; use dashmap::DashMap; -use deno_core::error::{AnyError, JsNativeError}; +use deno_core::error::AnyError; use deno_core::serde_json; use deno_core::url::Url; +use deno_error::JsErrorBox; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageInfo; use deno_resolver::npm::ByonmInNpmPackageChecker; @@ -81,9 +82,9 @@ impl deno_npm_cache::NpmCacheEnv for CliNpmCacheEnv { &self, from: &Path, to: &Path, - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { // todo(dsherret): use self.fs here instead - hard_link_dir_recursive(from, to).map_err(JsNativeError::from_err) + hard_link_dir_recursive(from, to).map_err(JsErrorBox::from_err) } fn atomic_write_file_with_retries( diff --git a/cli/ops/bench.rs b/cli/ops/bench.rs index b905503c393a22..b694393312ac7b 100644 --- a/cli/ops/bench.rs +++ b/cli/ops/bench.rs @@ -3,11 +3,11 @@ use std::sync::atomic::AtomicUsize; use std::sync::atomic::Ordering; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::v8; use deno_core::ModuleSpecifier; use deno_core::OpState; +use deno_error::JsErrorBox; use deno_runtime::deno_permissions::ChildPermissionsArg; use deno_runtime::deno_permissions::PermissionsContainer; use deno_runtime::deno_web::StartTime; @@ -76,7 +76,7 @@ pub fn op_pledge_test_permissions( pub fn op_restore_test_permissions( state: &mut OpState, #[serde] token: Uuid, -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { if let Some(permissions_holder) = state.try_take::() { if token != permissions_holder.0 { panic!("restore test permissions token does not match the stored token"); @@ -86,7 +86,7 @@ pub fn op_restore_test_permissions( state.put::(permissions); Ok(()) } else { - Err(JsNativeError::generic("no permissions to restore")) + Err(JsErrorBox::generic("no permissions to restore")) } } @@ -104,9 +104,9 @@ fn op_register_bench( only: bool, warmup: bool, #[buffer] ret_buf: &mut [u8], -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { if ret_buf.len() != 4 { - return Err(JsNativeError::type_error(format!( + return Err(JsErrorBox::type_error(format!( "Invalid ret_buf length: {}", ret_buf.len() ))); diff --git a/cli/ops/testing.rs b/cli/ops/testing.rs index 974bca81feef3c..80410fbe5a9e1c 100644 --- a/cli/ops/testing.rs +++ b/cli/ops/testing.rs @@ -9,11 +9,11 @@ use crate::tools::test::TestLocation; use crate::tools::test::TestStepDescription; use crate::tools::test::TestStepResult; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::v8; use deno_core::ModuleSpecifier; use deno_core::OpState; +use deno_error::JsErrorBox; use deno_runtime::deno_permissions::ChildPermissionsArg; use deno_runtime::deno_permissions::PermissionsContainer; use std::sync::atomic::AtomicUsize; @@ -70,7 +70,7 @@ pub fn op_pledge_test_permissions( pub fn op_restore_test_permissions( state: &mut OpState, #[serde] token: Uuid, -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { if let Some(permissions_holder) = state.try_take::() { if token != permissions_holder.0 { panic!("restore test permissions token does not match the stored token"); @@ -80,7 +80,7 @@ pub fn op_restore_test_permissions( state.put::(permissions); Ok(()) } else { - Err(JsNativeError::generic("no permissions to restore")) + Err(JsErrorBox::generic("no permissions to restore")) } } @@ -100,9 +100,9 @@ fn op_register_test( #[smi] line_number: u32, #[smi] column_number: u32, #[buffer] ret_buf: &mut [u8], -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { if ret_buf.len() != 4 { - return Err(JsNativeError::type_error(format!( + return Err(JsErrorBox::type_error(format!( "Invalid ret_buf length: {}", ret_buf.len() ))); diff --git a/cli/resolver.rs b/cli/resolver.rs index e53d704ff245a1..eb48ef7d41a779 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -8,10 +8,10 @@ use deno_config::workspace::MappedResolutionDiagnostic; use deno_config::workspace::MappedResolutionError; use deno_core::anyhow::Context; use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::url::Url; use deno_core::ModuleSourceCode; use deno_core::ModuleSpecifier; +use deno_error::JsErrorBox; use deno_graph::source::ResolveError; use deno_graph::source::UnknownBuiltInNodeModuleError; use deno_graph::NpmLoadError; @@ -272,11 +272,11 @@ impl CliResolver { MappedResolutionError::Specifier(e) => ResolveError::Specifier(e), // deno_graph checks specifically for an ImportMapError MappedResolutionError::ImportMap(e) => { - ResolveError::Other(Box::new(e)) + ResolveError::Other(JsErrorBox::from_err(e)) } - err => ResolveError::Other(Box::new(err)), + err => ResolveError::Other(JsErrorBox::from_err(err)), }, - err => ResolveError::Other(Box::new(err)), + err => ResolveError::Other(JsErrorBox::from_err(err)), })?; if resolution.found_package_json_dep { @@ -424,7 +424,7 @@ impl<'a> deno_graph::source::NpmResolver for WorkerCliNpmGraphResolver<'a> { } } None => { - let err = Arc::new(JsNativeError::generic( + let err = Arc::new(JsErrorBox::generic( "npm specifiers were requested; but --no-npm is specified", )); NpmResolvePkgReqsResult { diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 40deac0d4dce78..421a1a3c4f3de3 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -17,7 +17,6 @@ use deno_config::workspace::ResolverWorkspaceJsrPackage; use deno_config::workspace::WorkspaceResolver; use deno_core::anyhow::Context; use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::error::ModuleLoaderError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; @@ -31,6 +30,7 @@ use deno_core::ModuleType; use deno_core::RequestedModuleType; use deno_core::ResolutionKind; use deno_core::SourceCodeCacheInfo; +use deno_error::JsErrorBox; use deno_npm::npm_rc::ResolvedNpmRc; use deno_package_json::PackageJsonDepValue; use deno_resolver::cjs::IsCjsResolutionMode; @@ -178,7 +178,7 @@ impl ModuleLoader for EmbeddedModuleLoader { let referrer = if referrer == "." { if kind != ResolutionKind::MainModule { return Err( - JsNativeError::generic(format!( + JsErrorBox::generic(format!( "Expected to resolve main module, got {:?} instead.", kind )) @@ -189,7 +189,7 @@ impl ModuleLoader for EmbeddedModuleLoader { deno_core::resolve_path(".", ¤t_dir)? } else { ModuleSpecifier::parse(referrer).map_err(|err| { - JsNativeError::type_error(format!( + JsErrorBox::type_error(format!( "Referrer uses invalid specifier: {}", err )) @@ -199,7 +199,7 @@ impl ModuleLoader for EmbeddedModuleLoader { .shared .cjs_tracker .is_maybe_cjs(&referrer, MediaType::from_specifier(&referrer)) - .map_err(JsNativeError::from_err)? + .map_err(JsErrorBox::from_err)? { ResolutionMode::Require } else { @@ -217,7 +217,7 @@ impl ModuleLoader for EmbeddedModuleLoader { referrer_kind, NodeResolutionKind::Execution, ) - .map_err(JsNativeError::from_err)? + .map_err(JsErrorBox::from_err)? .into_url(), ); } @@ -246,7 +246,7 @@ impl ModuleLoader for EmbeddedModuleLoader { referrer_kind, NodeResolutionKind::Execution, ) - .map_err(JsNativeError::from_err)?, + .map_err(JsErrorBox::from_err)?, ), Ok(MappedResolution::PackageJson { dep_result, @@ -255,7 +255,7 @@ impl ModuleLoader for EmbeddedModuleLoader { .. }) => match dep_result .as_ref() - .map_err(|e| JsNativeError::from_err(e.clone()))? + .map_err(|e| JsErrorBox::from_err(e.clone()))? { PackageJsonDepValue::Req(req) => self .shared @@ -267,7 +267,7 @@ impl ModuleLoader for EmbeddedModuleLoader { referrer_kind, NodeResolutionKind::Execution, ) - .map_err(|e| JsNativeError::from_err(e).into()), + .map_err(|e| JsErrorBox::from_err(e).into()), PackageJsonDepValue::Workspace(version_req) => { let pkg_folder = self .shared @@ -276,7 +276,7 @@ impl ModuleLoader for EmbeddedModuleLoader { alias, version_req, ) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; Ok( self .shared @@ -288,7 +288,7 @@ impl ModuleLoader for EmbeddedModuleLoader { referrer_kind, NodeResolutionKind::Execution, ) - .map_err(JsNativeError::from_err)?, + .map_err(JsErrorBox::from_err)?, ) } }, @@ -307,7 +307,7 @@ impl ModuleLoader for EmbeddedModuleLoader { referrer_kind, NodeResolutionKind::Execution, ) - .map_err(JsNativeError::from_err)?, + .map_err(JsErrorBox::from_err)?, ); } @@ -339,13 +339,13 @@ impl ModuleLoader for EmbeddedModuleLoader { referrer_kind, NodeResolutionKind::Execution, ) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; if let Some(res) = maybe_res { return Ok(res.into_url()); } - Err(JsNativeError::from_err(err).into()) + Err(JsErrorBox::from_err(err).into()) } - Err(err) => Err(JsNativeError::from_err(err).into()), + Err(err) => Err(JsErrorBox::from_err(err).into()), } } @@ -377,7 +377,7 @@ impl ModuleLoader for EmbeddedModuleLoader { Ok(response) => response, Err(err) => { return deno_core::ModuleLoadResponse::Sync(Err( - JsNativeError::type_error(format!("{:#}", err)).into(), + JsErrorBox::type_error(format!("{:#}", err)).into(), )); } }; @@ -433,7 +433,7 @@ impl ModuleLoader for EmbeddedModuleLoader { Ok(is_maybe_cjs) => is_maybe_cjs, Err(err) => { return deno_core::ModuleLoadResponse::Sync(Err( - JsNativeError::type_error(format!("{:?}", err)).into(), + JsErrorBox::type_error(format!("{:?}", err)).into(), )); } }; @@ -495,14 +495,14 @@ impl ModuleLoader for EmbeddedModuleLoader { } } Ok(None) => deno_core::ModuleLoadResponse::Sync(Err( - JsNativeError::type_error(format!( + JsErrorBox::type_error(format!( "{MODULE_NOT_FOUND}: {}", original_specifier )) .into(), )), Err(err) => deno_core::ModuleLoadResponse::Sync(Err( - JsNativeError::type_error(format!("{:?}", err)).into(), + JsErrorBox::type_error(format!("{:?}", err)).into(), )), } } @@ -530,7 +530,7 @@ impl NodeRequireLoader for EmbeddedModuleLoader { &self, permissions: &mut dyn deno_runtime::deno_node::NodePermissions, path: &'a std::path::Path, - ) -> Result, JsNativeError> { + ) -> Result, JsErrorBox> { if self.shared.modules.has_file(path) { // allow reading if the file is in the snapshot return Ok(Cow::Borrowed(path)); @@ -540,23 +540,23 @@ impl NodeRequireLoader for EmbeddedModuleLoader { .shared .npm_resolver .ensure_read_permission(permissions, path) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) } fn load_text_file_lossy( &self, path: &std::path::Path, - ) -> Result, JsNativeError> { + ) -> Result, JsErrorBox> { let file_entry = self .shared .vfs .file_entry(path) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; let file_bytes = self .shared .vfs .read_file_all(file_entry, VfsFileSubDataKind::ModuleGraph) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; Ok(from_utf8_lossy_cow(file_bytes)) } @@ -609,10 +609,10 @@ struct StandaloneRootCertStoreProvider { } impl RootCertStoreProvider for StandaloneRootCertStoreProvider { - fn get_or_try_init(&self) -> Result<&RootCertStore, JsNativeError> { + fn get_or_try_init(&self) -> Result<&RootCertStore, JsErrorBox> { self.cell.get_or_try_init(|| { get_root_cert_store(None, self.ca_stores.clone(), self.ca_data.clone()) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) }) } } diff --git a/cli/tools/lint/rules/no_sloppy_imports.rs b/cli/tools/lint/rules/no_sloppy_imports.rs index c7fc4ad4f72eb8..3882efa92e4967 100644 --- a/cli/tools/lint/rules/no_sloppy_imports.rs +++ b/cli/tools/lint/rules/no_sloppy_imports.rs @@ -7,7 +7,7 @@ use std::sync::Arc; use deno_ast::SourceRange; use deno_config::workspace::WorkspaceResolver; -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; use deno_graph::source::ResolutionKind; use deno_graph::source::ResolveError; use deno_graph::Range; @@ -188,7 +188,7 @@ impl<'a> deno_graph::source::Resolver for SloppyImportCaptureResolver<'a> { let resolution = self .workspace_resolver .resolve(specifier_text, &referrer_range.specifier) - .map_err(|err| ResolveError::Other(Box::new(err)))?; + .map_err(|err| ResolveError::Other(JsErrorBox::from_err(err)))?; match resolution { deno_config::workspace::MappedResolution::Normal { @@ -221,7 +221,7 @@ impl<'a> deno_graph::source::Resolver for SloppyImportCaptureResolver<'a> { } | deno_config::workspace::MappedResolution::PackageJson { .. } => { // this error is ignored - Err(ResolveError::Other(Box::new(JsNativeError::generic("")))) + Err(ResolveError::Other(JsErrorBox::generic(""))) } } } diff --git a/cli/tools/repl/channel.rs b/cli/tools/repl/channel.rs index edad79176724cd..bb1df3a7738582 100644 --- a/cli/tools/repl/channel.rs +++ b/cli/tools/repl/channel.rs @@ -1,9 +1,11 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use deno_core::anyhow::anyhow; -use deno_core::error::{AnyError, CoreError, JsNativeError}; +use deno_core::error::AnyError; +use deno_core::error::CoreError; use deno_core::serde_json; use deno_core::serde_json::Value; +use deno_error::JsErrorBox; use std::cell::RefCell; use tokio::sync::mpsc::channel; use tokio::sync::mpsc::unbounded_channel; @@ -69,10 +71,10 @@ impl RustylineSyncMessageSender { params: params .map(|params| serde_json::to_value(params)) .transpose() - .map_err(JsNativeError::from_err)?, + .map_err(JsErrorBox::from_err)?, }) { - Err(JsNativeError::from_err(err).into()) + Err(JsErrorBox::from_err(err).into()) } else { match self.response_rx.borrow_mut().blocking_recv().unwrap() { RustylineSyncResponse::PostMessage(result) => result, diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index 8e5f729325de2e..abe5de9d9ae8ea 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -34,7 +34,7 @@ use deno_ast::SourceRangedForSpanned; use deno_ast::SourceTextInfo; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; -use deno_core::error::{CoreError, JsNativeError}; +use deno_core::error::CoreError; use deno_core::futures::channel::mpsc::UnboundedReceiver; use deno_core::futures::FutureExt; use deno_core::futures::StreamExt; @@ -44,6 +44,7 @@ use deno_core::unsync::spawn; use deno_core::url::Url; use deno_core::LocalInspectorSession; use deno_core::PollEventLoopOptions; +use deno_error::JsErrorBox; use deno_graph::Position; use deno_graph::PositionRange; use deno_graph::SpecifierWithRange; @@ -767,8 +768,7 @@ impl ReplSession { ) .await .and_then(|res| { - serde_json::from_value(res) - .map_err(|e| JsNativeError::from_err(e).into()) + serde_json::from_value(res).map_err(|e| JsErrorBox::from_err(e).into()) }) } } diff --git a/cli/tools/run/hmr.rs b/cli/tools/run/hmr.rs index 421b848f76b88d..1536bb686db388 100644 --- a/cli/tools/run/hmr.rs +++ b/cli/tools/run/hmr.rs @@ -5,12 +5,12 @@ use std::path::PathBuf; use std::sync::Arc; use deno_core::error::CoreError; -use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::serde_json::json; use deno_core::serde_json::{self}; use deno_core::url::Url; use deno_core::LocalInspectorSession; +use deno_error::JsErrorBox; use deno_terminal::colors; use tokio::select; @@ -87,13 +87,13 @@ impl crate::worker::HmrRunner for HmrRunner { select! { biased; Some(notification) = session_rx.next() => { - let notification = serde_json::from_value::(notification).map_err(JsNativeError::from_err)?; + let notification = serde_json::from_value::(notification).map_err(JsErrorBox::from_err)?; if notification.method == "Runtime.exceptionThrown" { - let exception_thrown = serde_json::from_value::(notification.params).map_err(JsNativeError::from_err)?; + let exception_thrown = serde_json::from_value::(notification.params).map_err(JsErrorBox::from_err)?; let (message, description) = exception_thrown.exception_details.get_message_and_description(); - break Err(JsNativeError::generic(format!("{} {}", message, description)).into()); + break Err(JsErrorBox::generic(format!("{} {}", message, description)).into()); } else if notification.method == "Debugger.scriptParsed" { - let params = serde_json::from_value::(notification.params).map_err(JsNativeError::from_err)?; + let params = serde_json::from_value::(notification.params).map_err(JsErrorBox::from_err)?; if params.url.starts_with("file://") { let file_url = Url::parse(¶ms.url).unwrap(); let file_path = file_url.to_file_path().unwrap(); @@ -105,7 +105,7 @@ impl crate::worker::HmrRunner for HmrRunner { } } changed_paths = self.watcher_communicator.watch_for_changed_paths() => { - let changed_paths = changed_paths.map_err(JsNativeError::from_err)?; + let changed_paths = changed_paths.map_err(JsErrorBox::from_err)?; let Some(changed_paths) = changed_paths else { let _ = self.watcher_communicator.force_restart(); @@ -231,7 +231,7 @@ impl HmrRunner { Ok( serde_json::from_value::(result) - .map_err(JsNativeError::from_err)?, + .map_err(JsErrorBox::from_err)?, ) } diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index fe3d9f597ec7de..e637077d8606f2 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -1166,7 +1166,6 @@ pub fn exec(request: Request) -> Result { #[cfg(test)] mod tests { - use deno_core::error::JsNativeError; use super::Diagnostic; use super::DiagnosticCategory; use super::*; @@ -1174,6 +1173,7 @@ mod tests { use deno_core::futures::future; use deno_core::serde_json; use deno_core::OpState; + use deno_error::JsErrorBox; use deno_graph::GraphKind; use deno_graph::ModuleGraph; use test_util::PathRef; @@ -1195,13 +1195,16 @@ mod tests { .replace("://", "_") .replace('/', "-"); let source_path = self.fixtures.join(specifier_text); - let response = source_path.read_to_bytes_if_exists().map(|c| { - Some(deno_graph::source::LoadResponse::Module { - specifier: specifier.clone(), - maybe_headers: None, - content: c.into(), + let response = source_path + .read_to_bytes_if_exists() + .map(|c| { + Some(deno_graph::source::LoadResponse::Module { + specifier: specifier.clone(), + maybe_headers: None, + content: c.into(), + }) }) - }).map_err(|e| Arc::new(JsNativeError::generic(e.to_string())).into()); + .map_err(|e| Arc::new(JsErrorBox::generic(e.to_string())).into()); Box::pin(future::ready(response)) } } diff --git a/cli/util/file_watcher.rs b/cli/util/file_watcher.rs index 155e7b013b1d80..87f9eaef731ef7 100644 --- a/cli/util/file_watcher.rs +++ b/cli/util/file_watcher.rs @@ -6,7 +6,7 @@ use crate::util::fs::canonicalize_path; use deno_config::glob::PathOrPatternSet; use deno_core::error::AnyError; -use deno_core::error::JsError; +use deno_core::error::CoreError; use deno_core::futures::Future; use deno_core::futures::FutureExt; use deno_core::parking_lot::Mutex; @@ -80,9 +80,9 @@ where { let result = watch_future.await; if let Err(err) = result { - let error_string = match err.downcast_ref::() { - Some(e) => format_js_error(e), - None => format!("{err:?}"), + let error_string = match err.downcast_ref::() { + Some(CoreError::Js(e)) => format_js_error(e), + _ => format!("{err:?}"), }; log::error!( "{}: {}", diff --git a/ext/broadcast_channel/lib.rs b/ext/broadcast_channel/lib.rs index b187400197269f..020fc20ebef4bb 100644 --- a/ext/broadcast_channel/lib.rs +++ b/ext/broadcast_channel/lib.rs @@ -10,12 +10,12 @@ use std::path::PathBuf; use std::rc::Rc; use async_trait::async_trait; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::JsBuffer; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; +use deno_error::JsErrorBox; use tokio::sync::broadcast::error::SendError as BroadcastSendError; use tokio::sync::mpsc::error::SendError as MpscSendError; @@ -40,7 +40,7 @@ pub enum BroadcastChannelError { ), #[class(inherit)] #[error(transparent)] - Other(#[inherit] JsNativeError), + Other(#[inherit] JsErrorBox), } impl From> diff --git a/ext/cache/lib.rs b/ext/cache/lib.rs index 94fc687a0cfc20..c33d50587feaf7 100644 --- a/ext/cache/lib.rs +++ b/ext/cache/lib.rs @@ -6,7 +6,6 @@ use std::rc::Rc; use std::sync::Arc; use async_trait::async_trait; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; @@ -14,6 +13,7 @@ use deno_core::ByteString; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; +use deno_error::JsErrorBox; mod sqlite; pub use sqlite::SqliteBackedCache; @@ -34,13 +34,17 @@ pub enum CacheError { Resource(#[from] deno_core::error::ResourceError), #[class(inherit)] #[error(transparent)] - Other(JsNativeError), + Other(JsErrorBox), #[class(inherit)] #[error("{0}")] Io(#[from] std::io::Error), #[class(generic)] - #[error("Failed to create cache storage directory {}: {error}", .dir.display())] - CacheStorageDirectory { dir: PathBuf, error: std::io::Error }, + #[error("Failed to create cache storage directory {}", .dir.display())] + CacheStorageDirectory { + dir: PathBuf, + #[source] + source: std::io::Error, + }, } #[derive(Clone)] @@ -244,7 +248,7 @@ where if let Some(cache) = state.try_borrow::() { Ok(cache.clone()) } else if let Some(create_cache) = state.try_borrow::>() { - let cache = create_cache.0(); + let cache = create_cache.0()?; state.put(cache); Ok(state.borrow::().clone()) } else { diff --git a/ext/cache/sqlite.rs b/ext/cache/sqlite.rs index 7966bb44020e7a..82cc71dec41efa 100644 --- a/ext/cache/sqlite.rs +++ b/ext/cache/sqlite.rs @@ -43,10 +43,10 @@ pub struct SqliteBackedCache { impl SqliteBackedCache { pub fn new(cache_storage_dir: PathBuf) -> Result { { - std::fs::create_dir_all(&cache_storage_dir).map_err(|error| { + std::fs::create_dir_all(&cache_storage_dir).map_err(|source| { CacheError::CacheStorageDirectory { dir: cache_storage_dir.clone(), - error, + source, } })?; let path = cache_storage_dir.join("cache_metadata.db"); diff --git a/ext/cron/lib.rs b/ext/cron/lib.rs index 9d9204b8567307..302cc25e54998a 100644 --- a/ext/cron/lib.rs +++ b/ext/cron/lib.rs @@ -4,11 +4,11 @@ mod interface; pub mod local; pub use crate::interface::*; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; +use deno_error::JsErrorBox; use deno_error::JsErrorClass; use std::borrow::Cow; use std::cell::RefCell; @@ -74,7 +74,7 @@ pub enum CronError { AcquireError(#[from] tokio::sync::AcquireError), #[class(inherit)] #[error(transparent)] - Other(JsNativeError), + Other(JsErrorBox), } #[op2] diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index 0a5e27f890d598..838c6993ab79f7 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -6,9 +6,9 @@ use aes_kw::KekAes256; use base64::prelude::BASE64_URL_SAFE_NO_PAD; use base64::Engine; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::ToJsBuffer; +use deno_error::JsErrorBox; use deno_core::unsync::spawn_blocking; use deno_core::JsBuffer; @@ -216,7 +216,7 @@ pub enum CryptoError { Other( #[from] #[inherit] - JsNativeError, + JsErrorBox, ), } @@ -359,7 +359,7 @@ pub async fn op_crypto_sign_key( Algorithm::Ecdsa => { let curve: &EcdsaSigningAlgorithm = args .named_curve - .ok_or_else(JsNativeError::not_supported)? + .ok_or_else(JsErrorBox::not_supported)? .into(); let rng = RingRand::SystemRandom::new(); @@ -380,7 +380,7 @@ pub async fn op_crypto_sign_key( } Algorithm::Hmac => { let hash: HmacAlgorithm = - args.hash.ok_or_else(JsNativeError::not_supported)?.into(); + args.hash.ok_or_else(JsErrorBox::not_supported)?.into(); let key = HmacKey::new(hash, &args.key.data); @@ -474,18 +474,18 @@ pub async fn op_crypto_verify_key( } Algorithm::Hmac => { let hash: HmacAlgorithm = - args.hash.ok_or_else(JsNativeError::not_supported)?.into(); + args.hash.ok_or_else(JsErrorBox::not_supported)?.into(); let key = HmacKey::new(hash, &args.key.data); ring::hmac::verify(&key, data, &args.signature).is_ok() } Algorithm::Ecdsa => { let signing_alg: &EcdsaSigningAlgorithm = args .named_curve - .ok_or_else(JsNativeError::not_supported)? + .ok_or_else(JsErrorBox::not_supported)? .into(); let verify_alg: &EcdsaVerificationAlgorithm = args .named_curve - .ok_or_else(JsNativeError::not_supported)? + .ok_or_else(JsErrorBox::not_supported)? .into(); let private_key; @@ -540,23 +540,22 @@ pub async fn op_crypto_derive_bits( let algorithm = args.algorithm; match algorithm { Algorithm::Pbkdf2 => { - let zero_copy = zero_copy.ok_or_else(JsNativeError::not_supported)?; + let zero_copy = zero_copy.ok_or_else(JsErrorBox::not_supported)?; let salt = &*zero_copy; // The caller must validate these cases. assert!(args.length > 0); assert!(args.length % 8 == 0); - let algorithm = - match args.hash.ok_or_else(JsNativeError::not_supported)? { - CryptoHash::Sha1 => pbkdf2::PBKDF2_HMAC_SHA1, - CryptoHash::Sha256 => pbkdf2::PBKDF2_HMAC_SHA256, - CryptoHash::Sha384 => pbkdf2::PBKDF2_HMAC_SHA384, - CryptoHash::Sha512 => pbkdf2::PBKDF2_HMAC_SHA512, - }; + let algorithm = match args.hash.ok_or_else(JsErrorBox::not_supported)? { + CryptoHash::Sha1 => pbkdf2::PBKDF2_HMAC_SHA1, + CryptoHash::Sha256 => pbkdf2::PBKDF2_HMAC_SHA256, + CryptoHash::Sha384 => pbkdf2::PBKDF2_HMAC_SHA384, + CryptoHash::Sha512 => pbkdf2::PBKDF2_HMAC_SHA512, + }; // This will never panic. We have already checked length earlier. let iterations = NonZeroU32::new( - args.iterations.ok_or_else(JsNativeError::not_supported)?, + args.iterations.ok_or_else(JsErrorBox::not_supported)?, ) .unwrap(); let secret = args.key.data; @@ -643,15 +642,14 @@ pub async fn op_crypto_derive_bits( } } Algorithm::Hkdf => { - let zero_copy = zero_copy.ok_or_else(JsNativeError::not_supported)?; + let zero_copy = zero_copy.ok_or_else(JsErrorBox::not_supported)?; let salt = &*zero_copy; - let algorithm = - match args.hash.ok_or_else(JsNativeError::not_supported)? { - CryptoHash::Sha1 => hkdf::HKDF_SHA1_FOR_LEGACY_USE_ONLY, - CryptoHash::Sha256 => hkdf::HKDF_SHA256, - CryptoHash::Sha384 => hkdf::HKDF_SHA384, - CryptoHash::Sha512 => hkdf::HKDF_SHA512, - }; + let algorithm = match args.hash.ok_or_else(JsErrorBox::not_supported)? { + CryptoHash::Sha1 => hkdf::HKDF_SHA1_FOR_LEGACY_USE_ONLY, + CryptoHash::Sha256 => hkdf::HKDF_SHA256, + CryptoHash::Sha384 => hkdf::HKDF_SHA384, + CryptoHash::Sha512 => hkdf::HKDF_SHA512, + }; let info = args.info.ok_or(CryptoError::MissingArgumentInfo)?; // IKM diff --git a/ext/fetch/fs_fetch_handler.rs b/ext/fetch/fs_fetch_handler.rs index 322e08d9dffd74..dda91939b043f6 100644 --- a/ext/fetch/fs_fetch_handler.rs +++ b/ext/fetch/fs_fetch_handler.rs @@ -4,13 +4,13 @@ use crate::CancelHandle; use crate::CancelableResponseFuture; use crate::FetchHandler; -use deno_core::error::JsNativeError; use deno_core::futures::FutureExt; use deno_core::futures::TryFutureExt; use deno_core::futures::TryStreamExt; use deno_core::url::Url; use deno_core::CancelFuture; use deno_core::OpState; +use deno_error::JsErrorBox; use http::StatusCode; use http_body_util::BodyExt; use std::rc::Rc; @@ -34,7 +34,7 @@ impl FetchHandler for FsFetchHandler { let file = tokio::fs::File::open(path).map_err(|_| ()).await?; let stream = ReaderStream::new(file) .map_ok(hyper::body::Frame::data) - .map_err(JsNativeError::from_err); + .map_err(JsErrorBox::from_err); let body = http_body_util::StreamBody::new(stream).boxed(); let response = http::Response::builder() .status(StatusCode::OK) diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index d62c9bfa2e8287..e067d2de239470 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -18,7 +18,6 @@ use std::sync::Arc; use std::task::Context; use std::task::Poll; -use deno_core::error::JsNativeError; use deno_core::futures::stream::Peekable; use deno_core::futures::Future; use deno_core::futures::FutureExt; @@ -42,6 +41,7 @@ use deno_core::OpState; use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; +use deno_error::JsErrorBox; use deno_path_util::url_from_file_path; use deno_path_util::PathToUrlError; use deno_permissions::PermissionCheckError; @@ -102,7 +102,7 @@ pub struct Options { pub client_builder_hook: Option HyperClientBuilder>, #[allow(clippy::type_complexity)] pub request_builder_hook: - Option) -> Result<(), JsNativeError>>, + Option) -> Result<(), JsErrorBox>>, pub unsafely_ignore_certificate_errors: Option>, pub client_cert_chain_and_key: TlsKeys, pub file_fetch_handler: Rc, @@ -110,9 +110,7 @@ pub struct Options { } impl Options { - pub fn root_cert_store( - &self, - ) -> Result, JsNativeError> { + pub fn root_cert_store(&self) -> Result, JsErrorBox> { Ok(match &self.root_cert_store_provider { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, @@ -217,12 +215,12 @@ pub enum FetchError { #[class(type)] #[error(transparent)] Method(#[from] http::method::InvalidMethod), - #[class(type)] + #[class(inherit)] #[error(transparent)] ClientSend(#[from] ClientSendError), #[class(inherit)] #[error(transparent)] - RequestBuilderHook(JsNativeError), + RequestBuilderHook(JsErrorBox), #[class(inherit)] #[error(transparent)] Io(#[from] std::io::Error), @@ -317,7 +315,7 @@ pub fn create_client_from_options( #[allow(clippy::type_complexity)] pub struct ResourceToBodyAdapter( Rc, - Option>>>>, + Option>>>>, ); impl ResourceToBodyAdapter { @@ -333,7 +331,7 @@ unsafe impl Send for ResourceToBodyAdapter {} unsafe impl Sync for ResourceToBodyAdapter {} impl Stream for ResourceToBodyAdapter { - type Item = Result; + type Item = Result; fn poll_next( self: Pin<&mut Self>, @@ -363,7 +361,7 @@ impl Stream for ResourceToBodyAdapter { impl hyper::body::Body for ResourceToBodyAdapter { type Data = Bytes; - type Error = JsNativeError; + type Error = JsErrorBox; fn poll_frame( self: Pin<&mut Self>, @@ -822,9 +820,7 @@ impl Resource for FetchResponseResource { // safely call `await` on it without creating a race condition. Some(_) => match reader.as_mut().next().await.unwrap() { Ok(chunk) => assert!(chunk.is_empty()), - Err(err) => { - break Err(JsNativeError::type_error(err.to_string())) - } + Err(err) => break Err(JsErrorBox::type_error(err.to_string())), }, None => break Ok(BufView::empty()), } @@ -835,7 +831,7 @@ impl Resource for FetchResponseResource { fut .try_or_cancel(cancel_handle) .await - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) }) } @@ -995,7 +991,7 @@ pub enum HttpClientCreateError { HttpVersionSelectionInvalid, #[class(inherit)] #[error(transparent)] - RootCertStore(JsNativeError), + RootCertStore(JsErrorBox), } /// Create new instance of async Client. This client supports @@ -1112,7 +1108,8 @@ type Connector = proxy::ProxyConnector>; #[allow(clippy::declare_interior_mutable_const)] const STAR_STAR: HeaderValue = HeaderValue::from_static("*/*"); -#[derive(Debug)] +#[derive(Debug, deno_error::JsError)] +#[class(type)] pub struct ClientSendError { uri: Uri, pub source: hyper_util::client::legacy::Error, @@ -1187,15 +1184,12 @@ impl Client { .oneshot(req) .await .map_err(|e| ClientSendError { uri, source: e })?; - Ok( - resp - .map(|b| b.map_err(|e| JsNativeError::generic(e.to_string())).boxed()), - ) + Ok(resp.map(|b| b.map_err(|e| JsErrorBox::generic(e.to_string())).boxed())) } } -pub type ReqBody = http_body_util::combinators::BoxBody; -pub type ResBody = http_body_util::combinators::BoxBody; +pub type ReqBody = http_body_util::combinators::BoxBody; +pub type ResBody = http_body_util::combinators::BoxBody; /// Copied from https://github.com/seanmonstar/reqwest/blob/b9d62a0323d96f11672a61a17bf8849baec00275/src/async_impl/request.rs#L572 /// Check the request URL for a "username:password" type authority, and if diff --git a/ext/ffi/callback.rs b/ext/ffi/callback.rs index e81f3cfb718add..f132ee92463edd 100644 --- a/ext/ffi/callback.rs +++ b/ext/ffi/callback.rs @@ -43,7 +43,7 @@ pub enum CallbackError { Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error(transparent)] - Other(#[from] deno_core::error::JsNativeError), + Other(#[from] deno_error::JsErrorBox), } #[derive(Clone)] diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index 7c97eb9c378b02..5699f3b7711b19 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -6,12 +6,12 @@ use crate::symbol::Symbol; use crate::turbocall; use crate::turbocall::Turbocall; use crate::FfiPermissions; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::v8; use deno_core::GarbageCollected; use deno_core::OpState; use deno_core::Resource; +use deno_error::JsErrorBox; use deno_error::JsErrorClass; use dlopen2::raw::Library; use serde::Deserialize; @@ -49,7 +49,7 @@ pub enum DlfcnError { Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error(transparent)] - Other(#[from] JsNativeError), + Other(#[from] JsErrorBox), } pub struct DynamicLibraryResource { diff --git a/ext/ffi/symbol.rs b/ext/ffi/symbol.rs index 2a0e4331c43fef..e3ee166e273514 100644 --- a/ext/ffi/symbol.rs +++ b/ext/ffi/symbol.rs @@ -1,6 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; /// Defines the accepted types that can be used as /// parameters and return values in FFI. @@ -28,7 +28,7 @@ pub enum NativeType { } impl TryFrom for libffi::middle::Type { - type Error = JsNativeError; + type Error = JsErrorBox; fn try_from(native_type: NativeType) -> Result { Ok(match native_type { @@ -55,7 +55,7 @@ impl TryFrom for libffi::middle::Type { .map(|field| field.clone().try_into()) .collect::, _>>()?, false => { - return Err(JsNativeError::type_error( + return Err(JsErrorBox::type_error( "Struct must have at least one field", )) } diff --git a/ext/fs/ops.rs b/ext/fs/ops.rs index 39385507a66942..fd1468c3805c71 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -18,7 +18,6 @@ use crate::interface::FsFileType; use crate::FsPermissions; use crate::OpenOptions; use boxed_error::Boxed; -use deno_core::error::JsNativeError; use deno_core::error::ResourceError; use deno_core::op2; use deno_core::v8; @@ -30,6 +29,7 @@ use deno_core::OpState; use deno_core::ResourceId; use deno_core::ToJsBuffer; use deno_core::ToV8; +use deno_error::JsErrorBox; use deno_io::fs::FileResource; use deno_io::fs::FsError; use deno_io::fs::FsStat; @@ -91,7 +91,7 @@ pub enum FsOpsErrorKind { NotCapable(&'static str), #[class(inherit)] #[error(transparent)] - Other(JsNativeError), + Other(JsErrorBox), } impl From for FsOpsError { @@ -100,7 +100,7 @@ impl From for FsOpsError { FsError::Io(err) => FsOpsErrorKind::Io(err), FsError::FileBusy => FsOpsErrorKind::Resource(ResourceError::Unavailable), FsError::NotSupported => { - FsOpsErrorKind::Other(JsNativeError::not_supported()) + FsOpsErrorKind::Other(JsErrorBox::not_supported()) } FsError::NotCapable(err) => FsOpsErrorKind::NotCapable(err), } diff --git a/ext/http/http_next.rs b/ext/http/http_next.rs index 5b1d0b4c16b5cb..8ecfada0b9e6bd 100644 --- a/ext/http/http_next.rs +++ b/ext/http/http_next.rs @@ -182,7 +182,7 @@ pub enum HttpNextError { Other( #[from] #[inherit] - deno_core::error::JsNativeError, + deno_error::JsErrorBox, ), } diff --git a/ext/http/lib.rs b/ext/http/lib.rs index 7fce0ce3e9df58..feea915544633b 100644 --- a/ext/http/lib.rs +++ b/ext/http/lib.rs @@ -6,7 +6,6 @@ use async_compression::Level; use base64::prelude::BASE64_STANDARD; use base64::Engine; use cache_control::CacheControl; -use deno_core::error::JsNativeError; use deno_core::futures::channel::mpsc; use deno_core::futures::channel::oneshot; use deno_core::futures::future::pending; @@ -36,6 +35,7 @@ use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; use deno_core::StringOrBuffer; +use deno_error::JsErrorBox; use deno_net::raw::NetworkStream; use deno_websocket::ws_create_server_stream; use flate2::write::GzEncoder; @@ -208,7 +208,7 @@ pub enum HttpError { UpgradeBodyUsed, #[class("Http")] #[error(transparent)] - Other(#[from] JsNativeError), + Other(#[from] JsErrorBox), } pub enum HttpSocketAddr { @@ -500,7 +500,7 @@ impl Resource for HttpStreamReadResource { Some(_) => match body.as_mut().next().await.unwrap() { Ok(chunk) => assert!(chunk.is_empty()), Err(err) => { - break Err(JsNativeError::from_err(HttpError::HyperV014( + break Err(JsErrorBox::from_err(HttpError::HyperV014( Arc::new(err), ))) } diff --git a/ext/http/request_body.rs b/ext/http/request_body.rs index f071318704fcd4..18a4a49818a6bb 100644 --- a/ext/http/request_body.rs +++ b/ext/http/request_body.rs @@ -1,6 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use bytes::Bytes; -use deno_core::error::JsNativeError; use deno_core::futures::stream::Peekable; use deno_core::futures::Stream; use deno_core::futures::StreamExt; @@ -10,6 +9,7 @@ use deno_core::AsyncResult; use deno_core::BufView; use deno_core::RcRef; use deno_core::Resource; +use deno_error::JsErrorBox; use hyper::body::Body; use hyper::body::Incoming; use hyper::body::SizeHint; @@ -85,7 +85,7 @@ impl Resource for HttpRequestBody { fn read(self: Rc, limit: usize) -> AsyncResult { Box::pin( HttpRequestBody::read(self, limit) - .map_err(|e| JsNativeError::new("Http", e.to_string())), + .map_err(|e| JsErrorBox::new("Http", e.to_string())), ) } diff --git a/ext/http/request_properties.rs b/ext/http/request_properties.rs index 4f01664a9a91dd..4c9b7d6f0c0669 100644 --- a/ext/http/request_properties.rs +++ b/ext/http/request_properties.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::JsNativeError; use deno_core::OpState; use deno_core::ResourceId; +use deno_error::JsErrorBox; use deno_net::raw::take_network_stream_listener_resource; use deno_net::raw::take_network_stream_resource; use deno_net::raw::NetworkStream; @@ -49,13 +49,13 @@ pub trait HttpPropertyExtractor { fn get_listener_for_rid( state: &mut OpState, listener_rid: ResourceId, - ) -> Result; + ) -> Result; /// Given a connection [`ResourceId`], returns the [`HttpPropertyExtractor::Connection`]. fn get_connection_for_rid( state: &mut OpState, connection_rid: ResourceId, - ) -> Result; + ) -> Result; /// Determines the listener properties. fn listen_properties_from_listener( @@ -70,7 +70,7 @@ pub trait HttpPropertyExtractor { /// Accept a new [`HttpPropertyExtractor::Connection`] from the given listener [`HttpPropertyExtractor::Listener`]. async fn accept_connection_from_listener( listener: &Self::Listener, - ) -> Result; + ) -> Result; /// Determines the connection properties. fn connection_properties( @@ -102,7 +102,7 @@ impl HttpPropertyExtractor for DefaultHttpPropertyExtractor { fn get_listener_for_rid( state: &mut OpState, listener_rid: ResourceId, - ) -> Result { + ) -> Result { take_network_stream_listener_resource( &mut state.resource_table, listener_rid, @@ -112,18 +112,18 @@ impl HttpPropertyExtractor for DefaultHttpPropertyExtractor { fn get_connection_for_rid( state: &mut OpState, stream_rid: ResourceId, - ) -> Result { + ) -> Result { take_network_stream_resource(&mut state.resource_table, stream_rid) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) } async fn accept_connection_from_listener( listener: &NetworkStreamListener, - ) -> Result { + ) -> Result { listener .accept() .await - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) .map(|(stm, _)| stm) } diff --git a/ext/http/response_body.rs b/ext/http/response_body.rs index 3826a27cb48a14..88ef9a00038d7e 100644 --- a/ext/http/response_body.rs +++ b/ext/http/response_body.rs @@ -9,12 +9,12 @@ use brotli::enc::encode::BrotliEncoderStateStruct; use brotli::writer::StandardAlloc; use bytes::Bytes; use bytes::BytesMut; -use deno_core::error::JsNativeError; use deno_core::futures::ready; use deno_core::futures::FutureExt; use deno_core::AsyncResult; use deno_core::BufView; use deno_core::Resource; +use deno_error::JsErrorBox; use flate2::write::GzEncoder; use hyper::body::Frame; use hyper::body::SizeHint; @@ -32,12 +32,10 @@ pub enum ResponseStreamResult { /// will only be returned from compression streams that require additional buffering. NoData, /// Stream failed. - Error(JsNativeError), + Error(JsErrorBox), } -impl From - for Option, JsNativeError>> -{ +impl From for Option, JsErrorBox>> { fn from(value: ResponseStreamResult) -> Self { match value { ResponseStreamResult::EndOfStream => None, @@ -414,7 +412,7 @@ impl PollFrame for GZipResponseStream { let len = stm.total_out() - start_out; let res = match res { Err(err) => { - ResponseStreamResult::Error(JsNativeError::generic(err.to_string())) + ResponseStreamResult::Error(JsErrorBox::generic(err.to_string())) } Ok(flate2::Status::BufError) => { // This should not happen diff --git a/ext/http/service.rs b/ext/http/service.rs index 793f69443f0f79..b1e383e86a285f 100644 --- a/ext/http/service.rs +++ b/ext/http/service.rs @@ -14,7 +14,7 @@ use hyper::body::SizeHint; use hyper::header::HeaderMap; use hyper::upgrade::OnUpgrade; -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; use scopeguard::guard; use scopeguard::ScopeGuard; use std::cell::Cell; @@ -529,7 +529,7 @@ pub struct HttpRecordResponse(ManuallyDrop>); impl Body for HttpRecordResponse { type Data = BufView; - type Error = JsNativeError; + type Error = JsErrorBox; fn poll_frame( self: Pin<&mut Self>, diff --git a/ext/io/fs.rs b/ext/io/fs.rs index bd0d1774c60ff0..2eab22bb5d5ca5 100644 --- a/ext/io/fs.rs +++ b/ext/io/fs.rs @@ -7,12 +7,13 @@ use std::rc::Rc; use std::time::SystemTime; use std::time::UNIX_EPOCH; -use deno_core::error::{JsNativeError, ResourceError}; +use deno_core::error::ResourceError; use deno_core::BufMutView; use deno_core::BufView; use deno_core::OpState; use deno_core::ResourceHandleFd; use deno_core::ResourceId; +use deno_error::JsErrorBox; use tokio::task::JoinError; #[derive(Debug, deno_error::JsError)] @@ -282,14 +283,14 @@ impl FileResource { state: &OpState, rid: ResourceId, f: F, - ) -> Result + ) -> Result where - F: FnOnce(Rc) -> Result, + F: FnOnce(Rc) -> Result, { let resource = state .resource_table .get::(rid) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; f(resource) } @@ -305,9 +306,9 @@ impl FileResource { state: &OpState, rid: ResourceId, f: F, - ) -> Result + ) -> Result where - F: FnOnce(Rc) -> Result, + F: FnOnce(Rc) -> Result, { Self::with_resource(state, rid, |r| f(r.file.clone())) } @@ -329,7 +330,7 @@ impl deno_core::Resource for FileResource { .clone() .read(limit) .await - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) }) } @@ -343,7 +344,7 @@ impl deno_core::Resource for FileResource { .clone() .read_byob(buf) .await - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) }) } @@ -357,7 +358,7 @@ impl deno_core::Resource for FileResource { .clone() .write(buf) .await - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) }) } @@ -368,27 +369,27 @@ impl deno_core::Resource for FileResource { .clone() .write_all(buf) .await - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) }) } fn read_byob_sync( self: Rc, data: &mut [u8], - ) -> Result { + ) -> Result { self .file .clone() .read_sync(data) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) } - fn write_sync(self: Rc, data: &[u8]) -> Result { + fn write_sync(self: Rc, data: &[u8]) -> Result { self .file .clone() .write_sync(data) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) } fn backing_fd(self: Rc) -> Option { diff --git a/ext/io/lib.rs b/ext/io/lib.rs index 078cd4b56d3ef9..b012a93899ede9 100644 --- a/ext/io/lib.rs +++ b/ext/io/lib.rs @@ -47,8 +47,8 @@ use winapi::um::processenv::GetStdHandle; #[cfg(windows)] use winapi::um::winbase; -use deno_core::error::JsNativeError; use deno_core::futures::TryFutureExt; +use deno_error::JsErrorBox; #[cfg(windows)] use parking_lot::Condvar; #[cfg(windows)] @@ -418,7 +418,7 @@ impl Resource for ChildStdinResource { deno_core::impl_writable!(); fn shutdown(self: Rc) -> AsyncResult<()> { - Box::pin(self.shutdown().map_err(JsNativeError::from_err)) + Box::pin(self.shutdown().map_err(JsErrorBox::from_err)) } } @@ -1011,11 +1011,11 @@ pub fn op_print( state: &mut OpState, #[string] msg: &str, is_err: bool, -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { let rid = if is_err { 2 } else { 1 }; FileResource::with_file(state, rid, move |file| { file .write_all_sync(msg.as_bytes()) - .map_err(JsNativeError::from_err) + .map_err(JsErrorBox::from_err) }) } diff --git a/ext/kv/dynamic.rs b/ext/kv/dynamic.rs index 14f6066a063398..b6c1a6c2df716b 100644 --- a/ext/kv/dynamic.rs +++ b/ext/kv/dynamic.rs @@ -13,9 +13,8 @@ use crate::QueueMessageHandle; use crate::ReadRange; use crate::SnapshotReadOptions; use async_trait::async_trait; -use deno_core::error::AnyError; -use deno_core::error::JsNativeError; use deno_core::OpState; +use deno_error::JsErrorBox; use denokv_proto::CommitResult; use denokv_proto::ReadRangeOutput; use denokv_proto::WatchStream; @@ -62,7 +61,7 @@ impl DatabaseHandler for MultiBackendDbHandler { &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { for (prefixes, handler) in &self.backends { for &prefix in *prefixes { if prefix.is_empty() { @@ -76,7 +75,7 @@ impl DatabaseHandler for MultiBackendDbHandler { } } } - Err(JsNativeError::type_error(format!( + Err(JsErrorBox::type_error(format!( "No backend supports the given path: {:?}", path ))) @@ -89,7 +88,7 @@ pub trait DynamicDbHandler { &self, state: Rc>, path: Option, - ) -> Result; + ) -> Result; } #[async_trait(?Send)] @@ -100,7 +99,7 @@ impl DatabaseHandler for Box { &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { (**self).dyn_open(state, path).await } } @@ -115,7 +114,7 @@ where &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { Ok(RcDynamicDb(Rc::new(self.open(state, path).await?))) } } @@ -126,16 +125,16 @@ pub trait DynamicDb { &self, requests: Vec, options: SnapshotReadOptions, - ) -> Result, AnyError>; + ) -> Result, JsErrorBox>; async fn dyn_atomic_write( &self, write: AtomicWrite, - ) -> Result, AnyError>; + ) -> Result, JsErrorBox>; async fn dyn_dequeue_next_message( &self, - ) -> Result>, AnyError>; + ) -> Result>, JsErrorBox>; fn dyn_watch(&self, keys: Vec>) -> WatchStream; @@ -153,20 +152,20 @@ impl Database for RcDynamicDb { &self, requests: Vec, options: SnapshotReadOptions, - ) -> Result, AnyError> { + ) -> Result, JsErrorBox> { (*self.0).dyn_snapshot_read(requests, options).await } async fn atomic_write( &self, write: AtomicWrite, - ) -> Result, AnyError> { + ) -> Result, JsErrorBox> { (*self.0).dyn_atomic_write(write).await } async fn dequeue_next_message( &self, - ) -> Result>, AnyError> { + ) -> Result>, JsErrorBox> { (*self.0).dyn_dequeue_next_message().await } @@ -189,20 +188,20 @@ where &self, requests: Vec, options: SnapshotReadOptions, - ) -> Result, AnyError> { + ) -> Result, JsErrorBox> { Ok(self.snapshot_read(requests, options).await?) } async fn dyn_atomic_write( &self, write: AtomicWrite, - ) -> Result, AnyError> { + ) -> Result, JsErrorBox> { Ok(self.atomic_write(write).await?) } async fn dyn_dequeue_next_message( &self, - ) -> Result>, AnyError> { + ) -> Result>, JsErrorBox> { Ok( self .dequeue_next_message() diff --git a/ext/kv/interface.rs b/ext/kv/interface.rs index 774aac56d74e8b..b936f207371110 100644 --- a/ext/kv/interface.rs +++ b/ext/kv/interface.rs @@ -4,8 +4,8 @@ use std::cell::RefCell; use std::rc::Rc; use async_trait::async_trait; -use deno_core::error::JsNativeError; use deno_core::OpState; +use deno_error::JsErrorBox; use denokv_proto::Database; #[async_trait(?Send)] @@ -16,5 +16,5 @@ pub trait DatabaseHandler { &self, state: Rc>, path: Option, - ) -> Result; + ) -> Result; } diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs index 8e0a49515ef067..992fed23813138 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -17,7 +17,6 @@ use base64::Engine; use boxed_error::Boxed; use chrono::DateTime; use chrono::Utc; -use deno_core::error::JsNativeError; use deno_core::futures::StreamExt; use deno_core::op2; use deno_core::serde_v8::AnyValue; @@ -32,6 +31,7 @@ use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; use deno_core::ToJsBuffer; +use deno_error::JsErrorBox; use deno_error::JsErrorClass; use denokv_proto::decode_key; use denokv_proto::encode_key; @@ -123,7 +123,7 @@ pub struct KvError(pub Box); pub enum KvErrorKind { #[class(inherit)] #[error(transparent)] - DatabaseHandler(JsNativeError), + DatabaseHandler(JsErrorBox), #[class(inherit)] #[error(transparent)] Resource(#[from] deno_core::error::ResourceError), @@ -160,9 +160,9 @@ pub enum KvErrorKind { #[class(type)] #[error("Total key size too large (max {0} bytes)")] TotalKeyTooLarge(usize), - #[class(generic)] + #[class(inherit)] #[error(transparent)] - Kv(deno_core::error::AnyError), + Kv(JsErrorBox), #[class(inherit)] #[error(transparent)] Io(#[from] std::io::Error), diff --git a/ext/kv/remote.rs b/ext/kv/remote.rs index f5afeb496bdf3c..c497984ea09edc 100644 --- a/ext/kv/remote.rs +++ b/ext/kv/remote.rs @@ -9,9 +9,9 @@ use crate::DatabaseHandler; use anyhow::Context; use async_trait::async_trait; use bytes::Bytes; -use deno_core::error::JsNativeError; -use deno_core::futures::{Stream, TryStreamExt}; +use deno_core::futures::Stream; use deno_core::OpState; +use deno_error::JsErrorBox; use deno_fetch::create_http_client; use deno_fetch::CreateHttpClientOptions; use deno_permissions::PermissionCheckError; @@ -36,9 +36,7 @@ pub struct HttpOptions { } impl HttpOptions { - pub fn root_cert_store( - &self, - ) -> Result, JsNativeError> { + pub fn root_cert_store(&self) -> Result, JsErrorBox> { Ok(match &self.root_cert_store_provider { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, @@ -102,12 +100,12 @@ impl Clone for PermissionChecker

{ impl denokv_remote::RemotePermissions for PermissionChecker

{ - fn check_net_url(&self, url: &Url) -> Result<(), anyhow::Error> { + fn check_net_url(&self, url: &Url) -> Result<(), JsErrorBox> { let mut state = self.state.borrow_mut(); let permissions = state.borrow_mut::

(); permissions .check_net_url(url, "Deno.openKv") - .map_err(Into::into) + .map_err(JsErrorBox::from_err) } } @@ -122,37 +120,45 @@ impl RemoteTransport for FetchClient { url: Url, headers: http::HeaderMap, body: Bytes, - ) -> Result<(Url, http::StatusCode, Self::Response), anyhow::Error> { + ) -> Result<(Url, http::StatusCode, Self::Response), JsErrorBox> { let body = http_body_util::Full::new(body) .map_err(|never| match never {}) .boxed(); let mut req = http::Request::new(body); *req.method_mut() = http::Method::POST; - *req.uri_mut() = url.as_str().parse()?; + *req.uri_mut() = + url.as_str().parse().map_err(|e: http::uri::InvalidUri| { + JsErrorBox::type_error(e.to_string()) + })?; *req.headers_mut() = headers; - let res = self.0.clone().send(req).await?; + let res = self + .0 + .clone() + .send(req) + .await + .map_err(JsErrorBox::from_err)?; let status = res.status(); Ok((url, status, FetchResponse(res))) } } impl RemoteResponse for FetchResponse { - async fn bytes(self) -> Result { + async fn bytes(self) -> Result { Ok(self.0.collect().await?.to_bytes()) } fn stream( self, - ) -> impl Stream> + Send + Sync { - self - .0 - .into_body() - .into_data_stream() - .map_err(anyhow::Error::from) + ) -> impl Stream> + Send + Sync { + self.0.into_body().into_data_stream() } - async fn text(self) -> Result { + async fn text(self) -> Result { let bytes = self.bytes().await?; - Ok(std::str::from_utf8(&bytes)?.into()) + Ok( + std::str::from_utf8(&bytes) + .map_err(JsErrorBox::from_err)? + .into(), + ) } } @@ -166,15 +172,15 @@ impl DatabaseHandler &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { const ENV_VAR_NAME: &str = "DENO_KV_ACCESS_TOKEN"; let Some(url) = path else { - return Err(JsNativeError::type_error("Missing database url")); + return Err(JsErrorBox::type_error("Missing database url")); }; let Ok(parsed_url) = Url::parse(&url) else { - return Err(JsNativeError::type_error(format!( + return Err(JsErrorBox::type_error(format!( "Invalid database url: {}", url ))); @@ -185,17 +191,17 @@ impl DatabaseHandler let permissions = state.borrow_mut::

(); permissions .check_env(ENV_VAR_NAME) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; permissions .check_net_url(&parsed_url, "Deno.openKv") - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; } let access_token = std::env::var(ENV_VAR_NAME) .map_err(anyhow::Error::from) .with_context(|| { "Missing DENO_KV_ACCESS_TOKEN environment variable. Please set it to your access token from https://dash.deno.com/account." - }).map_err(|e| JsNativeError::generic(e.to_string()))?; + }).map_err(|e| JsErrorBox::generic(e.to_string()))?; let metadata_endpoint = MetadataEndpoint { url: parsed_url.clone(), @@ -225,7 +231,7 @@ impl DatabaseHandler client_builder_hook: None, }, ) - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; let fetch_client = FetchClient(client); let permissions = PermissionChecker { diff --git a/ext/kv/sqlite.rs b/ext/kv/sqlite.rs index 6354d9f342d3b4..a1ef79b827e218 100644 --- a/ext/kv/sqlite.rs +++ b/ext/kv/sqlite.rs @@ -15,9 +15,9 @@ use std::sync::OnceLock; use crate::DatabaseHandler; use async_trait::async_trait; -use deno_core::error::JsNativeError; use deno_core::unsync::spawn_blocking; use deno_core::OpState; +use deno_error::JsErrorBox; use deno_path_util::normalize_path; use deno_permissions::PermissionCheckError; pub use denokv_sqlite::SqliteBackendError; @@ -97,12 +97,12 @@ impl DatabaseHandler for SqliteDbHandler

{ &self, state: Rc>, path: Option, - ) -> Result { + ) -> Result { #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"] fn validate_path( state: &RefCell, path: Option, - ) -> Result, JsNativeError> { + ) -> Result, JsErrorBox> { let Some(path) = path else { return Ok(None); }; @@ -110,10 +110,10 @@ impl DatabaseHandler for SqliteDbHandler

{ return Ok(Some(path)); } if path.is_empty() { - return Err(JsNativeError::type_error("Filename cannot be empty")); + return Err(JsErrorBox::type_error("Filename cannot be empty")); } if path.starts_with(':') { - return Err(JsNativeError::type_error( + return Err(JsErrorBox::type_error( "Filename cannot start with ':' unless prefixed with './'", )); } @@ -122,10 +122,10 @@ impl DatabaseHandler for SqliteDbHandler

{ let permissions = state.borrow_mut::

(); let path = permissions .check_read(&path, "Deno.openKv") - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; let path = permissions .check_write(&path, "Deno.openKv") - .map_err(JsNativeError::from_err)?; + .map_err(JsErrorBox::from_err)?; Ok(Some(path.to_string_lossy().to_string())) } } @@ -145,7 +145,8 @@ impl DatabaseHandler for SqliteDbHandler

{ (Some(path), _) => { let flags = OpenFlags::default().difference(OpenFlags::SQLITE_OPEN_URI); - let resolved_path = canonicalize_path(&PathBuf::from(path))?; + let resolved_path = canonicalize_path(&PathBuf::from(path)) + .map_err(JsErrorBox::from_err)?; let path = path.to_string(); ( Arc::new(move || { @@ -155,7 +156,7 @@ impl DatabaseHandler for SqliteDbHandler

{ ) } (None, Some(path)) => { - std::fs::create_dir_all(path).map_err(anyhow::Error::from)?; + std::fs::create_dir_all(path).map_err(JsErrorBox::from_err)?; let path = path.join("kv.sqlite3"); let path2 = path.clone(); ( @@ -170,7 +171,7 @@ impl DatabaseHandler for SqliteDbHandler

{ }) .await .unwrap() - .map_err(|e| JsNativeError::from_err(JsSqliteBackendError::from(e)))?; + .map_err(JsErrorBox::from_err)?; let notifier = if let Some(notifier_key) = notifier_key { SQLITE_NOTIFIERS_MAP @@ -193,8 +194,11 @@ impl DatabaseHandler for SqliteDbHandler

{ denokv_sqlite::Sqlite::new( move || { - let conn = conn_gen()?; - conn.pragma_update(None, "journal_mode", "wal")?; + let conn = + conn_gen().map_err(|e| JsErrorBox::generic(e.to_string()))?; + conn + .pragma_update(None, "journal_mode", "wal") + .map_err(|e| JsErrorBox::generic(e.to_string()))?; Ok(( conn, match versionstamp_rng_seed { @@ -206,14 +210,12 @@ impl DatabaseHandler for SqliteDbHandler

{ notifier, config, ) - .map_err(|e| JsNativeError::generic(e.to_string())) + .map_err(|e| JsErrorBox::generic(e.to_string())) } } /// Same as Path::canonicalize, but also handles non-existing paths. -fn canonicalize_path( - path: &Path, -) -> Result { +fn canonicalize_path(path: &Path) -> Result { let path = normalize_path(path); let mut path = path; let mut names_stack = Vec::new(); @@ -236,7 +238,7 @@ fn canonicalize_path( path.clone_from(¤t_dir); } } - Err(err) => return Err(err.into()), + Err(err) => return Err(err), } } } diff --git a/ext/net/io.rs b/ext/net/io.rs index 9d08a9e0f88bc3..ba9b6cab9977bc 100644 --- a/ext/net/io.rs +++ b/ext/net/io.rs @@ -1,6 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::JsNativeError; use deno_core::futures::TryFutureExt; use deno_core::AsyncMutFuture; use deno_core::AsyncRefCell; @@ -9,6 +8,7 @@ use deno_core::CancelHandle; use deno_core::CancelTryFuture; use deno_core::RcRef; use deno_core::Resource; +use deno_error::JsErrorBox; use socket2::SockRef; use std::borrow::Cow; use std::rc::Rc; @@ -113,7 +113,7 @@ impl Resource for TcpStreamResource { } fn shutdown(self: Rc) -> AsyncResult<()> { - Box::pin(self.shutdown().map_err(JsNativeError::from_err)) + Box::pin(self.shutdown().map_err(JsErrorBox::from_err)) } fn close(self: Rc) { @@ -165,7 +165,7 @@ impl UnixStreamResource { unreachable!() } #[allow(clippy::unused_async)] - pub async fn shutdown(self: Rc) -> Result<(), JsNativeError> { + pub async fn shutdown(self: Rc) -> Result<(), JsErrorBox> { unreachable!() } pub fn cancel_read_ops(&self) { @@ -182,7 +182,7 @@ impl Resource for UnixStreamResource { } fn shutdown(self: Rc) -> AsyncResult<()> { - Box::pin(self.shutdown().map_err(JsNativeError::from_err)) + Box::pin(self.shutdown().map_err(JsErrorBox::from_err)) } fn close(self: Rc) { diff --git a/ext/net/lib.rs b/ext/net/lib.rs index 4656c838ede629..805ab2c9c051dc 100644 --- a/ext/net/lib.rs +++ b/ext/net/lib.rs @@ -105,7 +105,7 @@ pub struct DefaultTlsOptions { impl DefaultTlsOptions { pub fn root_cert_store( &self, - ) -> Result, deno_core::error::JsNativeError> { + ) -> Result, deno_error::JsErrorBox> { Ok(match &self.root_cert_store_provider { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, diff --git a/ext/net/ops.rs b/ext/net/ops.rs index 76cd8a1042250f..f20aaa12ea4153 100644 --- a/ext/net/ops.rs +++ b/ext/net/ops.rs @@ -145,7 +145,7 @@ pub enum NetError { ListenTlsRequiresKey, #[class(inherit)] #[error("{0}")] - RootCertStore(deno_core::error::JsNativeError), + RootCertStore(deno_error::JsErrorBox), #[class(generic)] #[error("{0}")] Reunite(tokio::net::tcp::ReuniteError), diff --git a/ext/net/ops_tls.rs b/ext/net/ops_tls.rs index bde0c721dc4718..c5f8de2937e408 100644 --- a/ext/net/ops_tls.rs +++ b/ext/net/ops_tls.rs @@ -11,7 +11,6 @@ use crate::tcp::TcpListener; use crate::DefaultTlsOptions; use crate::NetPermissions; use crate::UnsafelyIgnoreCertificateErrors; -use deno_core::error::JsNativeError; use deno_core::futures::TryFutureExt; use deno_core::op2; use deno_core::v8; @@ -23,6 +22,7 @@ use deno_core::OpState; use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; +use deno_error::JsErrorBox; use deno_tls::create_client_config; use deno_tls::load_certs; use deno_tls::load_private_keys; @@ -163,7 +163,7 @@ impl Resource for TlsStreamResource { } fn shutdown(self: Rc) -> AsyncResult<()> { - Box::pin(self.shutdown().map_err(JsNativeError::from_err)) + Box::pin(self.shutdown().map_err(JsErrorBox::from_err)) } fn close(self: Rc) { diff --git a/ext/net/raw.rs b/ext/net/raw.rs index 284effa9a54c18..043d06feb7cbb0 100644 --- a/ext/net/raw.rs +++ b/ext/net/raw.rs @@ -1,13 +1,13 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::io::TcpStreamResource; use crate::ops_tls::TlsStreamResource; -use deno_core::error::JsNativeError; use deno_core::error::ResourceError; use deno_core::AsyncRefCell; use deno_core::CancelHandle; use deno_core::Resource; use deno_core::ResourceId; use deno_core::ResourceTable; +use deno_error::JsErrorBox; use std::borrow::Cow; use std::rc::Rc; @@ -66,11 +66,10 @@ impl NetworkListenerResource { fn take( resource_table: &mut ResourceTable, listener_rid: ResourceId, - ) -> Result, JsNativeError> { + ) -> Result, JsErrorBox> { if let Ok(resource_rc) = resource_table.take::(listener_rid) { - let resource = Rc::try_unwrap(resource_rc).map_err(|_| { - JsNativeError::new("Busy", "Listener is currently in use") - })?; + let resource = Rc::try_unwrap(resource_rc) + .map_err(|_| JsErrorBox::new("Busy", "Listener is currently in use"))?; return Ok(Some(resource.listener.into_inner().into())); } Ok(None) @@ -241,13 +240,13 @@ macro_rules! network_stream { /// Return a `NetworkStreamListener` if a resource exists for this `ResourceId` and it is currently /// not locked. - pub fn take_resource(resource_table: &mut ResourceTable, listener_rid: ResourceId) -> Result { + pub fn take_resource(resource_table: &mut ResourceTable, listener_rid: ResourceId) -> Result { $( if let Some(resource) = NetworkListenerResource::<$listener>::take(resource_table, listener_rid)? { return Ok(resource) } )* - Err(JsNativeError::from_err(ResourceError::BadResourceId)) + Err(JsErrorBox::from_err(ResourceError::BadResourceId)) } } }; @@ -396,6 +395,6 @@ pub fn take_network_stream_resource( pub fn take_network_stream_listener_resource( resource_table: &mut ResourceTable, listener_rid: ResourceId, -) -> Result { +) -> Result { NetworkStreamListener::take_resource(resource_table, listener_rid) } diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 28b3c6beaa502a..a59d65e57de507 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -8,12 +8,12 @@ use std::collections::HashSet; use std::path::Path; use std::path::PathBuf; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::url::Url; #[allow(unused_imports)] use deno_core::v8; use deno_core::v8::ExternalReference; +use deno_error::JsErrorBox; use node_resolver::errors::ClosestPkgJsonError; use node_resolver::NpmPackageFolderResolverRc; use once_cell::sync::Lazy; @@ -155,12 +155,12 @@ pub trait NodeRequireLoader { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, JsNativeError>; + ) -> Result, JsErrorBox>; fn load_text_file_lossy( &self, path: &Path, - ) -> Result, JsNativeError>; + ) -> Result, JsErrorBox>; /// Get if the module kind is maybe CJS and loading should determine /// if its CJS or ESM. diff --git a/ext/node/ops/buffer.rs b/ext/node/ops/buffer.rs index b8f8979243c472..271b0107804246 100644 --- a/ext/node/ops/buffer.rs +++ b/ext/node/ops/buffer.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::JsNativeError; use deno_core::op2; +use deno_error::JsErrorBox; #[op2(fast)] pub fn op_is_ascii(#[buffer] buf: &[u8]) -> bool { @@ -19,7 +19,7 @@ pub fn op_transcode( #[buffer] source: &[u8], #[string] from_encoding: &str, #[string] to_encoding: &str, -) -> Result, JsNativeError> { +) -> Result, JsErrorBox> { match (from_encoding, to_encoding) { ("utf8", "ascii") => Ok(utf8_to_ascii(source)), ("utf8", "latin1") => Ok(utf8_to_latin1(source)), @@ -28,7 +28,7 @@ pub fn op_transcode( ("latin1", "utf16le") | ("ascii", "utf16le") => { Ok(latin1_ascii_to_utf16le(source)) } - (from, to) => Err(JsNativeError::generic(format!( + (from, to) => Err(JsErrorBox::generic(format!( "Unable to transcode Buffer {from}->{to}" ))), } @@ -43,21 +43,19 @@ fn latin1_ascii_to_utf16le(source: &[u8]) -> Vec { result } -fn utf16le_to_utf8(source: &[u8]) -> Result, JsNativeError> { +fn utf16le_to_utf8(source: &[u8]) -> Result, JsErrorBox> { let ucs2_vec: Vec = source .chunks(2) .map(|chunk| u16::from_le_bytes([chunk[0], chunk[1]])) .collect(); String::from_utf16(&ucs2_vec) .map(|utf8_string| utf8_string.into_bytes()) - .map_err(|e| { - JsNativeError::generic(format!("Invalid UTF-16 sequence: {}", e)) - }) + .map_err(|e| JsErrorBox::generic(format!("Invalid UTF-16 sequence: {}", e))) } -fn utf8_to_utf16le(source: &[u8]) -> Result, JsNativeError> { +fn utf8_to_utf16le(source: &[u8]) -> Result, JsErrorBox> { let utf8_string = - std::str::from_utf8(source).map_err(JsNativeError::from_err)?; + std::str::from_utf8(source).map_err(JsErrorBox::from_err)?; let ucs2_vec: Vec = utf8_string.encode_utf16().collect(); let bytes: Vec = ucs2_vec.iter().flat_map(|&x| x.to_le_bytes()).collect(); Ok(bytes) diff --git a/ext/node/ops/crypto/keys.rs b/ext/node/ops/crypto/keys.rs index c858ff4d694d5b..ab579e56976a0c 100644 --- a/ext/node/ops/crypto/keys.rs +++ b/ext/node/ops/crypto/keys.rs @@ -4,12 +4,12 @@ use std::borrow::Cow; use std::cell::RefCell; use base64::Engine; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::serde_v8::BigInt as V8BigInt; use deno_core::unsync::spawn_blocking; use deno_core::GarbageCollected; use deno_core::ToJsBuffer; +use deno_error::JsErrorBox; use ed25519_dalek::pkcs8::BitStringRef; use elliptic_curve::JwkEcKey; use num_bigint::BigInt; @@ -1593,7 +1593,7 @@ pub fn op_node_create_secret_key( #[string] pub fn op_node_get_asymmetric_key_type( #[cppgc] handle: &KeyObjectHandle, -) -> Result<&'static str, JsNativeError> { +) -> Result<&'static str, JsErrorBox> { match handle { KeyObjectHandle::AsymmetricPrivate(AsymmetricPrivateKey::Rsa(_)) | KeyObjectHandle::AsymmetricPublic(AsymmetricPublicKey::Rsa(_)) => { @@ -1619,7 +1619,7 @@ pub fn op_node_get_asymmetric_key_type( } KeyObjectHandle::AsymmetricPrivate(AsymmetricPrivateKey::Dh(_)) | KeyObjectHandle::AsymmetricPublic(AsymmetricPublicKey::Dh(_)) => Ok("dh"), - KeyObjectHandle::Secret(_) => Err(JsNativeError::type_error( + KeyObjectHandle::Secret(_) => Err(JsErrorBox::type_error( "symmetric key is not an asymmetric key", )), } @@ -1664,7 +1664,7 @@ pub enum AsymmetricKeyDetails { #[serde] pub fn op_node_get_asymmetric_key_details( #[cppgc] handle: &KeyObjectHandle, -) -> Result { +) -> Result { match handle { KeyObjectHandle::AsymmetricPrivate(private_key) => match private_key { AsymmetricPrivateKey::Rsa(key) => { @@ -1772,7 +1772,7 @@ pub fn op_node_get_asymmetric_key_details( AsymmetricPublicKey::Ed25519(_) => Ok(AsymmetricKeyDetails::Ed25519), AsymmetricPublicKey::Dh(_) => Ok(AsymmetricKeyDetails::Dh), }, - KeyObjectHandle::Secret(_) => Err(JsNativeError::type_error( + KeyObjectHandle::Secret(_) => Err(JsErrorBox::type_error( "symmetric key is not an asymmetric key", )), } @@ -1782,10 +1782,10 @@ pub fn op_node_get_asymmetric_key_details( #[smi] pub fn op_node_get_symmetric_key_size( #[cppgc] handle: &KeyObjectHandle, -) -> Result { +) -> Result { match handle { KeyObjectHandle::AsymmetricPrivate(_) - | KeyObjectHandle::AsymmetricPublic(_) => Err(JsNativeError::type_error( + | KeyObjectHandle::AsymmetricPublic(_) => Err(JsErrorBox::type_error( "asymmetric key is not a symmetric key", )), KeyObjectHandle::Secret(key) => Ok(key.len() * 8), @@ -1995,7 +1995,7 @@ pub async fn op_node_generate_rsa_pss_key_async( fn dsa_generate( modulus_length: usize, divisor_length: usize, -) -> Result { +) -> Result { let mut rng = rand::thread_rng(); use dsa::Components; use dsa::KeySize; @@ -2008,7 +2008,7 @@ fn dsa_generate( (2048, 256) => KeySize::DSA_2048_256, (3072, 256) => KeySize::DSA_3072_256, _ => { - return Err(JsNativeError::type_error( + return Err(JsErrorBox::type_error( "Invalid modulusLength+divisorLength combination", )) } @@ -2026,7 +2026,7 @@ fn dsa_generate( pub fn op_node_generate_dsa_key( #[smi] modulus_length: usize, #[smi] divisor_length: usize, -) -> Result { +) -> Result { dsa_generate(modulus_length, divisor_length) } @@ -2035,15 +2035,13 @@ pub fn op_node_generate_dsa_key( pub async fn op_node_generate_dsa_key_async( #[smi] modulus_length: usize, #[smi] divisor_length: usize, -) -> Result { +) -> Result { spawn_blocking(move || dsa_generate(modulus_length, divisor_length)) .await .unwrap() } -fn ec_generate( - named_curve: &str, -) -> Result { +fn ec_generate(named_curve: &str) -> Result { let mut rng = rand::thread_rng(); // TODO(@littledivy): Support public key point encoding. // Default is uncompressed. @@ -2061,7 +2059,7 @@ fn ec_generate( AsymmetricPrivateKey::Ec(EcPrivateKey::P384(key)) } _ => { - return Err(JsNativeError::type_error(format!( + return Err(JsErrorBox::type_error(format!( "unsupported named curve: {}", named_curve ))) @@ -2075,7 +2073,7 @@ fn ec_generate( #[cppgc] pub fn op_node_generate_ec_key( #[string] named_curve: &str, -) -> Result { +) -> Result { ec_generate(named_curve) } @@ -2083,7 +2081,7 @@ pub fn op_node_generate_ec_key( #[cppgc] pub async fn op_node_generate_ec_key_async( #[string] named_curve: String, -) -> Result { +) -> Result { spawn_blocking(move || ec_generate(&named_curve)) .await .unwrap() @@ -2139,7 +2137,7 @@ fn u32_slice_to_u8_slice(slice: &[u32]) -> &[u8] { fn dh_group_generate( group_name: &str, -) -> Result { +) -> Result { let (dh, prime, generator) = match group_name { "modp5" => ( dh::DiffieHellman::group::(), @@ -2171,7 +2169,7 @@ fn dh_group_generate( dh::Modp8192::MODULUS, dh::Modp8192::GENERATOR, ), - _ => return Err(JsNativeError::type_error("Unsupported group name")), + _ => return Err(JsErrorBox::type_error("Unsupported group name")), }; let params = DhParameter { prime: asn1::Int::new(u32_slice_to_u8_slice(prime)).unwrap(), @@ -2194,7 +2192,7 @@ fn dh_group_generate( #[cppgc] pub fn op_node_generate_dh_group_key( #[string] group_name: &str, -) -> Result { +) -> Result { dh_group_generate(group_name) } @@ -2202,7 +2200,7 @@ pub fn op_node_generate_dh_group_key( #[cppgc] pub async fn op_node_generate_dh_group_key_async( #[string] group_name: String, -) -> Result { +) -> Result { spawn_blocking(move || dh_group_generate(&group_name)) .await .unwrap() @@ -2276,10 +2274,10 @@ pub fn op_node_dh_keys_generate_and_export( #[buffer] pub fn op_node_export_secret_key( #[cppgc] handle: &KeyObjectHandle, -) -> Result, JsNativeError> { +) -> Result, JsErrorBox> { let key = handle .as_secret_key() - .ok_or_else(|| JsNativeError::type_error("key is not a secret key"))?; + .ok_or_else(|| JsErrorBox::type_error("key is not a secret key"))?; Ok(key.to_vec().into_boxed_slice()) } @@ -2287,10 +2285,10 @@ pub fn op_node_export_secret_key( #[string] pub fn op_node_export_secret_key_b64url( #[cppgc] handle: &KeyObjectHandle, -) -> Result { +) -> Result { let key = handle .as_secret_key() - .ok_or_else(|| JsNativeError::type_error("key is not a secret key"))?; + .ok_or_else(|| JsErrorBox::type_error("key is not a secret key"))?; Ok(base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(key)) } @@ -2435,9 +2433,9 @@ pub fn op_node_key_type(#[cppgc] handle: &KeyObjectHandle) -> &'static str { #[cppgc] pub fn op_node_derive_public_key_from_private_key( #[cppgc] handle: &KeyObjectHandle, -) -> Result { +) -> Result { let Some(private_key) = handle.as_private_key() else { - return Err(JsNativeError::type_error("expected private key")); + return Err(JsErrorBox::type_error("expected private key")); }; Ok(KeyObjectHandle::AsymmetricPublic( diff --git a/ext/node/ops/crypto/mod.rs b/ext/node/ops/crypto/mod.rs index 6ed050ee2be12c..a80f67f0aab843 100644 --- a/ext/node/ops/crypto/mod.rs +++ b/ext/node/ops/crypto/mod.rs @@ -1,11 +1,11 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::unsync::spawn_blocking; use deno_core::JsBuffer; use deno_core::OpState; use deno_core::StringOrBuffer; use deno_core::ToJsBuffer; +use deno_error::JsErrorBox; use elliptic_curve::sec1::ToEncodedPoint; use hkdf::Hkdf; use keys::AsymmetricPrivateKey; @@ -574,7 +574,7 @@ fn scrypt( parallelization: u32, _maxmem: u32, output_buffer: &mut [u8], -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { // Construct Params let params = scrypt::Params::new( cost as u8, @@ -590,7 +590,7 @@ fn scrypt( Ok(()) } else { // TODO(lev): key derivation failed, so what? - Err(JsNativeError::generic("scrypt key derivation failed")) + Err(JsErrorBox::generic("scrypt key derivation failed")) } } @@ -605,7 +605,7 @@ pub fn op_node_scrypt_sync( #[smi] parallelization: u32, #[smi] maxmem: u32, #[anybuffer] output_buffer: &mut [u8], -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { scrypt( password, salt, @@ -625,7 +625,7 @@ pub enum ScryptAsyncError { Join(#[from] tokio::task::JoinError), #[class(inherit)] #[error(transparent)] - Other(JsNativeError), + Other(JsErrorBox), } #[op2(async)] @@ -746,7 +746,7 @@ pub fn op_node_ecdh_generate_keys( #[buffer] pubbuf: &mut [u8], #[buffer] privbuf: &mut [u8], #[string] format: &str, -) -> Result<(), JsNativeError> { +) -> Result<(), JsErrorBox> { let mut rng = rand::thread_rng(); let compress = format == "compressed"; match curve { @@ -783,7 +783,7 @@ pub fn op_node_ecdh_generate_keys( Ok(()) } - &_ => Err(JsNativeError::type_error(format!( + &_ => Err(JsErrorBox::type_error(format!( "Unsupported curve: {}", curve ))), diff --git a/ext/node/ops/http.rs b/ext/node/ops/http.rs index cf73610ae3aad2..3d583876379d83 100644 --- a/ext/node/ops/http.rs +++ b/ext/node/ops/http.rs @@ -9,12 +9,13 @@ use std::task::Context; use std::task::Poll; use bytes::Bytes; -use deno_core::error::{JsNativeError, ResourceError}; +use deno_core::error::ResourceError; use deno_core::futures::stream::Peekable; use deno_core::futures::Future; use deno_core::futures::FutureExt; use deno_core::futures::Stream; use deno_core::futures::StreamExt; +use deno_core::op2; use deno_core::serde::Serialize; use deno_core::unsync::spawn; use deno_core::url::Url; @@ -26,11 +27,12 @@ use deno_core::CancelFuture; use deno_core::CancelHandle; use deno_core::CancelTryFuture; use deno_core::Canceled; +use deno_core::JsError; use deno_core::OpState; use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; -use deno_core::{op2, JsError}; +use deno_error::JsErrorBox; use deno_fetch::FetchCancelHandle; use deno_fetch::FetchReturn; use deno_fetch::ResBody; @@ -311,7 +313,7 @@ pub async fn op_node_http_await_response( }; let (parts, body) = res.into_parts(); - let body = body.map_err(|e| JsNativeError::new("Http", e.to_string())); + let body = body.map_err(|e| JsErrorBox::new("Http", e.to_string())); let body = body.boxed(); let res = http::Response::from_parts(parts, body); @@ -538,9 +540,7 @@ impl Resource for NodeHttpResponseResource { // safely call `await` on it without creating a race condition. Some(_) => match reader.as_mut().next().await.unwrap() { Ok(chunk) => assert!(chunk.is_empty()), - Err(err) => { - break Err(JsNativeError::type_error(err.to_string())) - } + Err(err) => break Err(JsErrorBox::type_error(err.to_string())), }, None => break Ok(BufView::empty()), } @@ -564,7 +564,7 @@ impl Resource for NodeHttpResponseResource { #[allow(clippy::type_complexity)] pub struct NodeHttpResourceToBodyAdapter( Rc, - Option>>>>, + Option>>>>, ); impl NodeHttpResourceToBodyAdapter { @@ -580,7 +580,7 @@ unsafe impl Send for NodeHttpResourceToBodyAdapter {} unsafe impl Sync for NodeHttpResourceToBodyAdapter {} impl Stream for NodeHttpResourceToBodyAdapter { - type Item = Result; + type Item = Result; fn poll_next( self: Pin<&mut Self>, @@ -611,7 +611,7 @@ impl Stream for NodeHttpResourceToBodyAdapter { impl hyper::body::Body for NodeHttpResourceToBodyAdapter { type Data = Bytes; - type Error = JsNativeError; + type Error = JsErrorBox; fn poll_frame( self: Pin<&mut Self>, diff --git a/ext/node/ops/inspector.rs b/ext/node/ops/inspector.rs index 462366ae5dcd59..1096f0e8f88252 100644 --- a/ext/node/ops/inspector.rs +++ b/ext/node/ops/inspector.rs @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::NodePermissions; -use deno_core::error::JsNativeError; use deno_core::futures::channel::mpsc; use deno_core::op2; use deno_core::v8; @@ -10,6 +9,7 @@ use deno_core::InspectorSessionKind; use deno_core::InspectorSessionOptions; use deno_core::JsRuntimeInspector; use deno_core::OpState; +use deno_error::JsErrorBox; use std::cell::RefCell; use std::rc::Rc; @@ -24,7 +24,7 @@ pub fn op_inspector_open

( _state: &mut OpState, _port: Option, #[string] _host: Option, -) -> Result<(), JsNativeError> +) -> Result<(), JsErrorBox> where P: NodePermissions + 'static, { diff --git a/ext/node/ops/ipc.rs b/ext/node/ops/ipc.rs index 8a85ee33e03895..d6c2f63ad906e8 100644 --- a/ext/node/ops/ipc.rs +++ b/ext/node/ops/ipc.rs @@ -17,7 +17,6 @@ mod impl_ { use std::task::Context; use std::task::Poll; - use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::serde; use deno_core::serde::Serializer; @@ -31,6 +30,7 @@ mod impl_ { use deno_core::RcRef; use deno_core::ResourceId; use deno_core::ToV8; + use deno_error::JsErrorBox; use memchr::memchr; use pin_project_lite::pin_project; use serde::Serialize; @@ -81,7 +81,7 @@ mod impl_ { } else if value.is_string_object() { let str = deno_core::serde_v8::to_utf8( value.to_string(scope).ok_or_else(|| { - S::Error::custom(deno_core::error::JsNativeError::generic( + S::Error::custom(deno_error::JsErrorBox::generic( "toString on string object failed", )) })?, @@ -154,7 +154,7 @@ mod impl_ { map.end() } else { // TODO(nathanwhit): better error message - Err(S::Error::custom(JsNativeError::type_error(format!( + Err(S::Error::custom(JsErrorBox::type_error(format!( "Unsupported type: {}", value.type_repr() )))) diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index 783dfcfe90dcad..3407ced2c0a790 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -6,12 +6,12 @@ use crate::NodeResolverRc; use crate::NpmPackageFolderResolverRc; use crate::PackageJsonResolverRc; use boxed_error::Boxed; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::url::Url; use deno_core::v8; use deno_core::JsRuntimeInspector; use deno_core::OpState; +use deno_error::JsErrorBox; use deno_fs::FileSystemRc; use deno_fs::V8MaybeStaticStr; use deno_package_json::PackageJsonRc; @@ -32,7 +32,7 @@ use std::rc::Rc; fn ensure_read_permission<'a, P>( state: &mut OpState, file_path: &'a Path, -) -> Result, JsNativeError> +) -> Result, JsErrorBox> where P: NodePermissions + 'static, { @@ -55,7 +55,7 @@ pub enum RequireErrorKind { ), #[class(inherit)] #[error(transparent)] - Permission(#[inherit] JsNativeError), + Permission(#[inherit] JsErrorBox), #[class(generic)] #[error(transparent)] PackageExportsResolve( @@ -90,7 +90,7 @@ pub enum RequireErrorKind { ReadModule( #[from] #[inherit] - JsNativeError, + JsErrorBox, ), #[class(inherit)] #[error("Unable to get CWD: {0}")] @@ -323,7 +323,7 @@ pub fn op_require_path_is_absolute(#[string] p: String) -> bool { pub fn op_require_stat

( state: &mut OpState, #[string] path: String, -) -> Result +) -> Result where P: NodePermissions + 'static, { @@ -379,12 +379,12 @@ pub fn op_require_path_resolve(#[serde] parts: Vec) -> String { #[string] pub fn op_require_path_dirname( #[string] request: String, -) -> Result { +) -> Result { let p = PathBuf::from(request); if let Some(parent) = p.parent() { Ok(parent.to_string_lossy().into_owned()) } else { - Err(JsNativeError::generic("Path doesn't have a parent")) + Err(JsErrorBox::generic("Path doesn't have a parent")) } } @@ -392,12 +392,12 @@ pub fn op_require_path_dirname( #[string] pub fn op_require_path_basename( #[string] request: String, -) -> Result { +) -> Result { let p = PathBuf::from(request); if let Some(path) = p.file_name() { Ok(path.to_string_lossy().into_owned()) } else { - Err(JsNativeError::generic("Path doesn't have a file name")) + Err(JsErrorBox::generic("Path doesn't have a file name")) } } @@ -408,7 +408,7 @@ pub fn op_require_try_self_parent_path

( has_parent: bool, #[string] maybe_parent_filename: Option, #[string] maybe_parent_id: Option, -) -> Result, JsNativeError> +) -> Result, JsErrorBox> where P: NodePermissions + 'static, { diff --git a/ext/node/ops/v8.rs b/ext/node/ops/v8.rs index 29c44a905e2cc1..ef733ceec7e01d 100644 --- a/ext/node/ops/v8.rs +++ b/ext/node/ops/v8.rs @@ -1,11 +1,11 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::v8; use deno_core::FastString; use deno_core::GarbageCollected; use deno_core::ToJsBuffer; +use deno_error::JsErrorBox; use std::ptr::NonNull; use v8::ValueDeserializerHelper; use v8::ValueSerializerHelper; @@ -274,11 +274,11 @@ pub fn op_v8_new_deserializer( scope: &mut v8::HandleScope, obj: v8::Local, buffer: v8::Local, -) -> Result, JsNativeError> { +) -> Result, JsErrorBox> { let offset = buffer.byte_offset(); let len = buffer.byte_length(); let backing_store = buffer.get_backing_store().ok_or_else(|| { - JsNativeError::generic("deserialization buffer has no backing store") + JsErrorBox::generic("deserialization buffer has no backing store") })?; let (buf_slice, buf_ptr) = if let Some(data) = backing_store.data() { // SAFETY: the offset is valid for the underlying buffer because we're getting it directly from v8 @@ -320,10 +320,10 @@ pub fn op_v8_transfer_array_buffer_de( #[op2(fast)] pub fn op_v8_read_double( #[cppgc] deser: &Deserializer, -) -> Result { +) -> Result { let mut double = 0f64; if !deser.inner.read_double(&mut double) { - return Err(JsNativeError::type_error("ReadDouble() failed")); + return Err(JsErrorBox::type_error("ReadDouble() failed")); } Ok(double) } @@ -358,10 +358,10 @@ pub fn op_v8_read_raw_bytes( #[op2(fast)] pub fn op_v8_read_uint32( #[cppgc] deser: &Deserializer, -) -> Result { +) -> Result { let mut value = 0; if !deser.inner.read_uint32(&mut value) { - return Err(JsNativeError::type_error("ReadUint32() failed")); + return Err(JsErrorBox::type_error("ReadUint32() failed")); } Ok(value) @@ -371,10 +371,10 @@ pub fn op_v8_read_uint32( #[serde] pub fn op_v8_read_uint64( #[cppgc] deser: &Deserializer, -) -> Result<(u32, u32), JsNativeError> { +) -> Result<(u32, u32), JsErrorBox> { let mut val = 0; if !deser.inner.read_uint64(&mut val) { - return Err(JsNativeError::type_error("ReadUint64() failed")); + return Err(JsErrorBox::type_error("ReadUint64() failed")); } Ok(((val >> 32) as u32, val as u32)) diff --git a/ext/node/ops/vm_internal.rs b/ext/node/ops/vm_internal.rs index a611c7034e3d1c..a31657ff03069b 100644 --- a/ext/node/ops/vm_internal.rs +++ b/ext/node/ops/vm_internal.rs @@ -1,9 +1,9 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::create_host_defined_options; -use deno_core::error::JsNativeError; use deno_core::v8; use deno_core::v8::MapFnTo; +use deno_error::JsErrorBox; pub const PRIVATE_SYMBOL_NAME: v8::OneByteConst = v8::String::create_external_onebyte_const(b"node:contextify:context"); @@ -18,7 +18,7 @@ impl ContextifyScript { pub fn new( scope: &mut v8::HandleScope, source_str: v8::Local, - ) -> Result { + ) -> Result { let resource_name = v8::undefined(scope); let host_defined_options = create_host_defined_options(scope); let origin = v8::ScriptOrigin::new( @@ -43,7 +43,7 @@ impl ContextifyScript { v8::script_compiler::CompileOptions::NoCompileOptions, v8::script_compiler::NoCacheReason::NoReason, ) - .ok_or_else(|| JsNativeError::type_error("Failed to compile script"))?; + .ok_or_else(|| JsErrorBox::type_error("Failed to compile script"))?; let script = v8::Global::new(scope, unbound_script); Ok(Self { script }) } diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index 4a0d7d0cfcda85..180bc4780bdb7f 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -2,10 +2,10 @@ use crate::NodePermissions; use crate::NodeRequireLoaderRc; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::url::Url; use deno_core::OpState; +use deno_error::JsErrorBox; use deno_fs::FileSystemRc; use std::borrow::Cow; use std::path::Path; @@ -15,7 +15,7 @@ use std::path::PathBuf; fn ensure_read_permission<'a, P>( state: &mut OpState, file_path: &'a Path, -) -> Result, JsNativeError> +) -> Result, JsErrorBox> where P: NodePermissions + 'static, { @@ -28,7 +28,7 @@ where pub enum WorkerThreadsFilenameError { #[class(inherit)] #[error(transparent)] - Permission(JsNativeError), + Permission(JsErrorBox), #[class(inherit)] #[error("{0}")] UrlParse( diff --git a/ext/node/ops/zlib/mod.rs b/ext/node/ops/zlib/mod.rs index 5612778d42aac6..a25ac922320131 100644 --- a/ext/node/ops/zlib/mod.rs +++ b/ext/node/ops/zlib/mod.rs @@ -1,7 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::JsNativeError; use deno_core::op2; +use deno_error::JsErrorBox; use libc::c_ulong; use std::borrow::Cow; use std::cell::RefCell; @@ -18,11 +18,11 @@ use mode::Mode; use self::stream::StreamWrapper; #[inline] -fn check(condition: bool, msg: &str) -> Result<(), JsNativeError> { +fn check(condition: bool, msg: &str) -> Result<(), JsErrorBox> { if condition { Ok(()) } else { - Err(JsNativeError::type_error(msg.to_string())) + Err(JsErrorBox::type_error(msg.to_string())) } } @@ -57,7 +57,7 @@ impl ZlibInner { out_off: u32, out_len: u32, flush: Flush, - ) -> Result<(), JsNativeError> { + ) -> Result<(), JsErrorBox> { check(self.init_done, "write before init")?; check(!self.write_in_progress, "write already in progress")?; check(!self.pending_close, "close already in progress")?; @@ -66,11 +66,11 @@ impl ZlibInner { let next_in = input .get(in_off as usize..in_off as usize + in_len as usize) - .ok_or_else(|| JsNativeError::type_error("invalid input range"))? + .ok_or_else(|| JsErrorBox::type_error("invalid input range"))? .as_ptr() as *mut _; let next_out = out .get_mut(out_off as usize..out_off as usize + out_len as usize) - .ok_or_else(|| JsNativeError::type_error("invalid output range"))? + .ok_or_else(|| JsErrorBox::type_error("invalid output range"))? .as_mut_ptr(); self.strm.avail_in = in_len; @@ -82,7 +82,7 @@ impl ZlibInner { Ok(()) } - fn do_write(&mut self, flush: Flush) -> Result<(), JsNativeError> { + fn do_write(&mut self, flush: Flush) -> Result<(), JsErrorBox> { self.flush = flush; match self.mode { Mode::Deflate | Mode::Gzip | Mode::DeflateRaw => { @@ -128,7 +128,7 @@ impl ZlibInner { self.mode = Mode::Inflate; } } else if next_expected_header_byte.is_some() { - return Err(JsNativeError::type_error( + return Err(JsErrorBox::type_error( "invalid number of gzip magic number bytes read", )); } @@ -182,7 +182,7 @@ impl ZlibInner { Ok(()) } - fn init_stream(&mut self) -> Result<(), JsNativeError> { + fn init_stream(&mut self) -> Result<(), JsErrorBox> { match self.mode { Mode::Gzip | Mode::Gunzip => self.window_bits += 16, Mode::Unzip => self.window_bits += 32, @@ -200,7 +200,7 @@ impl ZlibInner { Mode::Inflate | Mode::Gunzip | Mode::InflateRaw | Mode::Unzip => { self.strm.inflate_init(self.window_bits) } - Mode::None => return Err(JsNativeError::type_error("Unknown mode")), + Mode::None => return Err(JsErrorBox::type_error("Unknown mode")), }; self.write_in_progress = false; @@ -209,7 +209,7 @@ impl ZlibInner { Ok(()) } - fn close(&mut self) -> Result { + fn close(&mut self) -> Result { if self.write_in_progress { self.pending_close = true; return Ok(false); @@ -272,7 +272,7 @@ pub enum ZlibError { Other( #[from] #[inherit] - JsNativeError, + JsErrorBox, ), } diff --git a/ext/telemetry/Cargo.toml b/ext/telemetry/Cargo.toml index 8b51fcd5fa1810..933149ad9ec754 100644 --- a/ext/telemetry/Cargo.toml +++ b/ext/telemetry/Cargo.toml @@ -16,6 +16,7 @@ path = "lib.rs" [dependencies] async-trait.workspace = true deno_core.workspace = true +deno_error.workspace = true http-body-util.workspace = true hyper.workspace = true hyper-util.workspace = true @@ -28,6 +29,5 @@ opentelemetry-semantic-conventions.workspace = true opentelemetry_sdk.workspace = true pin-project.workspace = true serde.workspace = true -tokio.workspace = true thiserror.workspace = true -deno_error.workspace = true +tokio.workspace = true diff --git a/ext/tls/lib.rs b/ext/tls/lib.rs index 0e7d12c2e21075..925e54abf64d02 100644 --- a/ext/tls/lib.rs +++ b/ext/tls/lib.rs @@ -9,7 +9,7 @@ pub use rustls_tokio_stream::*; pub use webpki; pub use webpki_roots; -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; use rustls::client::danger::HandshakeSignatureValid; use rustls::client::danger::ServerCertVerified; use rustls::client::danger::ServerCertVerifier; @@ -58,7 +58,7 @@ pub enum TlsError { /// This was done because the root cert store is not needed in all cases /// and takes a bit of time to initialize. pub trait RootCertStoreProvider: Send + Sync { - fn get_or_try_init(&self) -> Result<&RootCertStore, JsNativeError>; + fn get_or_try_init(&self) -> Result<&RootCertStore, JsErrorBox>; } // This extension has no runtime apis, it only exports some shared native functions. diff --git a/ext/url/lib.rs b/ext/url/lib.rs index 12a1c01e6ee1c5..8e54519268369a 100644 --- a/ext/url/lib.rs +++ b/ext/url/lib.rs @@ -2,13 +2,13 @@ mod urlpattern; -use deno_core::error::JsNativeError; use deno_core::op2; use deno_core::url::form_urlencoded; use deno_core::url::quirks; use deno_core::url::Url; use deno_core::JsBuffer; use deno_core::OpState; +use deno_error::JsErrorBox; use std::path::PathBuf; use crate::urlpattern::op_urlpattern_parse; @@ -219,7 +219,7 @@ pub fn op_url_reparse( pub fn op_url_parse_search_params( #[string] args: Option, #[buffer] zero_copy: Option, -) -> Result, JsNativeError> { +) -> Result, JsErrorBox> { let params = match (args, zero_copy) { (None, Some(zero_copy)) => form_urlencoded::parse(&zero_copy) .into_iter() @@ -229,7 +229,7 @@ pub fn op_url_parse_search_params( .into_iter() .map(|(k, v)| (k.as_ref().to_owned(), v.as_ref().to_owned())) .collect(), - _ => return Err(JsNativeError::type_error("invalid parameters")), + _ => return Err(JsErrorBox::type_error("invalid parameters")), }; Ok(params) } diff --git a/ext/web/stream_resource.rs b/ext/web/stream_resource.rs index 34e03bbffae986..88bd1309cf70d3 100644 --- a/ext/web/stream_resource.rs +++ b/ext/web/stream_resource.rs @@ -407,7 +407,7 @@ impl Resource for ReadableStreamResource { fn read(self: Rc, limit: usize) -> AsyncResult { Box::pin( ReadableStreamResource::read(self, limit) - .map_err(deno_core::error::JsNativeError::from_err), + .map_err(deno_error::JsErrorBox::from_err), ) } diff --git a/ext/webgpu/byow.rs b/ext/webgpu/byow.rs index 54fadf3c27f942..6a161e78a40223 100644 --- a/ext/webgpu/byow.rs +++ b/ext/webgpu/byow.rs @@ -206,8 +206,6 @@ fn raw_window( _system: &str, _window: *const c_void, _display: *const c_void, -) -> Result { - Err(deno_core::error::JsNativeError::type_error( - "Unsupported platform", - )) +) -> Result { + Err(deno_error::JsErrorBox::type_error("Unsupported platform")) } diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index ad3c82d8ef0254..5b45ee1786de06 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use crate::stream::WebSocketStream; use bytes::Bytes; -use deno_core::error::JsNativeError; use deno_core::futures::TryFutureExt; use deno_core::op2; use deno_core::unsync::spawn; @@ -17,6 +16,7 @@ use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; use deno_core::ToJsBuffer; +use deno_error::JsErrorBox; use deno_net::raw::NetworkStream; use deno_tls::create_client_config; use deno_tls::rustls::ClientConfig; @@ -104,9 +104,7 @@ pub enum WebsocketError { pub struct WsRootStoreProvider(Option>); impl WsRootStoreProvider { - pub fn get_or_try_init( - &self, - ) -> Result, JsNativeError> { + pub fn get_or_try_init(&self) -> Result, JsErrorBox> { Ok(match &self.0 { Some(provider) => Some(provider.get_or_try_init()?.clone()), None => None, @@ -222,7 +220,7 @@ pub enum HandshakeError { InvalidHostname(String), #[class(inherit)] #[error(transparent)] - RootStoreError(JsNativeError), + RootStoreError(JsErrorBox), #[class(inherit)] #[error(transparent)] Tls(deno_tls::TlsError), diff --git a/resolvers/deno/Cargo.toml b/resolvers/deno/Cargo.toml index 9edb99b89010a7..9155468033ce24 100644 --- a/resolvers/deno/Cargo.toml +++ b/resolvers/deno/Cargo.toml @@ -19,10 +19,10 @@ sync = ["dashmap"] [dependencies] anyhow.workspace = true base32.workspace = true -deno_error.workspace = true boxed_error.workspace = true dashmap = { workspace = true, optional = true } deno_config.workspace = true +deno_error.workspace = true deno_media_type.workspace = true deno_package_json.workspace = true deno_package_json.features = ["sync"] diff --git a/resolvers/node/Cargo.toml b/resolvers/node/Cargo.toml index 2f4f741d250100..e50dfdcfc70641 100644 --- a/resolvers/node/Cargo.toml +++ b/resolvers/node/Cargo.toml @@ -19,8 +19,8 @@ sync = ["deno_package_json/sync"] [dependencies] anyhow.workspace = true async-trait.workspace = true -deno_error.workspace = true boxed_error.workspace = true +deno_error.workspace = true deno_media_type.workspace = true deno_package_json.workspace = true deno_path_util.workspace = true diff --git a/resolvers/npm_cache/Cargo.toml b/resolvers/npm_cache/Cargo.toml index 831fc4a85832eb..010f8a436b4b87 100644 --- a/resolvers/npm_cache/Cargo.toml +++ b/resolvers/npm_cache/Cargo.toml @@ -23,8 +23,8 @@ async-trait.workspace = true base64.workspace = true boxed_error.workspace = true deno_cache_dir.workspace = true -deno_npm.workspace = true deno_error.workspace = true +deno_npm.workspace = true deno_semver.workspace = true deno_unsync = { workspace = true, features = ["tokio"] } faster-hex.workspace = true diff --git a/resolvers/npm_cache/lib.rs b/resolvers/npm_cache/lib.rs index 97be88f1280bf5..e9517016e1b937 100644 --- a/resolvers/npm_cache/lib.rs +++ b/resolvers/npm_cache/lib.rs @@ -9,7 +9,7 @@ use std::sync::Arc; use anyhow::Error as AnyError; use deno_cache_dir::file_fetcher::CacheSetting; use deno_cache_dir::npm::NpmCacheDir; -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageInfo; use deno_npm::NpmPackageCacheFolderId; @@ -60,7 +60,7 @@ pub trait NpmCacheEnv: Send + Sync + 'static { &self, from: &Path, to: &Path, - ) -> Result<(), JsNativeError>; + ) -> Result<(), JsErrorBox>; fn atomic_write_file_with_retries( &self, file_path: &Path, @@ -323,7 +323,7 @@ pub enum WithFolderSyncLockError { }, #[class(inherit)] #[error(transparent)] - Action(#[from] JsNativeError), + Action(#[from] JsErrorBox), #[class(generic)] #[error("Failed setting up package cache directory for {package}, then failed cleaning it up.\n\nOriginal error:\n\n{error}\n\nRemove error:\n\n{remove_error}\n\nPlease manually delete this folder or you will run into issues using this package in the future:\n\n{output_folder}")] SetUpPackageCacheDir { @@ -337,11 +337,11 @@ pub enum WithFolderSyncLockError { fn with_folder_sync_lock( package: &PackageNv, output_folder: &Path, - action: impl FnOnce() -> Result<(), JsNativeError>, + action: impl FnOnce() -> Result<(), JsErrorBox>, ) -> Result<(), WithFolderSyncLockError> { fn inner( output_folder: &Path, - action: impl FnOnce() -> Result<(), JsNativeError>, + action: impl FnOnce() -> Result<(), JsErrorBox>, ) -> Result<(), WithFolderSyncLockError> { std::fs::create_dir_all(output_folder).map_err(|source| { WithFolderSyncLockError::CreateDir { diff --git a/resolvers/npm_cache/registry_info.rs b/resolvers/npm_cache/registry_info.rs index bb99afdb032d34..dfd06a9d9e8fb7 100644 --- a/resolvers/npm_cache/registry_info.rs +++ b/resolvers/npm_cache/registry_info.rs @@ -5,12 +5,12 @@ use std::collections::HashSet; use std::sync::Arc; use async_trait::async_trait; -use deno_core::error::JsNativeError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; use deno_core::parking_lot::Mutex; use deno_core::serde_json; use deno_core::url::Url; +use deno_error::JsErrorBox; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageInfo; use deno_npm::registry::NpmRegistryApi; @@ -23,7 +23,7 @@ use crate::NpmCache; use crate::NpmCacheEnv; use crate::NpmCacheSetting; -type LoadResult = Result>; +type LoadResult = Result>; type LoadFuture = LocalBoxFuture<'static, LoadResult>; #[derive(Debug, Clone)] @@ -43,7 +43,7 @@ enum MemoryCacheItem { FsCached, /// An item is memory cached when it fails saving to the file system cache /// or the package does not exist. - MemoryCached(Result>, Arc>), + MemoryCached(Result>, Arc>), } #[derive(Debug, Default)] @@ -117,7 +117,7 @@ pub enum LoadPackageInfoInnerError { LoadFileCachedPackageInfo(LoadFileCachedPackageInfoError), #[class(inherit)] #[error("{0}")] - Other(Arc), + Other(Arc), } // todo(#27198): refactor to store this only in the http cache @@ -188,7 +188,7 @@ impl RegistryInfoProvider { package_name: name.to_string(), }), Err(err) => Err(NpmRegistryPackageInfoLoadError::LoadError(Arc::new( - JsNativeError::from_err(err), + JsErrorBox::from_err(err), ))), } } @@ -315,10 +315,8 @@ impl RegistryInfoProvider { match maybe_auth_header_for_npm_registry(registry_config) { Ok(maybe_auth_header) => maybe_auth_header, Err(err) => { - return std::future::ready(Err(Arc::new(JsNativeError::from_err( - err, - )))) - .boxed_local() + return std::future::ready(Err(Arc::new(JsErrorBox::from_err(err)))) + .boxed_local() } }; let name = name.to_string(); @@ -329,14 +327,14 @@ impl RegistryInfoProvider { || downloader.previously_loaded_packages.lock().contains(&name) { // attempt to load from the file cache - if let Some(info) = downloader.cache.load_package_info(&name).map_err(JsNativeError::from_err)? { + if let Some(info) = downloader.cache.load_package_info(&name).map_err(JsErrorBox::from_err)? { let result = Arc::new(info); return Ok(FutureResult::SavedFsCache(result)); } } if *downloader.cache.cache_setting() == NpmCacheSetting::Only { - return Err(JsNativeError::new( + return Err(JsErrorBox::new( "NotCached", format!( "npm package not found in cache: \"{name}\", --cached-only is specified." @@ -352,12 +350,12 @@ impl RegistryInfoProvider { package_url, maybe_auth_header, ) - .await.map_err(JsNativeError::from_err)?; + .await.map_err(JsErrorBox::from_err)?; match maybe_bytes { Some(bytes) => { let future_result = deno_unsync::spawn_blocking( - move || -> Result { - let package_info = serde_json::from_slice(&bytes).map_err(JsNativeError::from_err)?; + move || -> Result { + let package_info = serde_json::from_slice(&bytes).map_err(JsErrorBox::from_err)?; match downloader.cache.save_package_info(&name, &package_info) { Ok(()) => { Ok(FutureResult::SavedFsCache(Arc::new(package_info))) @@ -374,7 +372,7 @@ impl RegistryInfoProvider { }, ) .await - .map_err(JsNativeError::from_err)??; + .map_err(JsErrorBox::from_err)??; Ok(future_result) } None => Ok(FutureResult::PackageNotExists), diff --git a/resolvers/npm_cache/tarball.rs b/resolvers/npm_cache/tarball.rs index 5b3ccf7788b704..e5536ea13098b9 100644 --- a/resolvers/npm_cache/tarball.rs +++ b/resolvers/npm_cache/tarball.rs @@ -3,11 +3,11 @@ use std::collections::HashMap; use std::sync::Arc; -use deno_core::error::JsNativeError; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; use deno_core::parking_lot::Mutex; use deno_core::url::Url; +use deno_error::JsErrorBox; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageVersionDistInfo; use deno_semver::package::PackageNv; @@ -21,7 +21,7 @@ use crate::NpmCache; use crate::NpmCacheEnv; use crate::NpmCacheSetting; -type LoadResult = Result<(), Arc>; +type LoadResult = Result<(), Arc>; type LoadFuture = LocalBoxFuture<'static, LoadResult>; #[derive(Debug, Clone)] @@ -29,7 +29,7 @@ enum MemoryCacheItem { /// The cache item hasn't finished yet. Pending(Arc>), /// The result errored. - Errored(Arc), + Errored(Arc), /// This package has already been cached. Cached, } @@ -52,7 +52,7 @@ pub struct TarballCache { pub struct EnsurePackageError { package_nv: Box, #[source] - source: Arc, + source: Arc, } impl TarballCache { @@ -87,7 +87,7 @@ impl TarballCache { self: &Arc, package_nv: &PackageNv, dist: &NpmPackageVersionDistInfo, - ) -> Result<(), Arc> { + ) -> Result<(), Arc> { let cache_item = { let mut mem_cache = self.memory_cache.lock(); if let Some(cache_item) = mem_cache.get(package_nv) { @@ -143,7 +143,7 @@ impl TarballCache { if should_use_cache && package_folder_exists { return Ok(()); } else if tarball_cache.cache.cache_setting() == &NpmCacheSetting::Only { - return Err(JsNativeError::new( + return Err(JsErrorBox::new( "NotCached", format!( "npm package not found in cache: \"{}\", --cached-only is specified.", @@ -154,12 +154,12 @@ impl TarballCache { } if dist.tarball.is_empty() { - return Err(JsNativeError::generic("Tarball URL was empty.")); + return Err(JsErrorBox::generic("Tarball URL was empty.")); } // IMPORTANT: npm registries may specify tarball URLs at different URLS than the // registry, so we MUST get the auth for the tarball URL and not the registry URL. - let tarball_uri = Url::parse(&dist.tarball).map_err(JsNativeError::from_err)?; + let tarball_uri = Url::parse(&dist.tarball).map_err(JsErrorBox::from_err)?; let maybe_registry_config = tarball_cache.npmrc.tarball_config(&tarball_uri); let maybe_auth_header = maybe_registry_config.and_then(|c| maybe_auth_header_for_npm_registry(c).ok()?); @@ -174,7 +174,7 @@ impl TarballCache { && maybe_registry_config.is_none() && tarball_cache.npmrc.get_registry_config(&package_nv.name).auth_token.is_some() { - return Err(JsNativeError::generic(format!( + return Err(JsErrorBox::generic(format!( concat!( "No auth for tarball URI, but present for scoped registry.\n\n", "Tarball URI: {}\n", @@ -185,7 +185,7 @@ impl TarballCache { registry_url, ))); } - return Err(JsNativeError::from_err(err)) + return Err(JsErrorBox::from_err(err)) }, }; match maybe_bytes { @@ -214,10 +214,10 @@ impl TarballCache { extraction_mode, ) }) - .await.map_err(JsNativeError::from_err)?.map_err(JsNativeError::from_err) + .await.map_err(JsErrorBox::from_err)?.map_err(JsErrorBox::from_err) } None => { - Err(JsNativeError::generic(format!("Could not find npm package tarball at: {}", dist.tarball))) + Err(JsErrorBox::generic(format!("Could not find npm package tarball at: {}", dist.tarball))) } } } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 04781b28459f01..2a530adb11c284 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -79,6 +79,7 @@ deno_console.workspace = true deno_core.workspace = true deno_cron.workspace = true deno_crypto.workspace = true +deno_error.workspace = true deno_fetch.workspace = true deno_ffi.workspace = true deno_fs = { workspace = true, features = ["sync_fs"] } @@ -99,7 +100,6 @@ deno_webgpu.workspace = true deno_webidl.workspace = true deno_websocket.workspace = true deno_webstorage.workspace = true -deno_error.workspace = true node_resolver = { workspace = true, features = ["sync"] } color-print.workspace = true diff --git a/runtime/ops/os/mod.rs b/runtime/ops/os/mod.rs index 3b3c392d83c12b..36cdae06850b11 100644 --- a/runtime/ops/os/mod.rs +++ b/runtime/ops/os/mod.rs @@ -7,7 +7,8 @@ use deno_core::v8; use deno_core::OpState; use deno_node::NODE_ENV_VAR_ALLOWLIST; use deno_path_util::normalize_path; -use deno_permissions::{PermissionCheckError, PermissionsContainer}; +use deno_permissions::PermissionCheckError; +use deno_permissions::PermissionsContainer; use serde::Serialize; use std::collections::HashMap; use std::env; diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index 247469916a57bc..81ec3ae4995068 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -33,7 +33,7 @@ use tokio::process::Command; use std::os::windows::process::CommandExt; use crate::ops::signal::SignalError; -use deno_core::error::JsNativeError; +use deno_error::JsErrorBox; #[cfg(unix)] use std::os::unix::prelude::ExitStatusExt; #[cfg(unix)] @@ -109,7 +109,7 @@ impl StdioOrRid { StdioOrRid::Stdio(val) => Ok(val.as_stdio()), StdioOrRid::Rid(rid) => { Ok(FileResource::with_file(state, *rid, |file| { - file.as_stdio().map_err(JsNativeError::from_err) + file.as_stdio().map_err(JsErrorBox::from_err) })?) } } @@ -257,7 +257,7 @@ pub enum ProcessError { Signal(#[from] SignalError), #[class(inherit)] #[error(transparent)] - Other(#[from] JsNativeError), + Other(#[from] JsErrorBox), #[class(type)] #[error("Missing cmd")] MissingCmd, // only for Deno.run @@ -778,7 +778,7 @@ pub enum CheckRunPermissionError { Permission(#[from] deno_permissions::PermissionCheckError), #[class(inherit)] #[error("{0}")] - Other(JsNativeError), + Other(JsErrorBox), } fn check_run_permission( @@ -795,7 +795,7 @@ fn check_run_permission( // we don't allow users to launch subprocesses with any LD_ or DYLD_* // env vars set because this allows executing code (ex. LD_PRELOAD) return Err(CheckRunPermissionError::Other( - JsNativeError::new( + JsErrorBox::new( "NotCapable", format!( "Requires --allow-run permissions to spawn subprocess with {0} environment variable{1}. Alternatively, spawn with {2} environment variable{1} unset.", diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index d4d19f5d3315b9..1206da053b1c8e 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -19,10 +19,10 @@ use deno_io::WinTtyState; #[cfg(windows)] use std::sync::Arc; -use deno_core::error::JsNativeError; #[cfg(unix)] use deno_core::ResourceId; use deno_error::builtin_classes::GENERIC_ERROR; +use deno_error::JsErrorBox; use deno_error::JsErrorClass; #[cfg(unix)] use nix::sys::termios; @@ -89,7 +89,7 @@ pub enum TtyError { Nix(#[inherit] JsNixError), #[class(inherit)] #[error(transparent)] - Other(#[inherit] JsNativeError), + Other(#[inherit] JsErrorBox), } // ref: @@ -128,7 +128,7 @@ fn op_set_raw( // Copyright (c) 2019 Timon. MIT license. #[cfg(windows)] { - use deno_core::error::JsNativeError; + use deno_error::JsErrorBox; use winapi::shared::minwindef::FALSE; use winapi::um::consoleapi; @@ -136,7 +136,7 @@ fn op_set_raw( let handle = handle_or_fd; if cbreak { - return Err(TtyError::Other(JsNativeError::not_supported())); + return Err(TtyError::Other(JsErrorBox::not_supported())); } let mut original_mode: DWORD = 0; diff --git a/runtime/ops/web_worker/sync_fetch.rs b/runtime/ops/web_worker/sync_fetch.rs index 1b8b7702e3ed30..2fb86e0a8d7dd5 100644 --- a/runtime/ops/web_worker/sync_fetch.rs +++ b/runtime/ops/web_worker/sync_fetch.rs @@ -71,7 +71,7 @@ pub enum SyncFetchError { ), #[class(inherit)] #[error(transparent)] - Other(#[inherit] deno_core::error::JsNativeError), + Other(#[inherit] deno_error::JsErrorBox), } #[derive(Serialize, Deserialize)] diff --git a/runtime/shared.rs b/runtime/shared.rs index a353c6948dfeaf..77e9c452908868 100644 --- a/runtime/shared.rs +++ b/runtime/shared.rs @@ -4,12 +4,12 @@ use deno_ast::MediaType; use deno_ast::ParseParams; use deno_ast::SourceMapOption; -use deno_core::error::JsNativeError; use deno_core::extension; use deno_core::Extension; use deno_core::ModuleCodeString; use deno_core::ModuleName; use deno_core::SourceMapData; +use deno_error::JsErrorBox; use std::path::Path; extension!(runtime, @@ -77,7 +77,7 @@ deno_error::js_error_wrapper!( pub fn maybe_transpile_source( name: ModuleName, source: ModuleCodeString, -) -> Result<(ModuleCodeString, Option), JsNativeError> { +) -> Result<(ModuleCodeString, Option), JsErrorBox> { // Always transpile `node:` built-in modules, since they might be TypeScript. let media_type = if name.starts_with("node:") { MediaType::TypeScript @@ -103,7 +103,7 @@ pub fn maybe_transpile_source( scope_analysis: false, maybe_syntax: None, }) - .map_err(|e| JsNativeError::from_err(JsParseDiagnostic(e)))?; + .map_err(|e| JsErrorBox::from_err(JsParseDiagnostic(e)))?; let transpiled_source = parsed .transpile( &deno_ast::TranspileOptions { @@ -120,7 +120,7 @@ pub fn maybe_transpile_source( ..Default::default() }, ) - .map_err(|e| JsNativeError::from_err(JsTranspileError(e)))? + .map_err(|e| JsErrorBox::from_err(JsTranspileError(e)))? .into_source(); let maybe_source_map: Option = transpiled_source diff --git a/runtime/worker.rs b/runtime/worker.rs index 1dcefbc0a9302f..ed1d0f1782e6c5 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -12,8 +12,9 @@ use std::time::Instant; use deno_broadcast_channel::InMemoryBroadcastChannel; use deno_cache::CreateCache; use deno_cache::SqliteBackedCache; +use deno_core::error::AnyError; +use deno_core::error::CoreError; use deno_core::error::JsError; -use deno_core::error::{AnyError, CoreError}; use deno_core::merge_op_metrics; use deno_core::v8; use deno_core::CompiledWasmModuleStore; From 625d0b184fb74d65221919fb6ccd7aef74fc1f9d Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 6 Jan 2025 11:12:07 -0500 Subject: [PATCH 10/36] some fixes --- Cargo.lock | 114 ++++++++++++++++++++++++-------------- Cargo.toml | 6 +- ext/io/lib.rs | 1 + ext/telemetry/lib.rs | 22 ++++++-- ext/webgpu/surface.rs | 2 + resolvers/deno/npm/mod.rs | 1 + resolvers/node/errors.rs | 2 - 7 files changed, 94 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b054e9fe7ca836..e62062b5e980b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1301,7 +1301,7 @@ dependencies = [ "http-body 1.0.0", "http-body-util", "hyper-util", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "jsonc-parser", "junction", @@ -1434,6 +1434,7 @@ version = "0.178.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "thiserror 2.0.3", "tokio", "uuid", @@ -1445,6 +1446,7 @@ version = "0.116.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "rusqlite", "serde", "sha2", @@ -1486,6 +1488,7 @@ name = "deno_canvas" version = "0.53.0" dependencies = [ "deno_core", + "deno_error", "deno_webgpu", "image", "serde", @@ -1495,16 +1498,15 @@ dependencies = [ [[package]] name = "deno_config" version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45aaf31e58ca915d5c0746bf8e2d07b94635154ad9e5afe5ff265cae6187b19" dependencies = [ - "anyhow", + "boxed_error", + "deno_error", "deno_package_json", "deno_path_util 0.3.0", "deno_semver", "glob", "ignore", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "jsonc-parser", "log", @@ -1513,7 +1515,7 @@ dependencies = [ "serde", "serde_json", "sys_traits", - "thiserror 1.0.64", + "thiserror 2.0.3", "url", ] @@ -1526,9 +1528,7 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.327.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf8dff204b9c2415deb47b9f30d4d38b0925d0d88f1f9074e8e76f59e6d7ded" +version = "0.328.0" dependencies = [ "anyhow", "az", @@ -1539,6 +1539,7 @@ dependencies = [ "capacity_builder 0.1.3", "cooked-waker", "deno_core_icudata", + "deno_error", "deno_ops", "deno_unsync", "futures", @@ -1554,6 +1555,7 @@ dependencies = [ "smallvec", "sourcemap 8.0.1", "static_assertions", + "thiserror 2.0.3", "tokio", "url", "v8", @@ -1574,6 +1576,7 @@ dependencies = [ "async-trait", "chrono", "deno_core", + "deno_error", "saffron", "thiserror 2.0.3", "tokio", @@ -1592,6 +1595,7 @@ dependencies = [ "ctr", "curve25519-dalek", "deno_core", + "deno_error", "deno_web", "ed448-goldilocks", "elliptic-curve", @@ -1630,7 +1634,7 @@ dependencies = [ "deno_path_util 0.2.2", "handlebars", "html-escape", - "import_map", + "import_map 0.20.1", "indexmap 2.3.0", "itoa", "js-sys", @@ -1648,21 +1652,19 @@ dependencies = [ [[package]] name = "deno_error" version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199c66ffd17ee1a948904d33f3d3f364573951c1f9fb3f859bfe7770bf33862a" dependencies = [ "deno_error_macro", "libc", "serde", "serde_json", + "thiserror 2.0.3", + "tokio", "url", ] [[package]] name = "deno_error_macro" version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd99df6ae75443907e1f959fc42ec6dcea67a7bd083e76cf23a117102c9a2ce" dependencies = [ "proc-macro2", "quote", @@ -1677,6 +1679,7 @@ dependencies = [ "bytes", "data-url", "deno_core", + "deno_error", "deno_path_util 0.3.0", "deno_permissions", "deno_tls", @@ -1710,6 +1713,7 @@ name = "deno_ffi" version = "0.171.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "dlopen2", "dynasmrt", @@ -1733,6 +1737,7 @@ dependencies = [ "base32", "boxed_error", "deno_core", + "deno_error", "deno_io", "deno_path_util 0.3.0", "deno_permissions", @@ -1751,20 +1756,18 @@ dependencies = [ [[package]] name = "deno_graph" version = "0.86.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace3acf321fac446636ae605b01723f2120b40ab3d32c6836aeb7d603a8e08f9" dependencies = [ - "anyhow", "async-trait", "capacity_builder 0.5.0", "data-url", "deno_ast", + "deno_error", "deno_path_util 0.3.0", "deno_semver", "deno_unsync", "encoding_rs", "futures", - "import_map", + "import_map 0.21.0", "indexmap 2.3.0", "log", "monch", @@ -1793,6 +1796,7 @@ dependencies = [ "bytes", "cache_control", "deno_core", + "deno_error", "deno_net", "deno_websocket", "flate2", @@ -1826,6 +1830,7 @@ version = "0.94.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "filetime", "fs3", "libc", @@ -1852,6 +1857,7 @@ dependencies = [ "bytes", "chrono", "deno_core", + "deno_error", "deno_fetch", "deno_path_util 0.3.0", "deno_permissions", @@ -1919,6 +1925,7 @@ name = "deno_napi" version = "0.115.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "libc", "libloading 0.7.4", @@ -1947,6 +1954,7 @@ name = "deno_net" version = "0.176.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "deno_tls", "hickory-proto", @@ -1976,6 +1984,7 @@ dependencies = [ "const-oid", "data-encoding", "deno_core", + "deno_error", "deno_fetch", "deno_fs", "deno_io", @@ -2106,10 +2115,9 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.203.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b146ca74cac431843486ade58e2accc16c11315fb2c6934590a52a73c56b7ec3" +version = "0.204.0" dependencies = [ + "indexmap 2.3.0", "proc-macro-rules", "proc-macro2", "quote", @@ -2117,7 +2125,7 @@ dependencies = [ "strum", "strum_macros", "syn 2.0.87", - "thiserror 1.0.64", + "thiserror 2.0.3", ] [[package]] @@ -2169,6 +2177,7 @@ version = "0.43.0" dependencies = [ "capacity_builder 0.5.0", "deno_core", + "deno_error", "deno_path_util 0.3.0", "deno_terminal 0.2.0", "fqdn", @@ -2191,6 +2200,7 @@ dependencies = [ "boxed_error", "dashmap", "deno_config", + "deno_error", "deno_media_type", "deno_package_json", "deno_path_util 0.3.0", @@ -2215,6 +2225,7 @@ dependencies = [ "deno_core", "deno_cron", "deno_crypto", + "deno_error", "deno_fetch", "deno_ffi", "deno_fs", @@ -2313,6 +2324,7 @@ version = "0.6.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "http-body-util", "hyper 1.4.1", "hyper-util", @@ -2325,6 +2337,7 @@ dependencies = [ "opentelemetry_sdk", "pin-project", "serde", + "thiserror 2.0.3", "tokio", ] @@ -2353,6 +2366,7 @@ name = "deno_tls" version = "0.171.0" dependencies = [ "deno_core", + "deno_error", "deno_native_certs", "rustls", "rustls-pemfile", @@ -2405,6 +2419,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_webidl", "thiserror 2.0.3", "urlpattern", @@ -2420,6 +2435,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_permissions", "deno_url", "deno_webidl", @@ -2437,6 +2453,7 @@ name = "deno_webgpu" version = "0.151.0" dependencies = [ "deno_core", + "deno_error", "raw-window-handle", "serde", "thiserror 2.0.3", @@ -2459,6 +2476,7 @@ version = "0.189.0" dependencies = [ "bytes", "deno_core", + "deno_error", "deno_net", "deno_permissions", "deno_tls", @@ -2480,6 +2498,7 @@ name = "deno_webstorage" version = "0.179.0" dependencies = [ "deno_core", + "deno_error", "deno_web", "rusqlite", "thiserror 2.0.3", @@ -2498,12 +2517,10 @@ dependencies = [ [[package]] name = "denokv_proto" version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ba1f99ed11a9c11e868a8521b1f71a7e1aba785d7f42ea9ecbdc01146c89ec" dependencies = [ - "anyhow", "async-trait", "chrono", + "deno_error", "futures", "num-bigint", "prost", @@ -2514,14 +2531,12 @@ dependencies = [ [[package]] name = "denokv_remote" version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ed833073189e8f6d03155fe3b05a024e75e29d8a28a4c2e9ec3b5c925e727b" dependencies = [ - "anyhow", "async-stream", "async-trait", "bytes", "chrono", + "deno_error", "denokv_proto", "futures", "http 1.1.0", @@ -2530,6 +2545,7 @@ dependencies = [ "rand", "serde", "serde_json", + "thiserror 2.0.3", "tokio", "tokio-util", "url", @@ -2539,13 +2555,11 @@ dependencies = [ [[package]] name = "denokv_sqlite" version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b790f01d1302d53a0c3cbd27de88a06b3abd64ec8ab8673924e490541c7c713" dependencies = [ - "anyhow", "async-stream", "async-trait", "chrono", + "deno_error", "denokv_proto", "futures", "hex", @@ -2554,7 +2568,7 @@ dependencies = [ "rand", "rusqlite", "serde_json", - "thiserror 1.0.64", + "thiserror 2.0.3", "tokio", "tokio-stream", "uuid", @@ -4330,6 +4344,23 @@ dependencies = [ "url", ] +[[package]] +name = "import_map" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1215d4d92511fbbdaea50e750e91f2429598ef817f02b579158e92803b52c00a" +dependencies = [ + "boxed_error", + "deno_error", + "indexmap 2.3.0", + "log", + "percent-encoding", + "serde", + "serde_json", + "thiserror 2.0.3", + "url", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -5071,6 +5102,7 @@ dependencies = [ "anyhow", "async-trait", "boxed_error", + "deno_error", "deno_media_type", "deno_package_json", "deno_path_util 0.3.0", @@ -6798,14 +6830,13 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.236.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e23b3abce64010612f88f4ff689a959736f99eb3dc0dbf1c7903434b8bd8cda5" +version = "0.237.0" dependencies = [ + "deno_error", "num-bigint", "serde", "smallvec", - "thiserror 1.0.64", + "thiserror 2.0.3", "v8", ] @@ -8419,9 +8450,9 @@ dependencies = [ [[package]] name = "v8" -version = "130.0.2" +version = "130.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee0be58935708fa4d7efb970c6cf9f2d9511d24ee24246481a65b6ee167348d" +checksum = "eefb620efa1e8f2d0f4dd1b2a72b0924a0a0e8b710e27e7ce7da7fac95c7aae5" dependencies = [ "bindgen", "bitflags 2.6.0", @@ -8613,11 +8644,12 @@ dependencies = [ [[package]] name = "wasm_dep_analyzer" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f270206a91783fd90625c8bb0d8fbd459d0b1d1bf209b656f713f01ae7c04b8" +checksum = "2eeee3bdea6257cc36d756fa745a70f9d393571e47d69e0ed97581676a5369ca" dependencies = [ - "thiserror 1.0.64", + "deno_error", + "thiserror 2.0.3", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index a36b3d4a44708d..ce1afc89f6b7f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,7 @@ repository = "https://github.com/denoland/deno" [workspace.dependencies] deno_ast = { version = "=0.44.0", features = ["transpiling"] } -deno_core = { version = "0.327.0" } +deno_core = { version = "0.328.0" } deno_bench_util = { version = "0.178.0", path = "./bench_util" } deno_config = { version = "=0.42.0", features = ["workspace", "sync"] } @@ -352,13 +352,9 @@ opt-level = 3 deno_core = { path = "../deno_core/core" } deno_ops = { path = "../deno_core/ops" } serde_v8 = { path = "../deno_core/serde_v8" } -v8 = { path = "../rusty_v8" } deno_error = { path = "../deno_error" } deno_graph = { path = "../deno_graph" } -deno_npm = { path = "../deno_npm" } -deno_doc = { path = "../deno_doc" } deno_config = { path = "../deno_config" } -deno_cache_dir = { path = "../deno_cache_dir/rs_lib" } denokv_sqlite = { path = "../denokv/sqlite" } denokv_proto = { path = "../denokv/proto" } denokv_remote = { path = "../denokv/remote" } diff --git a/ext/io/lib.rs b/ext/io/lib.rs index 495279e9534da9..1f92ae5c8b3097 100644 --- a/ext/io/lib.rs +++ b/ext/io/lib.rs @@ -33,6 +33,7 @@ use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceHandle; use deno_core::ResourceHandleFd; +use deno_error::JsErrorBox; use fs::FileResource; use fs::FsError; use fs::FsResult; diff --git a/ext/telemetry/lib.rs b/ext/telemetry/lib.rs index 261e93124d1743..249ce57385e7a7 100644 --- a/ext/telemetry/lib.rs +++ b/ext/telemetry/lib.rs @@ -20,8 +20,6 @@ use std::time::SystemTime; use deno_core::anyhow; use deno_core::anyhow::anyhow; -use deno_core::error::type_error; -use deno_core::error::AnyError; use deno_core::futures::channel::mpsc; use deno_core::futures::channel::mpsc::UnboundedSender; use deno_core::futures::future::BoxFuture; @@ -33,6 +31,7 @@ use deno_core::op2; use deno_core::v8; use deno_core::GarbageCollected; use deno_core::OpState; +use deno_error::JsError; use once_cell::sync::Lazy; use once_cell::sync::OnceCell; use opentelemetry::logs::AnyValue; @@ -83,6 +82,7 @@ use opentelemetry_semantic_conventions::resource::TELEMETRY_SDK_NAME; use opentelemetry_semantic_conventions::resource::TELEMETRY_SDK_VERSION; use serde::Deserialize; use serde::Serialize; +use thiserror::Error; use tokio::sync::oneshot; use tokio::task::JoinSet; @@ -1237,6 +1237,16 @@ struct JsSpanContext { trace_flags: u8, } +#[derive(Debug, Error, JsError)] +#[error("OtelSpan cannot be constructed.")] +#[class(type)] +struct OtelSpanCannotBeConstructedError; + +#[derive(Debug, Error, JsError)] +#[error("invalid span status code")] +#[class(type)] +struct InvalidSpanStatusCodeError; + // boxed because of https://github.com/denoland/rusty_v8/issues/1676 #[derive(Debug)] struct OtelSpan(RefCell>); @@ -1254,8 +1264,8 @@ impl deno_core::GarbageCollected for OtelSpan {} impl OtelSpan { #[constructor] #[cppgc] - fn new() -> Result { - Err(type_error("OtelSpan can not be constructed.")) + fn new() -> Result { + Err(OtelSpanCannotBeConstructedError) } #[serde] @@ -1277,7 +1287,7 @@ impl OtelSpan { &self, #[smi] status: u8, #[string] error_description: String, - ) -> Result<(), AnyError> { + ) -> Result<(), InvalidSpanStatusCodeError> { let mut state = self.0.borrow_mut(); let OtelSpanState::Recording(span) = &mut **state else { return Ok(()); @@ -1288,7 +1298,7 @@ impl OtelSpan { 2 => SpanStatus::Error { description: Cow::Owned(error_description), }, - _ => return Err(type_error("invalid span status code")), + _ => return Err(InvalidSpanStatusCodeError), }; Ok(()) } diff --git a/ext/webgpu/surface.rs b/ext/webgpu/surface.rs index da2a6a11d553e1..23e617c7de2cd5 100644 --- a/ext/webgpu/surface.rs +++ b/ext/webgpu/surface.rs @@ -11,6 +11,8 @@ use deno_core::ResourceId; use serde::Deserialize; use wgpu_types::SurfaceStatus; +use crate::error::WebGpuResult; + #[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum SurfaceError { #[class(inherit)] diff --git a/resolvers/deno/npm/mod.rs b/resolvers/deno/npm/mod.rs index 65cc311f6f3b5e..2e7c4c888b1b58 100644 --- a/resolvers/deno/npm/mod.rs +++ b/resolvers/deno/npm/mod.rs @@ -9,6 +9,7 @@ pub use byonm::ByonmNpmResolver; pub use byonm::ByonmNpmResolverCreateOptions; pub use byonm::ByonmNpmResolverRc; pub use byonm::ByonmResolvePkgFolderFromDenoReqError; +use deno_error::JsError; use deno_semver::npm::NpmPackageReqReference; use deno_semver::package::PackageReq; pub use local::normalize_pkg_name_for_node_modules_deno_folder; diff --git a/resolvers/node/errors.rs b/resolvers/node/errors.rs index 4e1564585cecb0..1b4ce460d13990 100644 --- a/resolvers/node/errors.rs +++ b/resolvers/node/errors.rs @@ -352,8 +352,6 @@ pub struct ClosestPkgJsonError(pub Box); #[derive(Debug, Error, JsError)] pub enum ClosestPkgJsonErrorKind { - #[class(inherit)] - #[error(transparent)] #[class(inherit)] #[error(transparent)] Load(#[from] PackageJsonLoadError), From 683af6aa3b21a776a0e8033f853716bbcec9a31a Mon Sep 17 00:00:00 2001 From: crowlkats Date: Mon, 6 Jan 2025 17:31:07 +0100 Subject: [PATCH 11/36] fixes --- Cargo.lock | 1 - cli/args/mod.rs | 2 +- cli/module_loader.rs | 5 ++++- cli/npm/managed/resolvers/global.rs | 2 +- ext/crypto/lib.rs | 2 -- ext/net/lib.rs | 4 ++++ ext/net/raw.rs | 2 -- 7 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e62062b5e980b0..d60cfa6c8c00ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1657,7 +1657,6 @@ dependencies = [ "libc", "serde", "serde_json", - "thiserror 2.0.3", "tokio", "url", ] diff --git a/cli/args/mod.rs b/cli/args/mod.rs index f7e4d0190039a8..aab27a5df97b17 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -24,9 +24,9 @@ use deno_ast::MediaType; use deno_ast::ModuleSpecifier; use deno_ast::SourceMapOption; use deno_cache_dir::file_fetcher::CacheSetting; -use deno_config::deno_json::ConfigFileError; pub use deno_config::deno_json::BenchConfig; pub use deno_config::deno_json::ConfigFile; +use deno_config::deno_json::ConfigFileError; use deno_config::deno_json::FmtConfig; pub use deno_config::deno_json::FmtOptionsConfig; use deno_config::deno_json::LintConfig; diff --git a/cli/module_loader.rs b/cli/module_loader.rs index e79406b8829eb9..84b4cd85117360 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -1155,7 +1155,10 @@ impl NodeRequireLoader ) -> Result, JsErrorBox> { // todo(dsherret): use the preloaded module from the graph if available? let media_type = MediaType::from_path(path); - let text = self.sys.fs_read_to_string_lossy(path).map_err(JsErrorBox::from_err)?; + let text = self + .sys + .fs_read_to_string_lossy(path) + .map_err(JsErrorBox::from_err)?; if media_type.is_emittable() { let specifier = deno_path_util::url_from_file_path(path) .map_err(JsErrorBox::from_err)?; diff --git a/cli/npm/managed/resolvers/global.rs b/cli/npm/managed/resolvers/global.rs index 573893a75873f8..4ef22c611cfd39 100644 --- a/cli/npm/managed/resolvers/global.rs +++ b/cli/npm/managed/resolvers/global.rs @@ -9,9 +9,9 @@ use std::sync::Arc; use async_trait::async_trait; use deno_ast::ModuleSpecifier; -use deno_error::JsErrorBox; use deno_core::futures::stream::FuturesUnordered; use deno_core::futures::StreamExt; +use deno_error::JsErrorBox; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index 66e54c8e773716..a07af2dfad3d6e 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -9,9 +9,7 @@ use aes_kw::KekAes256; use base64::prelude::BASE64_URL_SAFE_NO_PAD; use base64::Engine; use deno_core::op2; -use deno_core::ToJsBuffer; use deno_error::JsErrorBox; - use deno_core::unsync::spawn_blocking; use deno_core::JsBuffer; use deno_core::OpState; diff --git a/ext/net/lib.rs b/ext/net/lib.rs index 8e1e8803bec2ce..f5635e0f4d4639 100644 --- a/ext/net/lib.rs +++ b/ext/net/lib.rs @@ -10,6 +10,10 @@ pub mod raw; pub mod resolve_addr; pub mod tcp; +use std::borrow::Cow; +use std::path::Path; +use std::path::PathBuf; +use std::sync::Arc; use deno_core::OpState; use deno_permissions::PermissionCheckError; use deno_tls::rustls::RootCertStore; diff --git a/ext/net/raw.rs b/ext/net/raw.rs index f010d2f26028ad..760020a6da4a55 100644 --- a/ext/net/raw.rs +++ b/ext/net/raw.rs @@ -1,6 +1,4 @@ // Copyright 2018-2025 the Deno authors. MIT license. -use std::borrow::Cow; -use std::rc::Rc; use deno_core::error::ResourceError; use deno_core::AsyncRefCell; From 8374c23dc7b2442314ffca984be0844877780836 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Mon, 6 Jan 2025 18:06:01 +0100 Subject: [PATCH 12/36] fixes --- cli/npm/byonm.rs | 5 +- cli/npm/managed/resolvers/local.rs | 8 +-- cli/npm/managed/resolvers/mod.rs | 11 +--- cli/tools/installer.rs | 25 +------- cli/tools/repl/channel.rs | 1 - cli/tools/test/reporters/junit.rs | 8 ++- ext/cron/lib.rs | 7 ++- ext/crypto/lib.rs | 2 +- ext/fetch/lib.rs | 8 +-- ext/ffi/repr.rs | 1 - ext/http/service.rs | 2 +- ext/kv/dynamic.rs | 3 +- ext/napi/lib.rs | 16 +++-- ext/net/lib.rs | 1 + ext/net/quic.rs | 60 +++++++++++++++---- ext/net/raw.rs | 5 +- ext/node/ops/crypto/keys.rs | 8 ++- ext/node/ops/http.rs | 2 +- ext/node/ops/inspector.rs | 2 - ext/node/ops/ipc.rs | 3 + ext/node/ops/require.rs | 12 +++- ext/node/ops/v8.rs | 1 - ext/node/ops/worker_threads.rs | 24 ++++++-- ext/telemetry/lib.rs | 89 +++++++++++++++++++--------- ext/tls/lib.rs | 2 +- ext/url/lib.rs | 3 +- ext/webgpu/byow.rs | 10 ++-- ext/webstorage/lib.rs | 3 +- resolvers/npm_cache/registry_info.rs | 29 ++++++--- resolvers/npm_cache/tarball.rs | 9 +++ runtime/ops/http.rs | 3 +- runtime/ops/process.rs | 3 +- runtime/ops/signal.rs | 3 +- runtime/ops/tty.rs | 18 ++---- runtime/shared.rs | 1 - 35 files changed, 231 insertions(+), 157 deletions(-) diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index dbea5ebcf8a66f..1cb6575eb11a47 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -10,16 +10,13 @@ use deno_resolver::npm::CliNpmReqResolver; use deno_runtime::ops::process::NpmProcessStateProvider; use node_resolver::NpmPackageFolderResolver; +use super::managed; use super::CliNpmResolver; use super::InnerCliNpmResolverRef; use crate::args::NpmProcessState; use crate::args::NpmProcessStateKind; use crate::sys::CliSys; -use super::managed; -use super::CliNpmResolver; -use super::InnerCliNpmResolverRef; - pub type CliByonmNpmResolverCreateOptions = ByonmNpmResolverCreateOptions; pub type CliByonmNpmResolver = ByonmNpmResolver; diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index 3e95e1d4e78a58..c4e37856ffeeef 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -44,7 +44,9 @@ use sys_traits::FsMetadata; use super::super::resolution::NpmResolution; use super::common::bin_entries; +use super::common::EnsureRegistryReadPermissionError; use super::common::NpmPackageFsResolver; +use super::common::RegistryReadPermissionChecker; use crate::args::LifecycleScriptsConfig; use crate::args::NpmInstallDepsProvider; use crate::cache::CACHE_PERM; @@ -59,12 +61,6 @@ use crate::util::fs::LaxSingleProcessFsFlag; use crate::util::progress_bar::ProgressBar; use crate::util::progress_bar::ProgressMessagePrompt; -use super::super::resolution::NpmResolution; -use super::common::bin_entries; -use super::common::EnsureRegistryReadPermissionError; -use super::common::NpmPackageFsResolver; -use super::common::RegistryReadPermissionChecker; - /// Resolver that creates a local node_modules directory /// and resolves packages from it. #[derive(Debug)] diff --git a/cli/npm/managed/resolvers/mod.rs b/cli/npm/managed/resolvers/mod.rs index 163d1a48ef7f82..12d898c4ef187a 100644 --- a/cli/npm/managed/resolvers/mod.rs +++ b/cli/npm/managed/resolvers/mod.rs @@ -9,7 +9,9 @@ use std::sync::Arc; use deno_npm::NpmSystemInfo; +pub use self::common::EnsureRegistryReadPermissionError; pub use self::common::NpmPackageFsResolver; +pub use self::common::NpmPackageFsResolverPackageFolderError; use self::global::GlobalNpmPackageResolver; use self::local::LocalNpmPackageResolver; use super::resolution::NpmResolution; @@ -20,15 +22,6 @@ use crate::npm::CliNpmTarballCache; use crate::sys::CliSys; use crate::util::progress_bar::ProgressBar; -pub use self::common::EnsureRegistryReadPermissionError; -pub use self::common::NpmPackageFsResolver; -pub use self::common::NpmPackageFsResolverPackageFolderError; - -use self::global::GlobalNpmPackageResolver; -use self::local::LocalNpmPackageResolver; - -use super::resolution::NpmResolution; - #[allow(clippy::too_many_arguments)] pub fn create_npm_fs_resolver( npm_cache: Arc, diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs index 0478cab735da97..af2ec4dbd91d16 100644 --- a/cli/tools/installer.rs +++ b/cli/tools/installer.rs @@ -12,6 +12,7 @@ use std::path::PathBuf; use std::sync::Arc; use deno_cache_dir::file_fetcher::CacheSetting; +use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::generic_error; @@ -43,30 +44,6 @@ use crate::jsr::JsrFetchResolver; use crate::npm::NpmFetchResolver; use crate::util::fs::canonicalize_path_maybe_not_exists; -use deno_cache_dir::file_fetcher::CacheSetting; -use deno_core::anyhow::anyhow; -use deno_core::anyhow::bail; -use deno_core::anyhow::Context; -use deno_core::error::AnyError; -use deno_core::resolve_url_or_path; -use deno_core::url::Url; -use deno_semver::npm::NpmPackageReqReference; -use log::Level; -use once_cell::sync::Lazy; -use regex::Regex; -use regex::RegexBuilder; -use std::env; -use std::fs; -use std::fs::File; -use std::io; -use std::io::Write; -use std::path::Path; -use std::path::PathBuf; - -#[cfg(not(windows))] -use std::os::unix::fs::PermissionsExt; -use std::sync::Arc; - static EXEC_NAME_RE: Lazy = Lazy::new(|| { RegexBuilder::new(r"^[a-z0-9][\w-]*$") .case_insensitive(true) diff --git a/cli/tools/repl/channel.rs b/cli/tools/repl/channel.rs index 7e73028c951995..dbafacebc92363 100644 --- a/cli/tools/repl/channel.rs +++ b/cli/tools/repl/channel.rs @@ -8,7 +8,6 @@ use deno_core::error::CoreError; use deno_core::serde_json; use deno_core::serde_json::Value; use deno_error::JsErrorBox; -use std::cell::RefCell; use tokio::sync::mpsc::channel; use tokio::sync::mpsc::unbounded_channel; use tokio::sync::mpsc::Receiver; diff --git a/cli/tools/test/reporters/junit.rs b/cli/tools/test/reporters/junit.rs index ba33eb74404684..9418ac9fb2b985 100644 --- a/cli/tools/test/reporters/junit.rs +++ b/cli/tools/test/reporters/junit.rs @@ -1,11 +1,13 @@ // Copyright 2018-2025 the Deno authors. MIT license. -use super::fmt::to_relative_path_or_remote_url; -use super::*; -use deno_core::anyhow::Context; use std::collections::VecDeque; use std::path::PathBuf; +use deno_core::anyhow::Context; + +use super::fmt::to_relative_path_or_remote_url; +use super::*; + pub struct JunitTestReporter { cwd: Url, output_path: String, diff --git a/ext/cron/lib.rs b/ext/cron/lib.rs index c21ec92958af4b..b4f4938b5eb5d9 100644 --- a/ext/cron/lib.rs +++ b/ext/cron/lib.rs @@ -3,15 +3,16 @@ mod interface; pub mod local; +use std::borrow::Cow; +use std::cell::RefCell; +use std::rc::Rc; + use deno_core::op2; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; use deno_error::JsErrorBox; use deno_error::JsErrorClass; -use std::borrow::Cow; -use std::cell::RefCell; -use std::rc::Rc; pub use crate::interface::*; diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index a07af2dfad3d6e..0d6eecb911f368 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -9,11 +9,11 @@ use aes_kw::KekAes256; use base64::prelude::BASE64_URL_SAFE_NO_PAD; use base64::Engine; use deno_core::op2; -use deno_error::JsErrorBox; use deno_core::unsync::spawn_blocking; use deno_core::JsBuffer; use deno_core::OpState; use deno_core::ToJsBuffer; +use deno_error::JsErrorBox; use p256::elliptic_curve::sec1::FromEncodedPoint; use p256::pkcs8::DecodePrivateKey; pub use rand; diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index c0fe85aa862276..5af68695efb0b6 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -1194,10 +1194,10 @@ impl Client { pub enum ReqBody { Full(http_body_util::Full), Empty(http_body_util::Empty), - Streaming(BoxBody), + Streaming(BoxBody), } -pub type ResBody = BoxBody; +pub type ResBody = BoxBody; impl ReqBody { pub fn full(bytes: Bytes) -> Self { @@ -1210,7 +1210,7 @@ impl ReqBody { pub fn streaming(body: B) -> Self where - B: hyper::body::Body + B: hyper::body::Body + Send + Sync + 'static, @@ -1221,7 +1221,7 @@ impl ReqBody { impl hyper::body::Body for ReqBody { type Data = Bytes; - type Error = deno_core::error::AnyError; + type Error = JsErrorBox; fn poll_frame( mut self: Pin<&mut Self>, diff --git a/ext/ffi/repr.rs b/ext/ffi/repr.rs index 987ac0952b6e74..bcd80cbf03e7af 100644 --- a/ext/ffi/repr.rs +++ b/ext/ffi/repr.rs @@ -11,7 +11,6 @@ use deno_core::OpState; use crate::FfiPermissions; - #[derive(Debug, thiserror::Error, deno_error::JsError)] #[class(type)] pub enum ReprError { diff --git a/ext/http/service.rs b/ext/http/service.rs index 1b841225eb2b80..f220f8d8a7813b 100644 --- a/ext/http/service.rs +++ b/ext/http/service.rs @@ -15,6 +15,7 @@ use deno_core::futures::ready; use deno_core::BufView; use deno_core::OpState; use deno_core::ResourceId; +use deno_error::JsErrorBox; use http::request::Parts; use hyper::body::Body; use hyper::body::Frame; @@ -22,7 +23,6 @@ use hyper::body::Incoming; use hyper::body::SizeHint; use hyper::header::HeaderMap; use hyper::upgrade::OnUpgrade; -use deno_error::JsErrorBox; use scopeguard::guard; use scopeguard::ScopeGuard; use tokio::sync::oneshot; diff --git a/ext/kv/dynamic.rs b/ext/kv/dynamic.rs index bea2fd7710e3e5..9ec4384006f992 100644 --- a/ext/kv/dynamic.rs +++ b/ext/kv/dynamic.rs @@ -4,8 +4,7 @@ use std::cell::RefCell; use std::rc::Rc; use async_trait::async_trait; -use deno_core::error::type_error; -use deno_core::error::AnyError; +use deno_error::JsErrorBox; use deno_core::OpState; use denokv_proto::CommitResult; use denokv_proto::ReadRangeOutput; diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index 86839eb1c224ec..1db20ef647d43b 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -24,25 +24,23 @@ pub mod uv; use core::ptr::NonNull; use std::cell::RefCell; use std::collections::HashMap; +pub use std::ffi::CStr; +pub use std::os::raw::c_char; +pub use std::os::raw::c_void; use std::path::PathBuf; +pub use std::ptr; use std::rc::Rc; use std::thread_local; use deno_core::op2; use deno_core::parking_lot::RwLock; use deno_core::url::Url; -use deno_core::ExternalOpsTracker; -use deno_core::OpState; -use deno_core::V8CrossThreadTaskSpawner; - -pub use std::ffi::CStr; -pub use std::os::raw::c_char; -pub use std::os::raw::c_void; -pub use std::ptr; - // Expose common stuff for ease of use. // `use deno_napi::*` pub use deno_core::v8; +use deno_core::ExternalOpsTracker; +use deno_core::OpState; +use deno_core::V8CrossThreadTaskSpawner; use deno_permissions::PermissionCheckError; #[cfg(unix)] use libloading::os::unix::*; diff --git a/ext/net/lib.rs b/ext/net/lib.rs index f5635e0f4d4639..b21da19f30613d 100644 --- a/ext/net/lib.rs +++ b/ext/net/lib.rs @@ -14,6 +14,7 @@ use std::borrow::Cow; use std::path::Path; use std::path::PathBuf; use std::sync::Arc; + use deno_core::OpState; use deno_permissions::PermissionCheckError; use deno_tls::rustls::RootCertStore; diff --git a/ext/net/quic.rs b/ext/net/quic.rs index 8b06d46d1996c9..e0757454957c13 100644 --- a/ext/net/quic.rs +++ b/ext/net/quic.rs @@ -17,6 +17,7 @@ use std::task::Context; use std::task::Poll; use std::time::Duration; +use deno_core::error::ResourceError; use deno_core::futures::task::noop_waker_ref; use deno_core::op2; use deno_core::AsyncRefCell; @@ -30,6 +31,8 @@ use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; use deno_core::WriteOutcome; +use deno_error::JsError; +use deno_error::JsErrorBox; use deno_permissions::PermissionCheckError; use deno_tls::create_client_config; use deno_tls::SocketUse; @@ -49,40 +52,59 @@ use crate::DefaultTlsOptions; use crate::NetPermissions; use crate::UnsafelyIgnoreCertificateErrors; -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, JsError)] pub enum QuicError { + #[class(generic)] #[error("Endpoint created by 'connectQuic' cannot be used for listening")] CannotListen, + #[class(type)] #[error("key and cert are required")] MissingTlsKey, + #[class(type)] #[error("Duration is invalid")] InvalidDuration, + #[class(generic)] #[error("Unable to resolve hostname")] UnableToResolve, + #[class(inherit)] #[error("{0}")] StdIo(#[from] std::io::Error), + #[class(inherit)] #[error("{0}")] PermissionCheck(#[from] PermissionCheckError), + #[class(range)] #[error("{0}")] VarIntBoundsExceeded(#[from] quinn::VarIntBoundsExceeded), + #[class(generic)] #[error("{0}")] Rustls(#[from] quinn::rustls::Error), + #[class(inherit)] #[error("{0}")] Tls(#[from] TlsError), + #[class(generic)] #[error("{0}")] ConnectionError(#[from] quinn::ConnectionError), + #[class(generic)] #[error("{0}")] ConnectError(#[from] quinn::ConnectError), + #[class(generic)] #[error("{0}")] SendDatagramError(#[from] quinn::SendDatagramError), + #[class("BadResource")] #[error("{0}")] ClosedStream(#[from] quinn::ClosedStream), + #[class("BadResource")] #[error("Invalid {0} resource")] BadResource(&'static str), + #[class(range)] #[error("Connection has reached the maximum number of concurrent outgoing {0} streams")] MaxStreams(&'static str), + #[class(generic)] #[error("{0}")] Core(#[from] deno_core::error::AnyError), + #[class(inherit)] + #[error(transparent)] + Other(#[from] JsErrorBox), } #[derive(Serialize, Deserialize)] @@ -658,8 +680,13 @@ impl Resource for SendStreamResource { Box::pin(async move { let mut stream = RcRef::map(self.clone(), |r| &r.stream).borrow_mut().await; - stream.set_priority(self.priority.load(Ordering::Relaxed))?; - let nwritten = stream.write(&view).await?; + stream + .set_priority(self.priority.load(Ordering::Relaxed)) + .map_err(|e| JsErrorBox::from_err(std::io::Error::from(e)))?; + let nwritten = stream + .write(&view) + .await + .map_err(|e| JsErrorBox::from_err(std::io::Error::from(e)))?; Ok(WriteOutcome::Partial { nwritten, view }) }) } @@ -690,7 +717,11 @@ impl Resource for RecvStreamResource { Box::pin(async move { let mut r = RcRef::map(self, |r| &r.stream).borrow_mut().await; let mut data = vec![0; limit]; - let nread = r.read(&mut data).await?.unwrap_or(0); + let nread = r + .read(&mut data) + .await + .map_err(|e| JsErrorBox::from_err(std::io::Error::from(e)))? + .unwrap_or(0); data.truncate(nread); Ok(BufView::from(data)) }) @@ -702,7 +733,11 @@ impl Resource for RecvStreamResource { ) -> AsyncResult<(usize, BufMutView)> { Box::pin(async move { let mut r = RcRef::map(self, |r| &r.stream).borrow_mut().await; - let nread = r.read(&mut buf).await?.unwrap_or(0); + let nread = r + .read(&mut buf) + .await + .map_err(|e| JsErrorBox::from_err(std::io::Error::from(e)))? + .unwrap_or(0); Ok((nread, buf)) }) } @@ -710,7 +745,8 @@ impl Resource for RecvStreamResource { fn shutdown(self: Rc) -> AsyncResult<()> { Box::pin(async move { let mut r = RcRef::map(self, |r| &r.stream).borrow_mut().await; - r.stop(quinn::VarInt::from(0u32))?; + r.stop(quinn::VarInt::from(0u32)) + .map_err(|e| JsErrorBox::from_err(std::io::Error::from(e)))?; Ok(()) }) } @@ -835,15 +871,15 @@ pub(crate) async fn op_quic_connection_read_datagram( #[op2(fast)] pub(crate) fn op_quic_connection_get_max_datagram_size( #[cppgc] connection: &ConnectionResource, -) -> Result { - Ok(connection.0.max_datagram_size().unwrap_or(0) as _) +) -> u32 { + connection.0.max_datagram_size().unwrap_or(0) as _ } #[op2(fast)] pub(crate) fn op_quic_send_stream_get_priority( state: Rc>, #[smi] rid: ResourceId, -) -> Result { +) -> Result { let resource = state .borrow() .resource_table @@ -856,7 +892,7 @@ pub(crate) fn op_quic_send_stream_set_priority( state: Rc>, #[smi] rid: ResourceId, priority: i32, -) -> Result<(), QuicError> { +) -> Result<(), ResourceError> { let resource = state .borrow() .resource_table @@ -870,7 +906,7 @@ pub(crate) fn op_quic_send_stream_set_priority( pub(crate) fn op_quic_send_stream_get_id( state: Rc>, #[smi] rid: ResourceId, -) -> Result { +) -> Result { let resource = state .borrow() .resource_table @@ -884,7 +920,7 @@ pub(crate) fn op_quic_send_stream_get_id( pub(crate) fn op_quic_recv_stream_get_id( state: Rc>, #[smi] rid: ResourceId, -) -> Result { +) -> Result { let resource = state .borrow() .resource_table diff --git a/ext/net/raw.rs b/ext/net/raw.rs index 760020a6da4a55..fc380635f6fa53 100644 --- a/ext/net/raw.rs +++ b/ext/net/raw.rs @@ -1,5 +1,8 @@ // Copyright 2018-2025 the Deno authors. MIT license. +use std::borrow::Cow; +use std::rc::Rc; + use deno_core::error::ResourceError; use deno_core::AsyncRefCell; use deno_core::CancelHandle; @@ -7,8 +10,6 @@ use deno_core::Resource; use deno_core::ResourceId; use deno_core::ResourceTable; use deno_error::JsErrorBox; -use std::borrow::Cow; -use std::rc::Rc; use crate::io::TcpStreamResource; use crate::ops_tls::TlsStreamResource; diff --git a/ext/node/ops/crypto/keys.rs b/ext/node/ops/crypto/keys.rs index 3ceb7e1fddd42e..79b09faa267a7d 100644 --- a/ext/node/ops/crypto/keys.rs +++ b/ext/node/ops/crypto/keys.rs @@ -1190,7 +1190,8 @@ pub enum AsymmetricPrivateKeyJwkError { JwkExportNotImplementedForKeyType, } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(type)] pub enum AsymmetricPublicKeyJwkError { #[error("key is not an asymmetric public key")] KeyIsNotAsymmetricPublicKey, @@ -2494,12 +2495,15 @@ pub fn op_node_export_private_key_pem( Ok(String::from_utf8(out).expect("invalid pem is not possible")) } -#[derive(Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ExportPrivateKeyJwkError { + #[class(inherit)] #[error(transparent)] AsymmetricPublicKeyJwk(#[from] AsymmetricPrivateKeyJwkError), + #[class(type)] #[error("very large data")] VeryLargeData, + #[class(generic)] #[error(transparent)] Der(#[from] der::Error), } diff --git a/ext/node/ops/http.rs b/ext/node/ops/http.rs index 7c51890b784cd2..960c9226668045 100644 --- a/ext/node/ops/http.rs +++ b/ext/node/ops/http.rs @@ -28,7 +28,7 @@ use deno_core::CancelFuture; use deno_core::CancelHandle; use deno_core::CancelTryFuture; use deno_core::Canceled; -use deno_core::JsError; +use deno_error::JsError; use deno_core::OpState; use deno_core::RcRef; use deno_core::Resource; diff --git a/ext/node/ops/inspector.rs b/ext/node/ops/inspector.rs index ca8a6f87fb568b..c462523715890d 100644 --- a/ext/node/ops/inspector.rs +++ b/ext/node/ops/inspector.rs @@ -12,8 +12,6 @@ use deno_core::InspectorSessionOptions; use deno_core::JsRuntimeInspector; use deno_core::OpState; use deno_error::JsErrorBox; -use std::cell::RefCell; -use std::rc::Rc; use crate::NodePermissions; diff --git a/ext/node/ops/ipc.rs b/ext/node/ops/ipc.rs index 3151c501c40240..cf5e1e97efc3d8 100644 --- a/ext/node/ops/ipc.rs +++ b/ext/node/ops/ipc.rs @@ -31,6 +31,9 @@ mod impl_ { use deno_core::ResourceId; use deno_core::ToV8; use deno_error::JsErrorBox; + use deno_io::BiPipe; + use deno_io::BiPipeRead; + use deno_io::BiPipeWrite; use memchr::memchr; use pin_project_lite::pin_project; use serde::Serialize; diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index 4f5b811446926b..df40e77cf70bfa 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -13,6 +13,7 @@ use deno_core::v8; use deno_core::FastString; use deno_core::JsRuntimeInspector; use deno_core::OpState; +use deno_error::JsErrorBox; use deno_package_json::PackageJsonRc; use deno_path_util::normalize_path; use deno_path_util::url_from_file_path; @@ -91,6 +92,13 @@ pub enum RequireErrorKind { ), #[class(inherit)] #[error(transparent)] + Io( + #[from] + #[inherit] + std::io::Error, + ), + #[class(inherit)] + #[error(transparent)] ReadModule( #[from] #[inherit] @@ -98,7 +106,7 @@ pub enum RequireErrorKind { ), #[class(inherit)] #[error("Unable to get CWD: {0}")] - UnableToGetCwd(#[inherit] deno_io::fs::FsError), + UnableToGetCwd(#[inherit] std::io::Error), } #[op2] @@ -361,7 +369,7 @@ pub fn op_require_real_path< .map_err(RequireErrorKind::Permission)?; let sys = state.borrow::(); let canonicalized_path = - deno_path_util::strip_unc_prefix(sys.fs_canonicalize(&path)?); + deno_path_util::strip_unc_prefix(sys.fs_canonicalize(&path).map_err(RequireErrorKind::Io)?); Ok(canonicalized_path.to_string_lossy().into_owned()) } diff --git a/ext/node/ops/v8.rs b/ext/node/ops/v8.rs index e4dafe143a42a5..c268d419258bc8 100644 --- a/ext/node/ops/v8.rs +++ b/ext/node/ops/v8.rs @@ -8,7 +8,6 @@ use deno_core::FastString; use deno_core::GarbageCollected; use deno_core::ToJsBuffer; use deno_error::JsErrorBox; -use std::ptr::NonNull; use v8::ValueDeserializerHelper; use v8::ValueSerializerHelper; diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index c650c6ed02a3ab..5195258d7019ee 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -1,15 +1,20 @@ // Copyright 2018-2025 the Deno authors. MIT license. -use crate::NodePermissions; -use crate::NodeRequireLoaderRc; +use std::borrow::Cow; +use std::path::Path; +use std::path::PathBuf; + use deno_core::op2; use deno_core::url::Url; use deno_core::OpState; use deno_error::JsErrorBox; -use deno_fs::FileSystemRc; -use std::borrow::Cow; -use std::path::Path; -use std::path::PathBuf; + +use sys_traits::FsCanonicalize; +use sys_traits::FsMetadata; + +use crate::ExtNodeSys; +use crate::NodePermissions; +use crate::NodeRequireLoaderRc; #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"] fn ensure_read_permission<'a, P>( @@ -58,6 +63,13 @@ pub enum WorkerThreadsFilenameError { #[inherit] deno_io::fs::FsError, ), + #[class(inherit)] + #[error(transparent)] + Io( + #[from] + #[inherit] + std::io::Error, + ), } // todo(dsherret): we should remove this and do all this work inside op_create_worker diff --git a/ext/telemetry/lib.rs b/ext/telemetry/lib.rs index 249ce57385e7a7..ce3f34a0af9177 100644 --- a/ext/telemetry/lib.rs +++ b/ext/telemetry/lib.rs @@ -18,8 +18,6 @@ use std::thread; use std::time::Duration; use std::time::SystemTime; -use deno_core::anyhow; -use deno_core::anyhow::anyhow; use deno_core::futures::channel::mpsc; use deno_core::futures::channel::mpsc::UnboundedSender; use deno_core::futures::future::BoxFuture; @@ -29,9 +27,11 @@ use deno_core::futures::Stream; use deno_core::futures::StreamExt; use deno_core::op2; use deno_core::v8; +use deno_core::v8::DataError; use deno_core::GarbageCollected; use deno_core::OpState; use deno_error::JsError; +use deno_error::JsErrorBox; use once_cell::sync::Lazy; use once_cell::sync::OnceCell; use opentelemetry::logs::AnyValue; @@ -563,7 +563,7 @@ static OTEL_GLOBALS: OnceCell = OnceCell::new(); pub fn init( rt_config: OtelRuntimeConfig, config: &OtelConfig, -) -> anyhow::Result<()> { +) -> deno_core::anyhow::Result<()> { // Parse the `OTEL_EXPORTER_OTLP_PROTOCOL` variable. The opentelemetry_* // crates don't do this automatically. // TODO(piscisaureus): enable GRPC support. @@ -572,13 +572,13 @@ pub fn init( Ok("http/json") => Protocol::HttpJson, Ok("") | Err(env::VarError::NotPresent) => Protocol::HttpBinary, Ok(protocol) => { - return Err(anyhow!( + return Err(deno_core::anyhow::anyhow!( "Env var OTEL_EXPORTER_OTLP_PROTOCOL specifies an unsupported protocol: {}", protocol )); } Err(err) => { - return Err(anyhow!( + return Err(deno_core::anyhow::anyhow!( "Failed to read env var OTEL_EXPORTER_OTLP_PROTOCOL: {}", err )); @@ -645,7 +645,7 @@ pub fn init( Some("delta") => Temporality::Delta, Some("lowmemory") => Temporality::LowMemory, Some(other) => { - return Err(anyhow!( + return Err(deno_core::anyhow::anyhow!( "Invalid value for OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: {}", other )); @@ -688,7 +688,7 @@ pub fn init( meter_provider, builtin_instrumentation_scope, }) - .map_err(|_| anyhow!("failed to set otel globals"))?; + .map_err(|_| deno_core::anyhow::anyhow!("failed to set otel globals"))?; Ok(()) } @@ -1100,7 +1100,7 @@ impl OtelTracer { #[smi] span_kind: u8, start_time: Option, #[smi] attribute_count: usize, - ) -> Result { + ) -> Result { let OtelGlobals { id_generator, .. } = OTEL_GLOBALS.get().unwrap(); let span_context; let parent_span_id; @@ -1131,20 +1131,25 @@ impl OtelTracer { parent_span_id = SpanId::INVALID; } } - let name = owned_string(scope, name.try_cast()?); + let name = owned_string( + scope, + name + .try_cast() + .map_err(|e: DataError| JsErrorBox::generic(e.to_string()))?, + ); let span_kind = match span_kind { 0 => SpanKind::Internal, 1 => SpanKind::Server, 2 => SpanKind::Client, 3 => SpanKind::Producer, 4 => SpanKind::Consumer, - _ => return Err(anyhow!("invalid span kind")), + _ => return Err(JsErrorBox::generic("invalid span kind")), }; let start_time = start_time .map(|start_time| { SystemTime::UNIX_EPOCH .checked_add(std::time::Duration::from_secs_f64(start_time)) - .ok_or_else(|| anyhow!("invalid start time")) + .ok_or_else(|| JsErrorBox::generic("invalid start time")) }) .unwrap_or_else(|| Ok(SystemTime::now()))?; let span_data = SpanData { @@ -1176,14 +1181,14 @@ impl OtelTracer { #[smi] span_kind: u8, start_time: Option, #[smi] attribute_count: usize, - ) -> Result { + ) -> Result { let parent_trace_id = parse_trace_id(scope, parent_trace_id); if parent_trace_id == TraceId::INVALID { - return Err(anyhow!("invalid trace id")); + return Err(JsErrorBox::generic("invalid trace id")); }; let parent_span_id = parse_span_id(scope, parent_span_id); if parent_span_id == SpanId::INVALID { - return Err(anyhow!("invalid span id")); + return Err(JsErrorBox::generic("invalid span id")); }; let OtelGlobals { id_generator, .. } = OTEL_GLOBALS.get().unwrap(); let span_context = SpanContext::new( @@ -1193,20 +1198,25 @@ impl OtelTracer { false, TraceState::NONE, ); - let name = owned_string(scope, name.try_cast()?); + let name = owned_string( + scope, + name + .try_cast() + .map_err(|e: DataError| JsErrorBox::generic(e.to_string()))?, + ); let span_kind = match span_kind { 0 => SpanKind::Internal, 1 => SpanKind::Server, 2 => SpanKind::Client, 3 => SpanKind::Producer, 4 => SpanKind::Consumer, - _ => return Err(anyhow!("invalid span kind")), + _ => return Err(JsErrorBox::generic("invalid span kind")), }; let start_time = start_time .map(|start_time| { SystemTime::UNIX_EPOCH .checked_add(std::time::Duration::from_secs_f64(start_time)) - .ok_or_else(|| anyhow!("invalid start time")) + .ok_or_else(|| JsErrorBox::generic("invalid start time")) }) .unwrap_or_else(|| Ok(SystemTime::now()))?; let span_data = SpanData { @@ -1474,7 +1484,7 @@ impl OtelMeter { name: v8::Local<'s, v8::Value>, description: v8::Local<'s, v8::Value>, unit: v8::Local<'s, v8::Value>, - ) -> Result { + ) -> Result { create_instrument( |name| self.0.f64_counter(name), |i| Instrument::Counter(i.build()), @@ -1483,6 +1493,7 @@ impl OtelMeter { description, unit, ) + .map_err(|e| JsErrorBox::generic(e.to_string())) } #[cppgc] @@ -1492,7 +1503,7 @@ impl OtelMeter { name: v8::Local<'s, v8::Value>, description: v8::Local<'s, v8::Value>, unit: v8::Local<'s, v8::Value>, - ) -> Result { + ) -> Result { create_instrument( |name| self.0.f64_up_down_counter(name), |i| Instrument::UpDownCounter(i.build()), @@ -1501,6 +1512,7 @@ impl OtelMeter { description, unit, ) + .map_err(|e| JsErrorBox::generic(e.to_string())) } #[cppgc] @@ -1510,7 +1522,7 @@ impl OtelMeter { name: v8::Local<'s, v8::Value>, description: v8::Local<'s, v8::Value>, unit: v8::Local<'s, v8::Value>, - ) -> Result { + ) -> Result { create_instrument( |name| self.0.f64_gauge(name), |i| Instrument::Gauge(i.build()), @@ -1519,6 +1531,7 @@ impl OtelMeter { description, unit, ) + .map_err(|e| JsErrorBox::generic(e.to_string())) } #[cppgc] @@ -1529,15 +1542,30 @@ impl OtelMeter { description: v8::Local<'s, v8::Value>, unit: v8::Local<'s, v8::Value>, #[serde] boundaries: Option>, - ) -> Result { - let name = owned_string(scope, name.try_cast()?); + ) -> Result { + let name = owned_string( + scope, + name + .try_cast() + .map_err(|e: DataError| JsErrorBox::generic(e.to_string()))?, + ); let mut builder = self.0.f64_histogram(name); if !description.is_null_or_undefined() { - let description = owned_string(scope, description.try_cast()?); + let description = owned_string( + scope, + description + .try_cast() + .map_err(|e: DataError| JsErrorBox::generic(e.to_string()))?, + ); builder = builder.with_description(description); }; if !unit.is_null_or_undefined() { - let unit = owned_string(scope, unit.try_cast()?); + let unit = owned_string( + scope, + unit + .try_cast() + .map_err(|e: DataError| JsErrorBox::generic(e.to_string()))?, + ); builder = builder.with_unit(unit); }; if let Some(boundaries) = boundaries { @@ -1554,7 +1582,7 @@ impl OtelMeter { name: v8::Local<'s, v8::Value>, description: v8::Local<'s, v8::Value>, unit: v8::Local<'s, v8::Value>, - ) -> Result { + ) -> Result { create_async_instrument( |name| self.0.f64_observable_counter(name), |i| { @@ -1565,6 +1593,7 @@ impl OtelMeter { description, unit, ) + .map_err(|e| JsErrorBox::generic(e.to_string())) } #[cppgc] @@ -1574,7 +1603,7 @@ impl OtelMeter { name: v8::Local<'s, v8::Value>, description: v8::Local<'s, v8::Value>, unit: v8::Local<'s, v8::Value>, - ) -> Result { + ) -> Result { create_async_instrument( |name| self.0.f64_observable_up_down_counter(name), |i| { @@ -1585,6 +1614,7 @@ impl OtelMeter { description, unit, ) + .map_err(|e| JsErrorBox::generic(e.to_string())) } #[cppgc] @@ -1594,7 +1624,7 @@ impl OtelMeter { name: v8::Local<'s, v8::Value>, description: v8::Local<'s, v8::Value>, unit: v8::Local<'s, v8::Value>, - ) -> Result { + ) -> Result { create_async_instrument( |name| self.0.f64_observable_gauge(name), |i| { @@ -1605,6 +1635,7 @@ impl OtelMeter { description, unit, ) + .map_err(|e| JsErrorBox::generic(e.to_string())) } } @@ -1625,7 +1656,7 @@ fn create_instrument<'a, 'b, T>( name: v8::Local<'a, v8::Value>, description: v8::Local<'a, v8::Value>, unit: v8::Local<'a, v8::Value>, -) -> Result { +) -> Result { let name = owned_string(scope, name.try_cast()?); let mut builder = cb(name); if !description.is_null_or_undefined() { @@ -1647,7 +1678,7 @@ fn create_async_instrument<'a, 'b, T>( name: v8::Local<'a, v8::Value>, description: v8::Local<'a, v8::Value>, unit: v8::Local<'a, v8::Value>, -) -> Result { +) -> Result { let name = owned_string(scope, name.try_cast()?); let mut builder = cb(name); if !description.is_null_or_undefined() { diff --git a/ext/tls/lib.rs b/ext/tls/lib.rs index 7534ae7cdc3ec2..a3e386052ef873 100644 --- a/ext/tls/lib.rs +++ b/ext/tls/lib.rs @@ -5,9 +5,9 @@ use std::io::Cursor; use std::net::IpAddr; use std::sync::Arc; +use deno_error::JsErrorBox; pub use deno_native_certs; pub use rustls; -use deno_error::JsErrorBox; use rustls::client::danger::HandshakeSignatureValid; use rustls::client::danger::ServerCertVerified; use rustls::client::danger::ServerCertVerifier; diff --git a/ext/url/lib.rs b/ext/url/lib.rs index e72a487156116d..dd74239d93bce3 100644 --- a/ext/url/lib.rs +++ b/ext/url/lib.rs @@ -2,6 +2,8 @@ mod urlpattern; +use std::path::PathBuf; + use deno_core::op2; use deno_core::url::form_urlencoded; use deno_core::url::quirks; @@ -9,7 +11,6 @@ use deno_core::url::Url; use deno_core::JsBuffer; use deno_core::OpState; use deno_error::JsErrorBox; -use std::path::PathBuf; use crate::urlpattern::op_urlpattern_parse; use crate::urlpattern::op_urlpattern_process_match_input; diff --git a/ext/webgpu/byow.rs b/ext/webgpu/byow.rs index e35a190550cfd7..e911e1402bc3d3 100644 --- a/ext/webgpu/byow.rs +++ b/ext/webgpu/byow.rs @@ -1,9 +1,5 @@ // Copyright 2018-2025 the Deno authors. MIT license. -use crate::surface::WebGpuSurface; -use deno_core::op2; -use deno_core::OpState; -use deno_core::ResourceId; use std::ffi::c_void; #[cfg(any( target_os = "linux", @@ -13,6 +9,12 @@ use std::ffi::c_void; ))] use std::ptr::NonNull; +use deno_core::op2; +use deno_core::OpState; +use deno_core::ResourceId; + +use crate::surface::WebGpuSurface; + #[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum ByowError { #[class(type)] diff --git a/ext/webstorage/lib.rs b/ext/webstorage/lib.rs index 268772fd2c5b54..4653e1b9486d70 100644 --- a/ext/webstorage/lib.rs +++ b/ext/webstorage/lib.rs @@ -2,6 +2,8 @@ // NOTE to all: use **cached** prepared statements when interfacing with SQLite. +use std::path::PathBuf; + use deno_core::op2; use deno_core::GarbageCollected; use deno_core::OpState; @@ -9,7 +11,6 @@ pub use rusqlite; use rusqlite::params; use rusqlite::Connection; use rusqlite::OptionalExtension; -use std::path::PathBuf; #[derive(Debug, thiserror::Error, deno_error::JsError)] pub enum WebStorageError { diff --git a/resolvers/npm_cache/registry_info.rs b/resolvers/npm_cache/registry_info.rs index 9f06e986fc1579..5aa6a258a0205e 100644 --- a/resolvers/npm_cache/registry_info.rs +++ b/resolvers/npm_cache/registry_info.rs @@ -1,5 +1,6 @@ // Copyright 2018-2025 the Deno authors. MIT license. +use std::any::Any; use std::collections::HashMap; use std::collections::HashSet; use std::sync::Arc; @@ -17,6 +18,16 @@ use deno_npm::registry::NpmRegistryApi; use deno_npm::registry::NpmRegistryPackageInfoLoadError; use deno_unsync::sync::AtomicFlag; use deno_unsync::sync::MultiRuntimeAsyncValueCreator; +use sys_traits::FsCreateDirAll; +use sys_traits::FsHardLink; +use sys_traits::FsMetadata; +use sys_traits::FsOpen; +use sys_traits::FsReadDir; +use sys_traits::FsRemoveFile; +use sys_traits::FsRename; +use sys_traits::SystemRandom; +use sys_traits::ThreadSleep; +use thiserror::Error; use crate::remote::maybe_auth_header_for_npm_registry; use crate::NpmCache; @@ -28,7 +39,7 @@ type LoadFuture = LocalBoxFuture<'static, LoadResult>; #[derive(Debug, Error)] #[error(transparent)] -pub struct AnyhowJsError(pub AnyError); +pub struct AnyhowJsError(pub deno_core::error::AnyError); impl deno_error::JsErrorClass for AnyhowJsError { fn get_class(&self) -> &'static str { @@ -41,13 +52,15 @@ impl deno_error::JsErrorClass for AnyhowJsError { fn get_additional_properties( &self, - ) -> Option< - Vec<( - std::borrow::Cow<'static, str>, - std::borrow::Cow<'static, str>, - )>, - > { - None + ) -> Vec<( + std::borrow::Cow<'static, str>, + std::borrow::Cow<'static, str>, + )> { + vec![] + } + + fn as_any(&self) -> &dyn Any { + self } } diff --git a/resolvers/npm_cache/tarball.rs b/resolvers/npm_cache/tarball.rs index 24cff7f3defcb9..d9575ba9cda922 100644 --- a/resolvers/npm_cache/tarball.rs +++ b/resolvers/npm_cache/tarball.rs @@ -13,6 +13,15 @@ use deno_npm::registry::NpmPackageVersionDistInfo; use deno_semver::package::PackageNv; use deno_unsync::sync::MultiRuntimeAsyncValueCreator; use http::StatusCode; +use sys_traits::FsCreateDirAll; +use sys_traits::FsHardLink; +use sys_traits::FsMetadata; +use sys_traits::FsOpen; +use sys_traits::FsReadDir; +use sys_traits::FsRemoveFile; +use sys_traits::FsRename; +use sys_traits::SystemRandom; +use sys_traits::ThreadSleep; use crate::remote::maybe_auth_header_for_npm_registry; use crate::tarball_extract::verify_and_extract_tarball; diff --git a/runtime/ops/http.rs b/runtime/ops/http.rs index c39cb92776cf3c..931b407779dc77 100644 --- a/runtime/ops/http.rs +++ b/runtime/ops/http.rs @@ -1,5 +1,7 @@ // Copyright 2018-2025 the Deno authors. MIT license. +use std::rc::Rc; + use deno_core::error::ResourceError; use deno_core::op2; use deno_core::OpState; @@ -7,7 +9,6 @@ use deno_core::ResourceId; use deno_http::http_create_conn_resource; use deno_net::io::TcpStreamResource; use deno_net::ops_tls::TlsStreamResource; -use std::rc::Rc; pub const UNSTABLE_FEATURE_NAME: &str = "http"; diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index e78bd84772bd65..4c737f11261c6e 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -25,6 +25,7 @@ use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; use deno_core::ToJsBuffer; +use deno_error::JsErrorBox; use deno_io::fs::FileResource; use deno_io::ChildStderrResource; use deno_io::ChildStdinResource; @@ -108,7 +109,7 @@ impl StdioOrRid { StdioOrRid::Stdio(val) => Ok(val.as_stdio()), StdioOrRid::Rid(rid) => { Ok(FileResource::with_file(state, *rid, |file| { - file.as_stdio().map_err(JsErrorBox::from_err) + file.as_stdio().map_err(deno_error::JsErrorBox::from_err) })?) } } diff --git a/runtime/ops/signal.rs b/runtime/ops/signal.rs index d86a08da29443f..beefa1cd78de8b 100644 --- a/runtime/ops/signal.rs +++ b/runtime/ops/signal.rs @@ -1,5 +1,4 @@ // Copyright 2018-2025 the Deno authors. MIT license. -use deno_core::error::ResourceError; use std::borrow::Cow; use std::cell::RefCell; #[cfg(unix)] @@ -9,6 +8,8 @@ use std::rc::Rc; use std::sync::atomic::AtomicBool; #[cfg(unix)] use std::sync::Arc; + +use deno_core::error::ResourceError; use deno_core::op2; use deno_core::AsyncRefCell; use deno_core::CancelFuture; diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index ef1a934f480a1d..fdc31a0ae49f75 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -14,6 +14,9 @@ use deno_core::parking_lot::Mutex; use deno_core::OpState; #[cfg(unix)] use deno_core::ResourceId; +use deno_error::builtin_classes::GENERIC_ERROR; +use deno_error::JsErrorBox; +use deno_error::JsErrorClass; #[cfg(windows)] use deno_io::WinTtyState; #[cfg(unix)] @@ -26,18 +29,6 @@ use rustyline::KeyCode; use rustyline::KeyEvent; use rustyline::Modifiers; -#[cfg(unix)] -use deno_core::ResourceId; -use deno_error::builtin_classes::GENERIC_ERROR; -use deno_error::JsErrorBox; -use deno_error::JsErrorClass; -#[cfg(unix)] -use nix::sys::termios; -#[cfg(unix)] -use std::cell::RefCell; -#[cfg(unix)] -use std::collections::HashMap; - #[cfg(unix)] #[derive(Default, Clone)] struct TtyModeStore( @@ -59,12 +50,13 @@ impl TtyModeStore { } } -use crate::ops::process::JsNixError; #[cfg(windows)] use winapi::shared::minwindef::DWORD; #[cfg(windows)] use winapi::um::wincon; +use crate::ops::process::JsNixError; + deno_core::extension!( deno_tty, ops = [op_set_raw, op_console_size, op_read_line_prompt], diff --git a/runtime/shared.rs b/runtime/shared.rs index fe8d4e38ee9bd5..f8588dd72ca89a 100644 --- a/runtime/shared.rs +++ b/runtime/shared.rs @@ -12,7 +12,6 @@ use deno_core::ModuleCodeString; use deno_core::ModuleName; use deno_core::SourceMapData; use deno_error::JsErrorBox; -use std::path::Path; extension!(runtime, deps = [ From 4c9495df77d9f25909ce97cb9b47fc8df153104c Mon Sep 17 00:00:00 2001 From: crowlkats Date: Mon, 6 Jan 2025 18:59:22 +0100 Subject: [PATCH 13/36] fixes --- cli/factory.rs | 1 + cli/graph_util.rs | 7 +- cli/http_util.rs | 2 +- cli/lsp/analysis.rs | 1 - cli/lsp/language_server.rs | 2 +- cli/lsp/tsc.rs | 17 --- cli/mainrt.rs | 6 + cli/module_loader.rs | 19 +-- cli/npm/byonm.rs | 1 - cli/npm/managed/mod.rs | 2 - cli/npm/managed/resolvers/common.rs | 7 +- .../managed/resolvers/common/bin_entries.rs | 5 - cli/npm/managed/resolvers/global.rs | 6 +- cli/npm/managed/resolvers/local.rs | 2 - cli/npm/managed/resolvers/mod.rs | 1 - cli/npm/mod.rs | 2 - cli/npm/permission_checker.rs | 34 ++++-- cli/ops/lint.rs | 23 +++- cli/tools/coverage/mod.rs | 2 +- cli/tools/installer.rs | 1 - cli/tsc/mod.rs | 1 - cli/util/fs.rs | 83 ++++++++++--- ext/kv/dynamic.rs | 2 +- ext/node/ops/http.rs | 2 +- ext/node/ops/require.rs | 5 +- ext/node/ops/worker_threads.rs | 1 - resolvers/npm_cache/fs_util.rs | 111 +++++++++++++----- resolvers/npm_cache/lib.rs | 2 + 28 files changed, 228 insertions(+), 120 deletions(-) diff --git a/cli/factory.rs b/cli/factory.rs index c7fbfa99e3502e..86902dfc3bdf85 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -10,6 +10,7 @@ use deno_config::workspace::WorkspaceResolver; use deno_core::error::AnyError; use deno_core::futures::FutureExt; use deno_core::FeatureChecker; +use deno_error::JsErrorBox; use deno_resolver::cjs::IsCjsResolutionMode; use deno_resolver::npm::NpmReqResolverOptions; use deno_resolver::DenoResolverOptions; diff --git a/cli/graph_util.rs b/cli/graph_util.rs index 76db982fb511ba..e9fbb522c1041d 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -2,17 +2,17 @@ use std::collections::HashSet; use std::error::Error; -use std::ops::Deref; use std::path::PathBuf; use std::sync::Arc; use deno_config::deno_json::JsxImportSourceConfig; use deno_config::workspace::JsrPackageConfig; use deno_core::anyhow::bail; -use deno_core::error::custom_error; use deno_core::error::AnyError; use deno_core::parking_lot::Mutex; use deno_core::ModuleSpecifier; +use deno_error::JsErrorBox; +use deno_error::JsErrorClass; use deno_graph::source::Loader; use deno_graph::source::LoaderChecksum; use deno_graph::source::ResolutionKind; @@ -49,7 +49,6 @@ use crate::cache::GlobalHttpCache; use crate::cache::ModuleInfoCache; use crate::cache::ParsedSourceCache; use crate::colors; -use crate::errors::get_module_graph_error_class; use crate::file_fetcher::CliFileFetcher; use crate::npm::CliNpmResolver; use crate::resolver::CjsTracker; @@ -196,7 +195,7 @@ pub fn graph_walk_errors<'a>( return None; } - Some(custom_error(get_module_graph_error_class(&error), message)) + Some(JsErrorBox::new(error.get_class(), message)) }) } diff --git a/cli/http_util.rs b/cli/http_util.rs index 5f4cdbfab67ff7..19d9071833cca8 100644 --- a/cli/http_util.rs +++ b/cli/http_util.rs @@ -12,7 +12,7 @@ use deno_core::parking_lot::Mutex; use deno_core::serde; use deno_core::serde_json; use deno_core::url::Url; -use deno_core::JsError; +use deno_error::JsError; use deno_error::JsErrorBox; use deno_runtime::deno_fetch; use deno_runtime::deno_fetch::create_http_client; diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index 466076220427f9..f7b487f055c117 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -10,7 +10,6 @@ use deno_ast::SourceRange; use deno_ast::SourceRangedForSpanned; use deno_ast::SourceTextInfo; use deno_config::workspace::MappedResolution; -use deno_core::error::custom_error; use deno_core::error::AnyError; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index c1d5dc58d8942f..c8e78d626d64cd 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -3773,7 +3773,7 @@ impl Inner { for (name, def) in tasks { result.push(TaskDefinition { name: name.clone(), - command: def.command.clone().unwrap(), + command: def.command.clone(), source_uri: url_to_uri(&config_file.specifier) .map_err(|_| LspError::internal_error())?, }); diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index a2b2d1042a79ab..826021a2883c55 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -13,22 +13,6 @@ use std::rc::Rc; use std::sync::Arc; use std::thread; -use crate::args::jsr_url; -use crate::args::FmtOptionsConfig; -use crate::lsp::logging::lsp_warn; -use crate::tsc; -use crate::tsc::ResolveArgs; -use crate::tsc::MISSING_DEPENDENCY_SPECIFIER; -use crate::util::path::relative_specifier; -use crate::util::path::to_percent_decoded_str; -use crate::util::result::InfallibleResultExt; -use crate::util::v8::convert; -use crate::worker::create_isolate_create_params; -use deno_core::convert::Smi; -use deno_core::convert::ToV8; -use deno_core::futures::stream::FuturesOrdered; -use deno_core::futures::StreamExt; - use dashmap::DashMap; use deno_ast::MediaType; use deno_core::anyhow::anyhow; @@ -36,7 +20,6 @@ use deno_core::anyhow::Context as _; use deno_core::convert::Smi; use deno_core::convert::ToV8; use deno_core::error::AnyError; -use deno_core::error::StdAnyError; use deno_core::futures::stream::FuturesOrdered; use deno_core::futures::FutureExt; use deno_core::futures::StreamExt; diff --git a/cli/mainrt.rs b/cli/mainrt.rs index 67cf08932a2ed3..3b454586cf5862 100644 --- a/cli/mainrt.rs +++ b/cli/mainrt.rs @@ -23,6 +23,12 @@ mod util; mod version; mod worker; +use std::borrow::Cow; +use std::collections::HashMap; +use std::env; +use std::env::current_exe; +use std::sync::Arc; + use deno_core::error::AnyError; use deno_core::error::CoreError; use deno_core::error::JsError; diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 84b4cd85117360..8247ef22840d65 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -30,6 +30,7 @@ use deno_core::ModuleType; use deno_core::RequestedModuleType; use deno_core::SourceCodeCacheInfo; use deno_error::JsErrorBox; +use deno_error::JsErrorClass; use deno_graph::GraphKind; use deno_graph::JsModule; use deno_graph::JsonModule; @@ -58,7 +59,6 @@ use crate::cache::CodeCache; use crate::cache::FastInsecureHasher; use crate::cache::ParsedSourceCache; use crate::emit::Emitter; -use crate::errors::get_module_error_class; use crate::graph_container::MainModuleGraphContainer; use crate::graph_container::ModuleGraphContainer; use crate::graph_container::ModuleGraphUpdatePermit; @@ -707,7 +707,7 @@ impl &self, graph: &'graph ModuleGraph, specifier: &ModuleSpecifier, - ) -> Result>, AnyError> { + ) -> Result>, JsErrorBox> { if specifier.scheme() == "node" { // Node built-in modules should be handled internally. unreachable!("Deno bug. {} was misconfigured internally.", specifier); @@ -716,8 +716,8 @@ impl let maybe_module = match graph.try_get(specifier) { Ok(module) => module, Err(err) => { - return Err(custom_error( - get_module_error_class(err), + return Err(JsErrorBox::new( + err.get_class(), enhance_graph_error( &self.shared.sys, &ModuleGraphError::ModuleError(err.clone()), @@ -745,11 +745,12 @@ impl is_script, .. })) => { - if self.shared.cjs_tracker.is_cjs_with_known_is_script( - specifier, - *media_type, - *is_script, - )? { + if self + .shared + .cjs_tracker + .is_cjs_with_known_is_script(specifier, *media_type, *is_script) + .map_err(JsErrorBox::from_err)? + { return Ok(Some(CodeOrDeferredEmit::Cjs { specifier, media_type: *media_type, diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index 1cb6575eb11a47..2c11a417f3f0fb 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -10,7 +10,6 @@ use deno_resolver::npm::CliNpmReqResolver; use deno_runtime::ops::process::NpmProcessStateProvider; use node_resolver::NpmPackageFolderResolver; -use super::managed; use super::CliNpmResolver; use super::InnerCliNpmResolverRef; use crate::args::NpmProcessState; diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 7bdcf8792498c7..831b0b0ba81344 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -58,8 +58,6 @@ use crate::util::sync::AtomicFlag; mod resolution; mod resolvers; -pub use resolvers::EnsureRegistryReadPermissionError; - pub enum CliNpmResolverManagedSnapshotOption { ResolveFromLockfile(Arc), Specified(Option), diff --git a/cli/npm/managed/resolvers/common.rs b/cli/npm/managed/resolvers/common.rs index ad1ccbaf4a70eb..0d5fab10d346bd 100644 --- a/cli/npm/managed/resolvers/common.rs +++ b/cli/npm/managed/resolvers/common.rs @@ -8,14 +8,9 @@ use std::path::PathBuf; use async_trait::async_trait; use deno_ast::ModuleSpecifier; -use deno_core::error::AnyError; use deno_error::JsErrorBox; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; -use deno_npm::NpmResolutionPackage; -use deno_runtime::deno_fs::FileSystem; -use deno_runtime::deno_io::fs::FsError; -use deno_runtime::deno_node::NodePermissions; use node_resolver::errors::PackageFolderResolveError; use super::super::PackageCaching; @@ -23,7 +18,7 @@ use super::super::PackageCaching; #[derive(Debug, thiserror::Error, deno_error::JsError)] #[class(generic)] #[error("Package folder not found for '{0}'")] -pub struct NpmPackageFsResolverPackageFolderError(String); +pub struct NpmPackageFsResolverPackageFolderError(deno_semver::StackString); /// Part of the resolution that interacts with the file system. #[async_trait(?Send)] diff --git a/cli/npm/managed/resolvers/common/bin_entries.rs b/cli/npm/managed/resolvers/common/bin_entries.rs index e81d7ddde2c036..3cae6481bb3076 100644 --- a/cli/npm/managed/resolvers/common/bin_entries.rs +++ b/cli/npm/managed/resolvers/common/bin_entries.rs @@ -1,16 +1,11 @@ // Copyright 2018-2025 the Deno authors. MIT license. -use crate::npm::managed::NpmResolutionPackage; -use deno_npm::resolution::NpmResolutionSnapshot; -use deno_npm::NpmPackageId; use std::collections::HashMap; use std::collections::HashSet; use std::collections::VecDeque; use std::path::Path; use std::path::PathBuf; -use deno_core::anyhow::Context; -use deno_core::error::AnyError; use deno_npm::resolution::NpmResolutionSnapshot; use deno_npm::NpmPackageId; diff --git a/cli/npm/managed/resolvers/global.rs b/cli/npm/managed/resolvers/global.rs index 4ef22c611cfd39..9af35b169d6b2a 100644 --- a/cli/npm/managed/resolvers/global.rs +++ b/cli/npm/managed/resolvers/global.rs @@ -155,7 +155,9 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { .subset(&reqs) .all_system_packages_partitioned(&self.system_info), }; - cache_packages(&package_partitions.packages, &self.tarball_cache).await?; + cache_packages(&package_partitions.packages, &self.tarball_cache) + .await + .map_err(JsErrorBox::from_err)?; // create the copy package folders for copy in package_partitions.copy_packages { @@ -186,7 +188,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { async fn cache_packages( packages: &[NpmResolutionPackage], tarball_cache: &Arc, -) -> Result<(), AnyError> { +) -> Result<(), deno_npm_cache::EnsurePackageError> { let mut futures_unordered = FuturesUnordered::new(); for package in packages { futures_unordered.push(async move { diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index c4e37856ffeeef..a029c6953c51fd 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -44,9 +44,7 @@ use sys_traits::FsMetadata; use super::super::resolution::NpmResolution; use super::common::bin_entries; -use super::common::EnsureRegistryReadPermissionError; use super::common::NpmPackageFsResolver; -use super::common::RegistryReadPermissionChecker; use crate::args::LifecycleScriptsConfig; use crate::args::NpmInstallDepsProvider; use crate::cache::CACHE_PERM; diff --git a/cli/npm/managed/resolvers/mod.rs b/cli/npm/managed/resolvers/mod.rs index 12d898c4ef187a..77d00a896e716a 100644 --- a/cli/npm/managed/resolvers/mod.rs +++ b/cli/npm/managed/resolvers/mod.rs @@ -9,7 +9,6 @@ use std::sync::Arc; use deno_npm::NpmSystemInfo; -pub use self::common::EnsureRegistryReadPermissionError; pub use self::common::NpmPackageFsResolver; pub use self::common::NpmPackageFsResolverPackageFolderError; use self::global::GlobalNpmPackageResolver; diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index 626c492ddd6844..d66b3e618fc804 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -11,7 +11,6 @@ use dashmap::DashMap; use deno_core::error::AnyError; use deno_core::serde_json; use deno_core::url::Url; -use deno_error::JsErrorBox; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::registry::NpmPackageInfo; use deno_resolver::npm::ByonmInNpmPackageChecker; @@ -32,7 +31,6 @@ pub use self::byonm::CliByonmNpmResolverCreateOptions; pub use self::managed::CliManagedInNpmPkgCheckerCreateOptions; pub use self::managed::CliManagedNpmResolverCreateOptions; pub use self::managed::CliNpmResolverManagedSnapshotOption; -pub use self::managed::EnsureRegistryReadPermissionError; pub use self::managed::ManagedCliNpmResolver; pub use self::managed::PackageCaching; pub use self::managed::ResolvePkgFolderFromDenoModuleError; diff --git a/cli/npm/permission_checker.rs b/cli/npm/permission_checker.rs index 01fed08954f6ea..53031b5bd40b44 100644 --- a/cli/npm/permission_checker.rs +++ b/cli/npm/permission_checker.rs @@ -6,9 +6,8 @@ use std::io::ErrorKind; use std::path::Path; use std::path::PathBuf; -use deno_core::anyhow::Context; -use deno_core::error::AnyError; use deno_core::parking_lot::Mutex; +use deno_error::JsErrorBox; use deno_runtime::deno_node::NodePermissions; use sys_traits::FsCanonicalize; @@ -28,6 +27,16 @@ pub struct NpmRegistryReadPermissionChecker { mode: NpmRegistryReadPermissionCheckerMode, } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[class(inherit)] +#[error("failed canonicalizing '{path}'")] +struct EnsureRegistryReadPermissionError { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, +} + impl NpmRegistryReadPermissionChecker { pub fn new(sys: CliSys, mode: NpmRegistryReadPermissionCheckerMode) -> Self { Self { @@ -42,7 +51,7 @@ impl NpmRegistryReadPermissionChecker { &self, permissions: &mut dyn NodePermissions, path: &'a Path, - ) -> Result, AnyError> { + ) -> Result, JsErrorBox> { if permissions.query_read_all() { return Ok(Cow::Borrowed(path)); // skip permissions checks below } @@ -52,7 +61,9 @@ impl NpmRegistryReadPermissionChecker { if path.components().any(|c| c.as_os_str() == "node_modules") { Ok(Cow::Borrowed(path)) } else { - permissions.check_read_path(path).map_err(Into::into) + permissions + .check_read_path(path) + .map_err(JsErrorBox::from_err) } } NpmRegistryReadPermissionCheckerMode::Global(registry_path) @@ -66,7 +77,7 @@ impl NpmRegistryReadPermissionChecker { if is_path_in_node_modules { let mut cache = self.cache.lock(); let mut canonicalize = - |path: &Path| -> Result, AnyError> { + |path: &Path| -> Result, JsErrorBox> { match cache.get(path) { Some(canon) => Ok(Some(canon.clone())), None => match self.sys.fs_canonicalize(path) { @@ -78,9 +89,12 @@ impl NpmRegistryReadPermissionChecker { if e.kind() == ErrorKind::NotFound { return Ok(None); } - Err(AnyError::from(e)).with_context(|| { - format!("failed canonicalizing '{}'", path.display()) - }) + Err(JsErrorBox::from_err( + EnsureRegistryReadPermissionError { + path: path.to_path_buf(), + source: e, + }, + )) } }, } @@ -98,7 +112,9 @@ impl NpmRegistryReadPermissionChecker { } } - permissions.check_read_path(path).map_err(Into::into) + permissions + .check_read_path(path) + .map_err(JsErrorBox::from_err) } } } diff --git a/cli/ops/lint.rs b/cli/ops/lint.rs index 0a444e942c0505..c13cb21a53d43f 100644 --- a/cli/ops/lint.rs +++ b/cli/ops/lint.rs @@ -2,25 +2,36 @@ use deno_ast::MediaType; use deno_ast::ModuleSpecifier; -use deno_core::error::generic_error; -use deno_core::error::AnyError; +use deno_ast::ParseDiagnostic; use deno_core::op2; use crate::tools::lint; deno_core::extension!(deno_lint, ops = [op_lint_create_serialized_ast,],); +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum LintError { + #[class(inherit)] + #[error(transparent)] + Io(#[from] std::io::Error), + #[class(inherit)] + #[error(transparent)] + ParseDiagnostic(#[from] ParseDiagnostic), + #[class(type)] + #[error("Failed to parse path as URL: {0}")] + PathParse(std::path::PathBuf), +} + #[op2] #[buffer] fn op_lint_create_serialized_ast( #[string] file_name: &str, #[string] source: String, -) -> Result, AnyError> { +) -> Result, LintError> { let file_text = deno_ast::strip_bom(source); let path = std::env::current_dir()?.join(file_name); - let specifier = ModuleSpecifier::from_file_path(&path).map_err(|_| { - generic_error(format!("Failed to parse path as URL: {}", path.display())) - })?; + let specifier = ModuleSpecifier::from_file_path(&path) + .map_err(|_| LintError::PathParse(path))?; let media_type = MediaType::from_specifier(&specifier); let parsed_source = deno_ast::parse_program(deno_ast::ParseParams { specifier, diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index 9fcd97c1f91813..06afa5fac2d892 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -429,7 +429,7 @@ fn collect_coverages( .ignore_git_folder() .ignore_node_modules() .set_vendor_folder(cli_options.vendor_dir_path().map(ToOwned::to_owned)) - .collect_file_patterns(&CliSys::default(), file_patterns)?; + .collect_file_patterns(&CliSys::default(), file_patterns); let coverage_patterns = FilePatterns { base: initial_cwd.to_path_buf(), diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs index af2ec4dbd91d16..ff5744c07a7d47 100644 --- a/cli/tools/installer.rs +++ b/cli/tools/installer.rs @@ -15,7 +15,6 @@ use deno_cache_dir::file_fetcher::CacheSetting; use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; -use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_core::url::Url; diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index 316ff2098b4b50..6ca96498be6072 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -3,7 +3,6 @@ use std::borrow::Cow; use std::collections::HashMap; use std::fmt; -use std::path::Path; use std::path::PathBuf; use std::sync::Arc; diff --git a/cli/util/fs.rs b/cli/util/fs.rs index 61f1786ee98e70..d9cebe10d51de3 100644 --- a/cli/util/fs.rs +++ b/cli/util/fs.rs @@ -13,7 +13,6 @@ use deno_config::glob::PathOrPattern; use deno_config::glob::PathOrPatternSet; use deno_config::glob::WalkEntry; use deno_core::anyhow::anyhow; -use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::unsync::spawn_blocking; use deno_core::ModuleSpecifier; @@ -129,7 +128,7 @@ pub fn collect_specifiers( .ignore_git_folder() .ignore_node_modules() .set_vendor_folder(vendor_folder) - .collect_file_patterns(&CliSys::default(), files)?; + .collect_file_patterns(&CliSys::default(), files); let mut collected_files_as_urls = collected_files .iter() .map(|f| specifier_from_file_path(f).unwrap()) @@ -169,7 +168,7 @@ pub fn clone_dir_recursive< sys: &TSys, from: &Path, to: &Path, -) -> Result<(), AnyError> { +) -> Result<(), CopyDirRecursiveError> { if cfg!(target_vendor = "apple") { if let Some(parent) = to.parent() { sys.fs_create_dir_all(parent)?; @@ -200,6 +199,47 @@ pub fn clone_dir_recursive< Ok(()) } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum CopyDirRecursiveError { + #[class(inherit)] + #[error("Creating {path}")] + Creating { + path: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error("Creating {path}")] + Reading { + path: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error("Dir {from} to {to}")] + Dir { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: Box, + }, + #[class(inherit)] + #[error("Copying {from} to {to}")] + Copying { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: Error, + }, + #[class(inherit)] + #[error(transparent)] + Other(#[from] Error), +} + /// Copies a directory to another directory. /// /// Note: Does not handle symlinks. @@ -213,13 +253,20 @@ pub fn copy_dir_recursive< sys: &TSys, from: &Path, to: &Path, -) -> Result<(), AnyError> { - sys - .fs_create_dir_all(to) - .with_context(|| format!("Creating {}", to.display()))?; - let read_dir = sys - .fs_read_dir(from) - .with_context(|| format!("Reading {}", from.display()))?; +) -> Result<(), CopyDirRecursiveError> { + sys.fs_create_dir_all(to).map_err(|source| { + CopyDirRecursiveError::Creating { + path: to.to_path_buf(), + source, + } + })?; + let read_dir = + sys + .fs_read_dir(from) + .map_err(|source| CopyDirRecursiveError::Reading { + path: from.to_path_buf(), + source, + })?; for entry in read_dir { let entry = entry?; @@ -228,12 +275,20 @@ pub fn copy_dir_recursive< let new_to = to.join(entry.file_name()); if file_type.is_dir() { - copy_dir_recursive(sys, &new_from, &new_to).with_context(|| { - format!("Dir {} to {}", new_from.display(), new_to.display()) + copy_dir_recursive(sys, &new_from, &new_to).map_err(|source| { + CopyDirRecursiveError::Dir { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: Box::new(source), + } })?; } else if file_type.is_file() { - sys.fs_copy(&new_from, &new_to).with_context(|| { - format!("Copying {} to {}", new_from.display(), new_to.display()) + sys.fs_copy(&new_from, &new_to).map_err(|source| { + CopyDirRecursiveError::Copying { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source, + } })?; } } diff --git a/ext/kv/dynamic.rs b/ext/kv/dynamic.rs index 9ec4384006f992..923e3cd4d82d80 100644 --- a/ext/kv/dynamic.rs +++ b/ext/kv/dynamic.rs @@ -4,8 +4,8 @@ use std::cell::RefCell; use std::rc::Rc; use async_trait::async_trait; -use deno_error::JsErrorBox; use deno_core::OpState; +use deno_error::JsErrorBox; use denokv_proto::CommitResult; use denokv_proto::ReadRangeOutput; use denokv_proto::WatchStream; diff --git a/ext/node/ops/http.rs b/ext/node/ops/http.rs index 960c9226668045..9723b0d3be6685 100644 --- a/ext/node/ops/http.rs +++ b/ext/node/ops/http.rs @@ -28,11 +28,11 @@ use deno_core::CancelFuture; use deno_core::CancelHandle; use deno_core::CancelTryFuture; use deno_core::Canceled; -use deno_error::JsError; use deno_core::OpState; use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; +use deno_error::JsError; use deno_error::JsErrorBox; use deno_fetch::FetchCancelHandle; use deno_fetch::FetchReturn; diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index df40e77cf70bfa..3135ba1e864a92 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -368,8 +368,9 @@ pub fn op_require_real_path< let path = ensure_read_permission::

(state, &path) .map_err(RequireErrorKind::Permission)?; let sys = state.borrow::(); - let canonicalized_path = - deno_path_util::strip_unc_prefix(sys.fs_canonicalize(&path).map_err(RequireErrorKind::Io)?); + let canonicalized_path = deno_path_util::strip_unc_prefix( + sys.fs_canonicalize(&path).map_err(RequireErrorKind::Io)?, + ); Ok(canonicalized_path.to_string_lossy().into_owned()) } diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index 5195258d7019ee..ae3c28ef35a23d 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -8,7 +8,6 @@ use deno_core::op2; use deno_core::url::Url; use deno_core::OpState; use deno_error::JsErrorBox; - use sys_traits::FsCanonicalize; use sys_traits::FsMetadata; diff --git a/resolvers/npm_cache/fs_util.rs b/resolvers/npm_cache/fs_util.rs index 625d83e24d01dc..77269ebe0b447d 100644 --- a/resolvers/npm_cache/fs_util.rs +++ b/resolvers/npm_cache/fs_util.rs @@ -2,10 +2,9 @@ use std::io::ErrorKind; use std::path::Path; +use std::path::PathBuf; use std::time::Duration; -use anyhow::Context; -use anyhow::Error as AnyError; use sys_traits::FsCreateDirAll; use sys_traits::FsDirEntry; use sys_traits::FsHardLink; @@ -13,6 +12,56 @@ use sys_traits::FsReadDir; use sys_traits::FsRemoveFile; use sys_traits::ThreadSleep; +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum HardLinkDirRecursiveError { + #[class(inherit)] + #[error(transparent)] + Io(#[from] std::io::Error), + #[class(inherit)] + #[error("Creating {path}")] + Creating { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error("Creating {path}")] + Reading { + path: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error("Dir {from} to {to}")] + Dir { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: Box, + }, + #[class(inherit)] + #[error("Removing file to hard link {from} to {to}")] + RemoveFileToHardLink { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, + #[class(inherit)] + #[error("Hard linking {from} to {to}")] + HardLinking { + from: PathBuf, + to: PathBuf, + #[source] + #[inherit] + source: std::io::Error, + }, +} + /// Hardlinks the files in one directory to another directory. /// /// Note: Does not handle symlinks. @@ -22,13 +71,19 @@ pub fn hard_link_dir_recursive< sys: &TSys, from: &Path, to: &Path, -) -> Result<(), AnyError> { - sys - .fs_create_dir_all(to) - .with_context(|| format!("Creating {}", to.display()))?; - let read_dir = sys - .fs_read_dir(from) - .with_context(|| format!("Reading {}", from.display()))?; +) -> Result<(), HardLinkDirRecursiveError> { + sys.fs_create_dir_all(to).map_err(|source| { + HardLinkDirRecursiveError::Creating { + path: to.to_path_buf(), + source, + } + })?; + let read_dir = sys.fs_read_dir(from).map_err(|source| { + HardLinkDirRecursiveError::Reading { + path: from.to_path_buf(), + source, + } + })?; for entry in read_dir { let entry = entry?; @@ -37,8 +92,12 @@ pub fn hard_link_dir_recursive< let new_to = to.join(entry.file_name()); if file_type.is_dir() { - hard_link_dir_recursive(sys, &new_from, &new_to).with_context(|| { - format!("Dir {} to {}", new_from.display(), new_to.display()) + hard_link_dir_recursive(sys, &new_from, &new_to).map_err(|source| { + HardLinkDirRecursiveError::Dir { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: Box::new(source), + } })?; } else if file_type.is_file() { // note: chance for race conditions here between attempting to create, @@ -55,12 +114,10 @@ pub fn hard_link_dir_recursive< // faster to reduce contention. sys.thread_sleep(Duration::from_millis(10)); } else { - return Err(err).with_context(|| { - format!( - "Removing file to hard link {} to {}", - new_from.display(), - new_to.display() - ) + return Err(HardLinkDirRecursiveError::RemoveFileToHardLink { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: err, }); } } @@ -74,22 +131,18 @@ pub fn hard_link_dir_recursive< if err.kind() == ErrorKind::AlreadyExists { sys.thread_sleep(Duration::from_millis(10)); } else { - return Err(err).with_context(|| { - format!( - "Hard linking {} to {}", - new_from.display(), - new_to.display() - ) + return Err(HardLinkDirRecursiveError::HardLinking { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: err, }); } } } else { - return Err(err).with_context(|| { - format!( - "Hard linking {} to {}", - new_from.display(), - new_to.display() - ) + return Err(HardLinkDirRecursiveError::HardLinking { + from: new_from.to_path_buf(), + to: new_to.to_path_buf(), + source: err, }); } } diff --git a/resolvers/npm_cache/lib.rs b/resolvers/npm_cache/lib.rs index 60edbf4622927d..90c07de5d598c0 100644 --- a/resolvers/npm_cache/lib.rs +++ b/resolvers/npm_cache/lib.rs @@ -44,6 +44,7 @@ pub use fs_util::hard_link_dir_recursive; pub use registry_info::get_package_url; pub use registry_info::RegistryInfoProvider; pub use remote::maybe_auth_header_for_npm_registry; +pub use tarball::EnsurePackageError; pub use tarball::TarballCache; #[derive(Debug, deno_error::JsError)] @@ -237,6 +238,7 @@ impl< &original_package_folder, &package_folder, ) + .map_err(JsErrorBox::from_err) })?; Ok(()) } From ba58f99d55c265d1fd22115c4956157094ea0dac Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 6 Jan 2025 13:23:08 -0500 Subject: [PATCH 14/36] fix windows compile errors --- Cargo.lock | 1 + .../managed/resolvers/common/bin_entries.rs | 6 +++-- cli/npm/managed/resolvers/local.rs | 24 +++++++++++++------ runtime/ops/tty.rs | 1 + 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d60cfa6c8c00ab..e62062b5e980b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1657,6 +1657,7 @@ dependencies = [ "libc", "serde", "serde_json", + "thiserror 2.0.3", "tokio", "url", ] diff --git a/cli/npm/managed/resolvers/common/bin_entries.rs b/cli/npm/managed/resolvers/common/bin_entries.rs index 3cae6481bb3076..823480c105678d 100644 --- a/cli/npm/managed/resolvers/common/bin_entries.rs +++ b/cli/npm/managed/resolvers/common/bin_entries.rs @@ -371,8 +371,10 @@ fn set_up_bin_shim( cmd_shim.set_extension("cmd"); let shim = format!("@deno run -A npm:{}/{bin_name} %*", package.id.nv); - fs::write(&cmd_shim, shim).with_context(|| { - format!("Can't set up '{}' bin at {}", bin_name, cmd_shim.display()) + fs::write(&cmd_shim, shim).map_err(|err| BinEntriesError::SetUpBin { + name: bin_name.to_string(), + path: cmd_shim.clone(), + source: Box::new(err.into()), })?; Ok(()) diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index a029c6953c51fd..ede32363387df5 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -1098,6 +1098,13 @@ pub enum SymlinkPackageDirError { #[class(inherit)] #[error(transparent)] Other(#[from] std::io::Error), + #[class(inherit)] + #[error("Creating junction in node_modules folder")] + FailedCreatingJunction { + #[source] + #[inherit] + source: std::io::Error, + }, } fn symlink_package_dir( @@ -1138,7 +1145,7 @@ fn junction_or_symlink_dir( old_path_relative: &Path, old_path: &Path, new_path: &Path, -) -> Result<(), AnyError> { +) -> Result<(), SymlinkPackageDirError> { static USE_JUNCTIONS: std::sync::atomic::AtomicBool = std::sync::atomic::AtomicBool::new(false); @@ -1147,8 +1154,9 @@ fn junction_or_symlink_dir( // needing to elevate privileges on Windows. // Note: junctions don't support relative paths, so we need to use the // absolute path here. - return junction::create(old_path, new_path) - .context("Failed creating junction in node_modules folder"); + return junction::create(old_path, new_path).map_err(|source| { + SymlinkPackageDirError::FailedCreatingJunction { source } + }); } match symlink_dir(&crate::sys::CliSys::default(), old_path_relative, new_path) @@ -1158,8 +1166,9 @@ fn junction_or_symlink_dir( if symlink_err.kind() == std::io::ErrorKind::PermissionDenied => { USE_JUNCTIONS.store(true, std::sync::atomic::Ordering::Relaxed); - junction::create(old_path, new_path) - .context("Failed creating junction in node_modules folder") + junction::create(old_path, new_path).map_err(|source| { + SymlinkPackageDirError::FailedCreatingJunction { source } + }) } Err(symlink_err) => { log::warn!( @@ -1167,8 +1176,9 @@ fn junction_or_symlink_dir( colors::yellow("Warning") ); USE_JUNCTIONS.store(true, std::sync::atomic::Ordering::Relaxed); - junction::create(old_path, new_path) - .context("Failed creating junction in node_modules folder") + junction::create(old_path, new_path).map_err(|source| { + SymlinkPackageDirError::FailedCreatingJunction { source } + }) } } } diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index fdc31a0ae49f75..b1343ecf9c6585 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -55,6 +55,7 @@ use winapi::shared::minwindef::DWORD; #[cfg(windows)] use winapi::um::wincon; +#[cfg(unix)] use crate::ops::process::JsNixError; deno_core::extension!( From e7932c8dff9918e9fe78d69596fcc06b81b81bd8 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 6 Jan 2025 16:07:38 -0500 Subject: [PATCH 15/36] fix jsr tests --- Cargo.lock | 1 - cli/cache/mod.rs | 14 +++++++------- cli/graph_util.rs | 2 +- cli/tsc/mod.rs | 6 +++++- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e62062b5e980b0..d60cfa6c8c00ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1657,7 +1657,6 @@ dependencies = [ "libc", "serde", "serde_json", - "thiserror 2.0.3", "tokio", "url", ] diff --git a/cli/cache/mod.rs b/cli/cache/mod.rs index a983840047f43a..058ef2ca3e08c2 100644 --- a/cli/cache/mod.rs +++ b/cli/cache/mod.rs @@ -194,9 +194,9 @@ impl Loader for FetchCacher { LoaderCacheSetting::Use => None, LoaderCacheSetting::Reload => { if matches!(file_fetcher.cache_setting(), CacheSetting::Only) { - return Err(Arc::new(JsErrorBox::generic( + return Err(deno_graph::source::LoadError::Other(Arc::new(JsErrorBox::generic( "Could not resolve version constraint using only cached data. Try running again without --cached-only" - )).into()); + )))); } Some(CacheSetting::ReloadAll) } @@ -262,19 +262,19 @@ impl Loader for FetchCacher { FetchNoFollowErrorKind::CacheSave { .. } | FetchNoFollowErrorKind::UnsupportedScheme { .. } | FetchNoFollowErrorKind::RedirectHeaderParse { .. } | - FetchNoFollowErrorKind::InvalidHeader { .. } => Err(JsErrorBox::from_err(err)), + FetchNoFollowErrorKind::InvalidHeader { .. } => Err(deno_graph::source::LoadError::Other(Arc::new(JsErrorBox::from_err(err)))), FetchNoFollowErrorKind::NotCached { .. } => { if options.cache_setting == LoaderCacheSetting::Only { Ok(None) } else { - Err(JsErrorBox::from_err(err)) + Err(deno_graph::source::LoadError::Other(Arc::new(JsErrorBox::from_err(err)))) } }, FetchNoFollowErrorKind::ChecksumIntegrity(err) => { // convert to the equivalent deno_graph error so that it // enhances it if this is passed to deno_graph Err( - JsErrorBox::from_err( deno_graph::source::ChecksumIntegrityError { + deno_graph::source::LoadError::ChecksumIntegrity(deno_graph::source::ChecksumIntegrityError { actual: err.actual, expected: err.expected, }), @@ -282,9 +282,9 @@ impl Loader for FetchCacher { } } }, - CliFetchNoFollowErrorKind::PermissionCheck(permission_check_error) => Err(JsErrorBox::from_err(permission_check_error)), + CliFetchNoFollowErrorKind::PermissionCheck(permission_check_error) => Err(deno_graph::source::LoadError::Other(Arc::new(JsErrorBox::from_err(permission_check_error)))), } - }).map_err(|e| Arc::new(e).into()) + }) } .boxed_local() } diff --git a/cli/graph_util.rs b/cli/graph_util.rs index e9fbb522c1041d..fbd7324e28b39c 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -906,7 +906,7 @@ pub fn maybe_additional_sloppy_imports_message( } fn enhanced_integrity_error_message(err: &ModuleError) -> Option { - match dbg!(err) { + match err { ModuleError::LoadingErr( specifier, _, diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index 6ca96498be6072..75c5037aeaa036 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -1207,7 +1207,11 @@ mod tests { content: c.into(), }) }) - .map_err(|e| Arc::new(JsErrorBox::generic(e.to_string())).into()); + .map_err(|e| { + deno_graph::source::LoadError::Other(Arc::new(JsErrorBox::generic( + e.to_string(), + ))) + }); Box::pin(future::ready(response)) } } From 26182dc54dc5fdede6878726f8ba90a254642134 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 6 Jan 2025 16:36:52 -0500 Subject: [PATCH 16/36] Update two failing tests --- tests/specs/npm/npmrc_tarball_other_server/fail/main.out | 2 +- tests/specs/npm/npmrc_tarball_other_server/success/main.out | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/specs/npm/npmrc_tarball_other_server/fail/main.out b/tests/specs/npm/npmrc_tarball_other_server/fail/main.out index 2c68dba54e28e7..d49bc148ea4d50 100644 --- a/tests/specs/npm/npmrc_tarball_other_server/fail/main.out +++ b/tests/specs/npm/npmrc_tarball_other_server/fail/main.out @@ -1,6 +1,6 @@ Download http://localhost:4261/@denotest%2ftarballs-privateserver2 Download http://localhost:4262/@denotest/tarballs-privateserver2/1.0.0.tgz -error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0'. +error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0' Caused by: No auth for tarball URI, but present for scoped registry. diff --git a/tests/specs/npm/npmrc_tarball_other_server/success/main.out b/tests/specs/npm/npmrc_tarball_other_server/success/main.out index 5322a1a17deb25..239f1d525bedf9 100644 --- a/tests/specs/npm/npmrc_tarball_other_server/success/main.out +++ b/tests/specs/npm/npmrc_tarball_other_server/success/main.out @@ -4,7 +4,7 @@ Download http://localhost:4262/@denotest/tarballs-privateserver2/1.0.0.tgz [# to serve proper checksums for a package at another registry. That's fine] [# though because this shows us that we're making it to this step instead of] [# failing sooner on an auth issue.] -error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0'. +error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0' Caused by: Tarball checksum did not match [WILDCARD] From 5903a807f7ffbc8bd66dd3b6d07ca7397f455b5d Mon Sep 17 00:00:00 2001 From: crowlkats Date: Tue, 7 Jan 2025 11:57:39 +0100 Subject: [PATCH 17/36] fixes --- cli/args/lockfile.rs | 13 ++++++-- cli/args/mod.rs | 4 +-- cli/graph_util.rs | 38 +++++++++++++++++------- cli/module_loader.rs | 19 ++++++++++-- cli/npm/managed/resolvers/local.rs | 1 + cli/tools/bench/mod.rs | 30 +++++++++---------- cli/tools/check.rs | 25 ++++++++++++++-- cli/tools/test/channel.rs | 3 +- cli/tools/test/mod.rs | 44 +++++++++++++--------------- cli/tsc/diagnostics.rs | 3 +- cli/tsc/mod.rs | 19 ++++++++---- cli/worker.rs | 9 +++--- ext/ffi/dlfcn.rs | 4 +-- resolvers/npm_cache/registry_info.rs | 7 +++-- runtime/ops/fs_events.rs | 10 +++---- runtime/ops/tty.rs | 12 ++++---- runtime/worker.rs | 21 +++++++------ 17 files changed, 164 insertions(+), 98 deletions(-) diff --git a/cli/args/lockfile.rs b/cli/args/lockfile.rs index e2d79402e10e17..52630b9951cbe4 100644 --- a/cli/args/lockfile.rs +++ b/cli/args/lockfile.rs @@ -60,6 +60,14 @@ impl<'a, T> std::ops::DerefMut for Guard<'a, T> { } } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +#[error("Failed writing lockfile")] +#[class(inherit)] +struct AtomicWriteFileWithRetriesError { + #[source] + source: std::io::Error, +} + impl CliLockfile { /// Get the inner deno_lockfile::Lockfile. pub fn lock(&self) -> Guard { @@ -79,7 +87,7 @@ impl CliLockfile { self.lockfile.lock().overwrite } - pub fn write_if_changed(&self) -> Result<(), AnyError> { + pub fn write_if_changed(&self) -> Result<(), JsErrorBox> { if self.skip_write { return Ok(()); } @@ -96,8 +104,7 @@ impl CliLockfile { &lockfile.filename, &bytes, cache::CACHE_PERM, - ) - .context("Failed writing lockfile.")?; + ).map_err(|source| JsErrorBox::from_err(AtomicWriteFileWithRetriesError { source }))?; lockfile.has_content_changed = false; Ok(()) } diff --git a/cli/args/mod.rs b/cli/args/mod.rs index aab27a5df97b17..cd50d9b3a0d70d 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1251,11 +1251,11 @@ impl CliOptions { pub fn node_modules_dir( &self, - ) -> Result, AnyError> { + ) -> Result, deno_config::deno_json::NodeModulesDirParseError> { if let Some(flag) = self.flags.node_modules_dir { return Ok(Some(flag)); } - self.workspace().node_modules_dir().map_err(Into::into) + self.workspace().node_modules_dir() } pub fn vendor_dir_path(&self) -> Option<&PathBuf> { diff --git a/cli/graph_util.rs b/cli/graph_util.rs index fbd7324e28b39c..d3cc52332c7ee1 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -4,13 +4,12 @@ use std::collections::HashSet; use std::error::Error; use std::path::PathBuf; use std::sync::Arc; - +use deno_config::deno_json; use deno_config::deno_json::JsxImportSourceConfig; use deno_config::workspace::JsrPackageConfig; -use deno_core::anyhow::bail; use deno_core::error::AnyError; use deno_core::parking_lot::Mutex; -use deno_core::ModuleSpecifier; +use deno_core::{serde_json, ModuleSpecifier}; use deno_error::JsErrorBox; use deno_error::JsErrorClass; use deno_graph::source::Loader; @@ -57,7 +56,7 @@ use crate::resolver::CliSloppyImportsResolver; use crate::resolver::SloppyImportsCachedFs; use crate::sys::CliSys; use crate::tools::check; -use crate::tools::check::TypeChecker; +use crate::tools::check::{CheckError, TypeChecker}; use crate::util::file_watcher::WatcherCommunicator; use crate::util::fs::canonicalize_path; @@ -442,7 +441,7 @@ impl ModuleGraphCreator { async fn type_check_graph( &self, graph: ModuleGraph, - ) -> Result, AnyError> { + ) -> Result, CheckError> { self .type_checker .check( @@ -465,6 +464,25 @@ pub struct BuildFastCheckGraphOptions<'a> { pub workspace_fast_check: deno_graph::WorkspaceFastCheckOption<'a>, } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum BuildGraphWithNpmResolutionError { + #[class(inherit)] + #[error(transparent)] + SerdeJson(#[from] serde_json::Error), + #[class(inherit)] + #[error(transparent)] + ToMaybeJsxImportSourceConfig(#[from] deno_json::ToMaybeJsxImportSourceConfigError), + #[class(inherit)] + #[error(transparent)] + NodeModulesDirParse(#[from] deno_json::NodeModulesDirParseError), + #[class(inherit)] + #[error(transparent)] + Other(#[from] JsErrorBox), + #[class(generic)] + #[error("Resolving npm specifier entrypoints this way is currently not supported with \"nodeModules\": \"manual\". In the meantime, try with --node-modules-dir=auto instead")] + UnsupportedNpmSpecifierEntrypointResolutionWay, +} + pub struct ModuleGraphBuilder { caches: Arc, cjs_tracker: Arc, @@ -522,7 +540,7 @@ impl ModuleGraphBuilder { &self, graph: &mut ModuleGraph, options: CreateGraphOptions<'a>, - ) -> Result<(), AnyError> { + ) -> Result<(), BuildGraphWithNpmResolutionError> { enum MutLoaderRef<'a> { Borrowed(&'a mut dyn Loader), Owned(cache::FetchCacher), @@ -650,7 +668,7 @@ impl ModuleGraphBuilder { loader: &'a mut dyn deno_graph::source::Loader, options: deno_graph::BuildOptions<'a>, npm_caching: NpmCachingStrategy, - ) -> Result<(), AnyError> { + ) -> Result<(), BuildGraphWithNpmResolutionError> { // ensure an "npm install" is done if the user has explicitly // opted into using a node_modules directory if self @@ -687,7 +705,7 @@ impl ModuleGraphBuilder { if roots.iter().any(|r| r.scheme() == "npm") && self.npm_resolver.as_byonm().is_some() { - bail!("Resolving npm specifier entrypoints this way is currently not supported with \"nodeModules\": \"manual\". In the meantime, try with --node-modules-dir=auto instead"); + return Err(BuildGraphWithNpmResolutionError::UnsupportedNpmSpecifierEntrypointResolutionWay) } graph.build(roots, loader, options).await; @@ -738,7 +756,7 @@ impl ModuleGraphBuilder { &self, graph: &mut ModuleGraph, options: BuildFastCheckGraphOptions, - ) -> Result<(), AnyError> { + ) -> Result<(), deno_json::ToMaybeJsxImportSourceConfigError> { if !graph.graph_kind().include_types() { return Ok(()); } @@ -830,7 +848,7 @@ impl ModuleGraphBuilder { ) } - fn create_graph_resolver(&self) -> Result { + fn create_graph_resolver(&self) -> Result { let jsx_import_source_config = self .cli_options .workspace() diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 8247ef22840d65..cbe6e8ccb4e61a 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -78,13 +78,26 @@ use crate::resolver::NotSupportedKindInNpmError; use crate::resolver::NpmModuleLoader; use crate::sys::CliSys; use crate::tools::check; -use crate::tools::check::TypeChecker; +use crate::tools::check::{CheckError, TypeChecker}; use crate::util::progress_bar::ProgressBar; use crate::util::text_encoding::code_without_source_map; use crate::util::text_encoding::source_map_from_code; use crate::worker::CreateModuleLoaderResult; use crate::worker::ModuleLoaderFactory; +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum PrepareModuleLoadError { + #[class(inherit)] + #[error(transparent)] + BuildGraphWithNpmResolution(#[from] crate::graph_util::BuildGraphWithNpmResolutionError), + #[class(inherit)] + #[error(transparent)] + Check(#[from] CheckError), + #[class(inherit)] + #[error(transparent)] + Other(#[from] JsErrorBox), +} + pub struct ModuleLoadPreparer { options: Arc, lockfile: Option>, @@ -124,7 +137,7 @@ impl ModuleLoadPreparer { lib: TsTypeLib, permissions: PermissionsContainer, ext_overwrite: Option<&String>, - ) -> Result<(), AnyError> { + ) -> Result<(), PrepareModuleLoadError> { log::debug!("Preparing module load."); let _pb_clear_guard = self.progress_bar.clear_guard(); @@ -993,7 +1006,7 @@ impl ModuleLoader permissions, None, ) - .await?; + .await.map_err(JsErrorBox::from_err)?; update_permit.commit(); Ok(()) } diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index ede32363387df5..e1ac3df43bd1a3 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -1098,6 +1098,7 @@ pub enum SymlinkPackageDirError { #[class(inherit)] #[error(transparent)] Other(#[from] std::io::Error), + #[cfg(windows)] #[class(inherit)] #[error("Creating junction in node_modules folder")] FailedCreatingJunction { diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs index a89f50d7aef67e..857ee0bfe2015a 100644 --- a/cli/tools/bench/mod.rs +++ b/cli/tools/bench/mod.rs @@ -7,7 +7,7 @@ use std::time::Duration; use deno_config::glob::WalkEntry; use deno_core::anyhow::anyhow; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, CoreError}; use deno_core::error::JsError; use deno_core::futures::future; use deno_core::futures::stream; @@ -18,6 +18,7 @@ use deno_core::unsync::spawn_blocking; use deno_core::v8; use deno_core::ModuleSpecifier; use deno_core::PollEventLoopOptions; +use deno_error::JsErrorBox; use deno_runtime::deno_permissions::Permissions; use deno_runtime::deno_permissions::PermissionsContainer; use deno_runtime::permissions::RuntimePermissionDescriptorParser; @@ -162,17 +163,14 @@ async fn bench_specifier( .await { Ok(()) => Ok(()), - Err(error) => { - if error.is::() { - sender.send(BenchEvent::UncaughtError( - specifier.to_string(), - Box::new(error.downcast::().unwrap()), - ))?; - Ok(()) - } else { - Err(error) - } + Err(CoreError::Js(error)) => { + sender.send(BenchEvent::UncaughtError( + specifier.to_string(), + Box::new(error), + ))?; + Ok(()) } + Err(e) => Err(e.into()) } } @@ -183,7 +181,7 @@ async fn bench_specifier_inner( specifier: ModuleSpecifier, sender: &UnboundedSender, filter: TestFilter, -) -> Result<(), AnyError> { +) -> Result<(), CoreError> { let mut worker = worker_factory .create_custom_worker( WorkerExecutionMode::Bench, @@ -235,9 +233,9 @@ async fn bench_specifier_inner( total: benchmarks.len(), used_only, names: benchmarks.iter().map(|(d, _)| d.name.clone()).collect(), - }))?; + })).map_err(JsErrorBox::from_err)?; for (desc, function) in benchmarks { - sender.send(BenchEvent::Wait(desc.id))?; + sender.send(BenchEvent::Wait(desc.id)).map_err(JsErrorBox::from_err)?; let call = worker.js_runtime.call(&function); let result = worker .js_runtime @@ -245,8 +243,8 @@ async fn bench_specifier_inner( .await?; let scope = &mut worker.js_runtime.handle_scope(); let result = v8::Local::new(scope, result); - let result = serde_v8::from_v8::(scope, result)?; - sender.send(BenchEvent::Result(desc.id, result))?; + let result = serde_v8::from_v8::(scope, result).map_err(JsErrorBox::from_err)?; + sender.send(BenchEvent::Result(desc.id, result)).map_err(JsErrorBox::from_err)?; } // Ignore `defaultPrevented` of the `beforeunload` event. We don't allow the diff --git a/cli/tools/check.rs b/cli/tools/check.rs index 1ee3f1782b4d45..48a16e9ec561b5 100644 --- a/cli/tools/check.rs +++ b/cli/tools/check.rs @@ -6,7 +6,9 @@ use std::sync::Arc; use deno_ast::MediaType; use deno_ast::ModuleSpecifier; +use deno_config::deno_json; use deno_core::error::AnyError; +use deno_error::JsErrorBox; use deno_graph::Module; use deno_graph::ModuleError; use deno_graph::ModuleGraph; @@ -112,6 +114,25 @@ pub struct TypeChecker { sys: CliSys, } +#[derive(Debug, thiserror::Error, deno_error::JsError)] +pub enum CheckError { + #[class(inherit)] + #[error(transparent)] + Diagnostics(#[from] Diagnostics), + #[class(inherit)] + #[error(transparent)] + ConfigFile(#[from] deno_json::ConfigFileError), + #[class(inherit)] + #[error(transparent)] + ToMaybeJsxImportSourceConfig(#[from] deno_json::ToMaybeJsxImportSourceConfigError), + #[class(inherit)] + #[error(transparent)] + TscExec(#[from] tsc::ExecError), + #[class(inherit)] + #[error(transparent)] + Other(#[from] JsErrorBox), +} + impl TypeChecker { pub fn new( caches: Arc, @@ -141,7 +162,7 @@ impl TypeChecker { &self, graph: ModuleGraph, options: CheckOptions, - ) -> Result, AnyError> { + ) -> Result, CheckError> { let (graph, mut diagnostics) = self.check_diagnostics(graph, options).await?; diagnostics.emit_warnings(); @@ -160,7 +181,7 @@ impl TypeChecker { &self, mut graph: ModuleGraph, options: CheckOptions, - ) -> Result<(Arc, Diagnostics), AnyError> { + ) -> Result<(Arc, Diagnostics), CheckError> { if !options.type_check_mode.is_true() || graph.roots.is_empty() { return Ok((graph.into(), Default::default())); } diff --git a/cli/tools/test/channel.rs b/cli/tools/test/channel.rs index 29f24d65f144f9..68633b17e62b18 100644 --- a/cli/tools/test/channel.rs +++ b/cli/tools/test/channel.rs @@ -37,7 +37,8 @@ const HALF_SYNC_MARKER: &[u8; 4] = &[226, 128, 139, 0]; const BUFFER_SIZE: usize = 4096; /// The test channel has been closed and cannot be used to send further messages. -#[derive(Debug, Copy, Clone, Eq, PartialEq)] +#[derive(Debug, Copy, Clone, Eq, PartialEq, deno_error::JsError)] +#[class(generic)] pub struct ChannelClosedError; impl std::error::Error for ChannelClosedError {} diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index 7991a855259ebf..a71142cdefa582 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -48,6 +48,7 @@ use deno_core::v8; use deno_core::ModuleSpecifier; use deno_core::OpState; use deno_core::PollEventLoopOptions; +use deno_error::JsErrorBox; use deno_runtime::deno_io::Stdio; use deno_runtime::deno_io::StdioPipe; use deno_runtime::deno_permissions::Permissions; @@ -104,6 +105,7 @@ use reporters::JunitTestReporter; use reporters::PrettyTestReporter; use reporters::TapTestReporter; use reporters::TestReporter; +use crate::tools::test::channel::ChannelClosedError; /// How many times we're allowed to spin the event loop before considering something a leak. const MAX_SANITIZER_LOOP_SPINS: usize = 16; @@ -611,7 +613,7 @@ async fn configure_main_worker( permissions_container: PermissionsContainer, worker_sender: TestEventWorkerSender, options: &TestSpecifierOptions, -) -> Result<(Option>, MainWorker), anyhow::Error> { +) -> Result<(Option>, MainWorker), CoreError> { let mut worker = worker_factory .create_custom_worker( WorkerExecutionMode::Test, @@ -643,7 +645,7 @@ async fn configure_main_worker( send_test_event( &worker.js_runtime.op_state(), TestEvent::UncaughtError(specifier.to_string(), Box::new(err)), - )?; + ).map_err(JsErrorBox::from_err)?; Ok(()) } Err(err) => Err(err), @@ -683,21 +685,17 @@ pub async fn test_specifier( .await { Ok(()) => Ok(()), - Err(error) => { - // TODO(mmastrac): It would be nice to avoid having this error pattern repeated - if error.is::() { - send_test_event( - &worker.js_runtime.op_state(), - TestEvent::UncaughtError( - specifier.to_string(), - Box::new(error.downcast::().unwrap()), - ), - )?; - Ok(()) - } else { - Err(error) - } + Err(CoreError::Js(err)) => { + send_test_event( + &worker.js_runtime.op_state(), + TestEvent::UncaughtError( + specifier.to_string(), + Box::new(err), + ), + )?; + Ok(()) } + Err(e) => Err(e.into()) } } @@ -710,7 +708,7 @@ async fn test_specifier_inner( specifier: ModuleSpecifier, fail_fast_tracker: FailFastTracker, options: TestSpecifierOptions, -) -> Result<(), AnyError> { +) -> Result<(), CoreError> { // Ensure that there are no pending exceptions before we start running tests worker.run_up_to_duration(Duration::from_millis(0)).await?; @@ -776,13 +774,11 @@ pub async fn poll_event_loop(worker: &mut MainWorker) -> Result<(), CoreError> { pub fn send_test_event( op_state: &RefCell, event: TestEvent, -) -> Result<(), AnyError> { - Ok( - op_state - .borrow_mut() - .borrow_mut::() - .send(event)?, - ) +) -> Result<(), ChannelClosedError> { + op_state + .borrow_mut() + .borrow_mut::() + .send(event) } pub async fn run_tests_for_worker( diff --git a/cli/tsc/diagnostics.rs b/cli/tsc/diagnostics.rs index ac93c8575d784b..3780f65e771079 100644 --- a/cli/tsc/diagnostics.rs +++ b/cli/tsc/diagnostics.rs @@ -320,7 +320,8 @@ impl fmt::Display for Diagnostic { } } -#[derive(Clone, Debug, Default, Eq, PartialEq)] +#[derive(Clone, Debug, Default, Eq, PartialEq, deno_error::JsError)] +#[class(generic)] pub struct Diagnostics(Vec); impl Diagnostics { diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index 75c5037aeaa036..9dcf5db0a3eb3f 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -7,7 +7,6 @@ use std::path::PathBuf; use std::sync::Arc; use deno_ast::MediaType; -use deno_core::anyhow::anyhow; use deno_core::anyhow::Context; use deno_core::ascii_str; use deno_core::error::AnyError; @@ -1066,10 +1065,20 @@ fn op_respond_inner(state: &mut OpState, args: RespondArgs) { state.maybe_response = Some(args); } +#[derive(Debug, Error, deno_error::JsError)] +pub enum ExecError { + #[class(generic)] + #[error("The response for the exec request was not set.")] + ResponseNotSet, + #[class(inherit)] + #[error(transparent)] + Core(deno_core::error::CoreError), +} + /// Execute a request on the supplied snapshot, returning a response which /// contains information, like any emitted files, diagnostics, statistics and /// optionally an updated TypeScript build info. -pub fn exec(request: Request) -> Result { +pub fn exec(request: Request) -> Result { // tsc cannot handle root specifiers that don't have one of the "acceptable" // extensions. Therefore, we have to check the root modules against their // extensions and remap any that are unacceptable to tsc and add them to the @@ -1145,7 +1154,7 @@ pub fn exec(request: Request) -> Result { ..Default::default() }); - runtime.execute_script(located_script_name!(), exec_source)?; + runtime.execute_script(located_script_name!(), exec_source).map_err(ExecError::Core)?; let op_state = runtime.op_state(); let mut op_state = op_state.borrow_mut(); @@ -1162,7 +1171,7 @@ pub fn exec(request: Request) -> Result { stats, }) } else { - Err(anyhow!("The response for the exec request was not set.")) + Err(ExecError::ResponseNotSet) } } @@ -1248,7 +1257,7 @@ mod tests { async fn test_exec( specifier: &ModuleSpecifier, - ) -> Result { + ) -> Result { let hash_data = 123; // something random let fixtures = test_util::testdata_path().join("tsc2"); let loader = MockLoader { fixtures }; diff --git a/cli/worker.rs b/cli/worker.rs index 6fbed5d5b5f487..235435ec9ea3e5 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -18,6 +18,7 @@ use deno_core::FeatureChecker; use deno_core::ModuleLoader; use deno_core::PollEventLoopOptions; use deno_core::SharedArrayBufferStore; +use deno_error::JsErrorBox; use deno_runtime::code_cache; use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; use deno_runtime::deno_fs; @@ -465,7 +466,7 @@ impl CliMainWorkerFactory { &self, mode: WorkerExecutionMode, main_module: ModuleSpecifier, - ) -> Result { + ) -> Result { self .create_custom_worker( mode, @@ -484,7 +485,7 @@ impl CliMainWorkerFactory { permissions: PermissionsContainer, custom_extensions: Vec, stdio: deno_runtime::deno_io::Stdio, - ) -> Result { + ) -> Result { let shared = &self.shared; let CreateModuleLoaderResult { module_loader, @@ -514,7 +515,7 @@ impl CliMainWorkerFactory { // use a fake referrer that can be used to discover the package.json if necessary let referrer = - ModuleSpecifier::from_directory_path(self.shared.fs.cwd()?) + ModuleSpecifier::from_directory_path(self.shared.fs.cwd().map_err(JsErrorBox::from_err)?) .unwrap() .join("package.json")?; let package_folder = shared @@ -522,7 +523,7 @@ impl CliMainWorkerFactory { .resolve_pkg_folder_from_deno_module_req( package_ref.req(), &referrer, - )?; + ).map_err(JsErrorBox::from_err)?; let main_module = self .resolve_binary_entrypoint(&package_folder, package_ref.sub_path())?; diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index 96e08adcddf419..bfaf74456f8f94 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -26,11 +26,11 @@ use crate::FfiPermissions; deno_error::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { match err { - dlopen2::Error::NullCharacter(_) => "InvalidData", + dlopen2::Error::NullCharacter(_) => Cow::Borrowed("InvalidData"), dlopen2::Error::OpeningLibraryError(e) => e.get_class(), dlopen2::Error::SymbolGettingError(e) => e.get_class(), dlopen2::Error::AddrNotMatchingDll(e) => e.get_class(), - dlopen2::Error::NullSymbol => "NotFound", + dlopen2::Error::NullSymbol => Cow::Borrowed("NotFound"), } }); diff --git a/resolvers/npm_cache/registry_info.rs b/resolvers/npm_cache/registry_info.rs index 5aa6a258a0205e..e7eaa5e899d399 100644 --- a/resolvers/npm_cache/registry_info.rs +++ b/resolvers/npm_cache/registry_info.rs @@ -42,8 +42,8 @@ type LoadFuture = LocalBoxFuture<'static, LoadResult>; pub struct AnyhowJsError(pub deno_core::error::AnyError); impl deno_error::JsErrorClass for AnyhowJsError { - fn get_class(&self) -> &'static str { - "generic" + fn get_class(&self) -> std::borrow::Cow<'static, str> { + deno_error::builtin_classes::GENERIC_ERROR.into() } fn get_message(&self) -> std::borrow::Cow<'static, str> { @@ -140,11 +140,12 @@ pub enum LoadFileCachedPackageInfoError { #[derive(Debug, thiserror::Error, deno_error::JsError)] #[class(inherit)] -#[error(r#"Failed loading {url} for package \"{name}\": {inner}"#)] +#[error("Failed loading {url} for package \"{name}\"")] pub struct LoadPackageInfoError { url: Url, name: String, #[inherit] + #[source] inner: LoadPackageInfoInnerError, } diff --git a/runtime/ops/fs_events.rs b/runtime/ops/fs_events.rs index f89aff81a6854f..5336c232c97eab 100644 --- a/runtime/ops/fs_events.rs +++ b/runtime/ops/fs_events.rs @@ -120,12 +120,12 @@ fn is_file_removed(event_path: &PathBuf) -> bool { deno_error::js_error_wrapper!(NotifyError, JsNotifyError, |err| { match &err.kind { - notify::ErrorKind::Generic(_) => GENERIC_ERROR, + notify::ErrorKind::Generic(_) => GENERIC_ERROR.into(), notify::ErrorKind::Io(e) => e.get_class(), - notify::ErrorKind::PathNotFound => "NotFound", - notify::ErrorKind::WatchNotFound => "NotFound", - notify::ErrorKind::InvalidConfig(_) => "InvalidData", - notify::ErrorKind::MaxFilesWatch => GENERIC_ERROR, + notify::ErrorKind::PathNotFound => "NotFound".into(), + notify::ErrorKind::WatchNotFound => "NotFound".into(), + notify::ErrorKind::InvalidConfig(_) => "InvalidData".into(), + notify::ErrorKind::MaxFilesWatch => GENERIC_ERROR.into(), } }); diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs index b1343ecf9c6585..d9912839b870a2 100644 --- a/runtime/ops/tty.rs +++ b/runtime/ops/tty.rs @@ -448,16 +448,16 @@ mod tests { deno_error::js_error_wrapper!(ReadlineError, JsReadlineError, |err| { match err { ReadlineError::Io(e) => e.get_class(), - ReadlineError::Eof => GENERIC_ERROR, - ReadlineError::Interrupted => GENERIC_ERROR, + ReadlineError::Eof => GENERIC_ERROR.into(), + ReadlineError::Interrupted => GENERIC_ERROR.into(), #[cfg(unix)] ReadlineError::Errno(e) => JsNixError(*e).get_class(), - ReadlineError::WindowResized => GENERIC_ERROR, + ReadlineError::WindowResized => GENERIC_ERROR.into(), #[cfg(windows)] - ReadlineError::Decode(_) => GENERIC_ERROR, + ReadlineError::Decode(_) => GENERIC_ERROR.into(), #[cfg(windows)] - ReadlineError::SystemError(_) => GENERIC_ERROR, - _ => GENERIC_ERROR, + ReadlineError::SystemError(_) => GENERIC_ERROR.into(), + _ => GENERIC_ERROR.into(), } }); diff --git a/runtime/worker.rs b/runtime/worker.rs index fcd756cac930ed..236cf4aa051c24 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -12,7 +12,6 @@ use std::time::Instant; use deno_broadcast_channel::InMemoryBroadcastChannel; use deno_cache::CreateCache; use deno_cache::SqliteBackedCache; -use deno_core::error::AnyError; use deno_core::error::CoreError; use deno_core::error::JsError; use deno_core::merge_op_metrics; @@ -832,7 +831,7 @@ impl MainWorker { /// Dispatches "load" event to the JavaScript runtime. /// /// Does not poll event loop, and thus not await any of the "load" event handlers. - pub fn dispatch_load_event(&mut self) -> Result<(), AnyError> { + pub fn dispatch_load_event(&mut self) -> Result<(), JsError> { let scope = &mut self.js_runtime.handle_scope(); let tc_scope = &mut v8::TryCatch::new(scope); let dispatch_load_event_fn = @@ -841,7 +840,7 @@ impl MainWorker { dispatch_load_event_fn.call(tc_scope, undefined.into(), &[]); if let Some(exception) = tc_scope.exception() { let error = JsError::from_v8_exception(tc_scope, exception); - return Err(error.into()); + return Err(error); } Ok(()) } @@ -849,7 +848,7 @@ impl MainWorker { /// Dispatches "unload" event to the JavaScript runtime. /// /// Does not poll event loop, and thus not await any of the "unload" event handlers. - pub fn dispatch_unload_event(&mut self) -> Result<(), AnyError> { + pub fn dispatch_unload_event(&mut self) -> Result<(), JsError> { let scope = &mut self.js_runtime.handle_scope(); let tc_scope = &mut v8::TryCatch::new(scope); let dispatch_unload_event_fn = @@ -858,13 +857,13 @@ impl MainWorker { dispatch_unload_event_fn.call(tc_scope, undefined.into(), &[]); if let Some(exception) = tc_scope.exception() { let error = JsError::from_v8_exception(tc_scope, exception); - return Err(error.into()); + return Err(error); } Ok(()) } /// Dispatches process.emit("exit") event for node compat. - pub fn dispatch_process_exit_event(&mut self) -> Result<(), AnyError> { + pub fn dispatch_process_exit_event(&mut self) -> Result<(), JsError> { let scope = &mut self.js_runtime.handle_scope(); let tc_scope = &mut v8::TryCatch::new(scope); let dispatch_process_exit_event_fn = @@ -873,7 +872,7 @@ impl MainWorker { dispatch_process_exit_event_fn.call(tc_scope, undefined.into(), &[]); if let Some(exception) = tc_scope.exception() { let error = JsError::from_v8_exception(tc_scope, exception); - return Err(error.into()); + return Err(error); } Ok(()) } @@ -881,7 +880,7 @@ impl MainWorker { /// Dispatches "beforeunload" event to the JavaScript runtime. Returns a boolean /// indicating if the event was prevented and thus event loop should continue /// running. - pub fn dispatch_beforeunload_event(&mut self) -> Result { + pub fn dispatch_beforeunload_event(&mut self) -> Result { let scope = &mut self.js_runtime.handle_scope(); let tc_scope = &mut v8::TryCatch::new(scope); let dispatch_beforeunload_event_fn = @@ -891,7 +890,7 @@ impl MainWorker { dispatch_beforeunload_event_fn.call(tc_scope, undefined.into(), &[]); if let Some(exception) = tc_scope.exception() { let error = JsError::from_v8_exception(tc_scope, exception); - return Err(error.into()); + return Err(error); } let ret_val = ret_val.unwrap(); Ok(ret_val.is_false()) @@ -900,7 +899,7 @@ impl MainWorker { /// Dispatches process.emit("beforeExit") event for node compat. pub fn dispatch_process_beforeexit_event( &mut self, - ) -> Result { + ) -> Result { let scope = &mut self.js_runtime.handle_scope(); let tc_scope = &mut v8::TryCatch::new(scope); let dispatch_process_beforeexit_event_fn = v8::Local::new( @@ -915,7 +914,7 @@ impl MainWorker { ); if let Some(exception) = tc_scope.exception() { let error = JsError::from_v8_exception(tc_scope, exception); - return Err(error.into()); + return Err(error); } let ret_val = ret_val.unwrap(); Ok(ret_val.is_true()) From c0ec4be3828a60868d5a108418295071fced45a1 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Tue, 7 Jan 2025 16:32:38 +0100 Subject: [PATCH 18/36] fixes --- tests/specs/jsr/import_https_url/analyzable.out | 2 +- tests/specs/jsr/import_https_url/nonanalyzable.out | 2 +- .../lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out | 2 +- .../lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out | 2 +- .../lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out | 2 +- tests/specs/permission/allow_import_worker/denied.out | 2 +- .../permissions_blob_local.ts.out | 2 +- .../permissions_blob_remote.ts.out | 2 +- .../permissions_data_local.ts.out | 2 +- .../permissions_data_remote.ts.out | 2 +- .../permissions_remote_remote.ts.out | 2 +- .../error_005_missing_dynamic_import.ts.out | 2 +- .../error_015_dynamic_import_permissions.out | 2 +- .../specs/run/import_attributes_dynamic_error/dynamic_error.out | 2 +- .../permissions_dynamic_remote.ts.out | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/specs/jsr/import_https_url/analyzable.out b/tests/specs/jsr/import_https_url/analyzable.out index dd1ca58b428a11..d3a08406115292 100644 --- a/tests/specs/jsr/import_https_url/analyzable.out +++ b/tests/specs/jsr/import_https_url/analyzable.out @@ -2,7 +2,7 @@ Download http://127.0.0.1:4250/@denotest/import-https-url/meta.json Download http://127.0.0.1:4250/@denotest/import-https-url/1.0.0_meta.json Download http://127.0.0.1:4250/@denotest/import-https-url/1.0.0/analyzable.ts Download http://localhost:4545/welcome.ts -error: Uncaught (in promise) TypeError: Importing http://localhost:4545/welcome.ts blocked. JSR packages cannot import non-JSR remote modules for security reasons. +error: Uncaught (in promise) Error: Importing http://localhost:4545/welcome.ts blocked. JSR packages cannot import non-JSR remote modules for security reasons. await import("http://localhost:4545/welcome.ts"); ^ at async http://127.0.0.1:4250/@denotest/import-https-url/1.0.0/analyzable.ts:1:1 diff --git a/tests/specs/jsr/import_https_url/nonanalyzable.out b/tests/specs/jsr/import_https_url/nonanalyzable.out index 4ae04996c95cdf..5c903fde4d6b61 100644 --- a/tests/specs/jsr/import_https_url/nonanalyzable.out +++ b/tests/specs/jsr/import_https_url/nonanalyzable.out @@ -1,7 +1,7 @@ Download http://127.0.0.1:4250/@denotest/import-https-url/meta.json Download http://127.0.0.1:4250/@denotest/import-https-url/1.0.0_meta.json Download http://127.0.0.1:4250/@denotest/import-https-url/1.0.0/unanalyzable.ts -error: Uncaught (in promise) TypeError: Importing http://localhost:4545/welcome.ts blocked. JSR packages cannot import non-JSR remote modules for security reasons. +error: Uncaught (in promise) Error: Importing http://localhost:4545/welcome.ts blocked. JSR packages cannot import non-JSR remote modules for security reasons. await import(nonAnalyzableUrl()); ^ at async http://127.0.0.1:4250/@denotest/import-https-url/1.0.0/unanalyzable.ts:5:1 diff --git a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out index 7c86a23cf3b900..fb8e9798605a95 100644 --- a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out +++ b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out @@ -1,5 +1,5 @@ Download http://localhost:4545/welcome.ts -error: Uncaught (in promise) TypeError: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. +error: Uncaught (in promise) Error: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. changes: 10 | - } 10 | + }, diff --git a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out index c22b529edb9983..c0fffcde7f40fe 100644 --- a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out +++ b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out @@ -1,7 +1,7 @@ Download http://127.0.0.1:4250/@denotest/add/meta.json Download http://127.0.0.1:4250/@denotest/add/1.0.0_meta.json Download http://127.0.0.1:4250/@denotest/add/1.0.0/mod.ts -error: Uncaught (in promise) TypeError: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. +error: Uncaught (in promise) Error: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. changes: 4 | - "npm:@denotest/add@1": "1.0.0" 4 | + "jsr:@denotest/add@1": "1.0.0", diff --git a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out index 4fc016c57cc573..c89851a09ca45f 100644 --- a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out +++ b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out @@ -1,5 +1,5 @@ Download http://localhost:4260/@denotest%2fsubtract -error: Uncaught (in promise) TypeError: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. +error: Uncaught (in promise) Error: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. changes: 4 | - "npm:@denotest/add@1": "1.0.0" 4 | + "npm:@denotest/add@1": "1.0.0", diff --git a/tests/specs/permission/allow_import_worker/denied.out b/tests/specs/permission/allow_import_worker/denied.out index af44ae21ee180c..2671f7199e143d 100644 --- a/tests/specs/permission/allow_import_worker/denied.out +++ b/tests/specs/permission/allow_import_worker/denied.out @@ -1,4 +1,4 @@ -error: Uncaught (in worker "") (in promise) TypeError: JSR package manifest for '@std/assert' failed to load. Requires import access to "127.0.0.1:4250", run again with the --allow-import flag +error: Uncaught (in worker "") (in promise) Error: JSR package manifest for '@std/assert' failed to load. Requires import access to "127.0.0.1:4250", run again with the --allow-import flag await import(specifier); ^ at async file:///[WILDLINE] diff --git a/tests/specs/run/dynamic_import_permissions_blob_local/permissions_blob_local.ts.out b/tests/specs/run/dynamic_import_permissions_blob_local/permissions_blob_local.ts.out index b7b246ba2b85d4..aa9009a551a344 100644 --- a/tests/specs/run/dynamic_import_permissions_blob_local/permissions_blob_local.ts.out +++ b/tests/specs/run/dynamic_import_permissions_blob_local/permissions_blob_local.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) TypeError: Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag +error: Uncaught (in promise) Error: Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag at blob:null/[WILDCARD]:1:8 await import(URL.createObjectURL(blob)); ^ diff --git a/tests/specs/run/dynamic_import_permissions_blob_remote/permissions_blob_remote.ts.out b/tests/specs/run/dynamic_import_permissions_blob_remote/permissions_blob_remote.ts.out index 287cf9998510f7..ada4b8220c7e57 100644 --- a/tests/specs/run/dynamic_import_permissions_blob_remote/permissions_blob_remote.ts.out +++ b/tests/specs/run/dynamic_import_permissions_blob_remote/permissions_blob_remote.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) TypeError: Requires import access to "example.com:443", run again with the --allow-import flag +error: Uncaught (in promise) Error: Requires import access to "example.com:443", run again with the --allow-import flag at blob:null/[WILDCARD]:1:8 await import(URL.createObjectURL(blob)); ^ diff --git a/tests/specs/run/dynamic_import_permissions_data_local/permissions_data_local.ts.out b/tests/specs/run/dynamic_import_permissions_data_local/permissions_data_local.ts.out index bf8c1948e6c667..fdffa0ea0b5ef0 100644 --- a/tests/specs/run/dynamic_import_permissions_data_local/permissions_data_local.ts.out +++ b/tests/specs/run/dynamic_import_permissions_data_local/permissions_data_local.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) TypeError: Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag +error: Uncaught (in promise) Error: Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag at data:application/javascript;base64,[WILDCARD]:1:8 await import(`data:application/javascript;base64,${btoa(code)}`); ^ diff --git a/tests/specs/run/dynamic_import_permissions_data_remote/permissions_data_remote.ts.out b/tests/specs/run/dynamic_import_permissions_data_remote/permissions_data_remote.ts.out index c8de9382a53006..022758526b731a 100644 --- a/tests/specs/run/dynamic_import_permissions_data_remote/permissions_data_remote.ts.out +++ b/tests/specs/run/dynamic_import_permissions_data_remote/permissions_data_remote.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) TypeError: Requires import access to "example.com:443", run again with the --allow-import flag +error: Uncaught (in promise) Error: Requires import access to "example.com:443", run again with the --allow-import flag at data:application/javascript;base64,aW1wb3J0ICJodHRwczovL2V4YW1wbGUuY29tL3NvbWUvZmlsZS50cyI7:1:8 await import(`data:application/javascript;base64,${btoa(code)}`); ^ diff --git a/tests/specs/run/dynamic_import_permissions_remote_remote/permissions_remote_remote.ts.out b/tests/specs/run/dynamic_import_permissions_remote_remote/permissions_remote_remote.ts.out index 16fe3bbdd6604d..9c27ba93b0120d 100644 --- a/tests/specs/run/dynamic_import_permissions_remote_remote/permissions_remote_remote.ts.out +++ b/tests/specs/run/dynamic_import_permissions_remote_remote/permissions_remote_remote.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) TypeError: Requires import access to "example.com:443", run again with the --allow-import flag +error: Uncaught (in promise) Error: Requires import access to "example.com:443", run again with the --allow-import flag at http://localhost:4545/dynamic_import/static_remote.ts:2:8 await import( ^ diff --git a/tests/specs/run/error_005_missing_dynamic_import/error_005_missing_dynamic_import.ts.out b/tests/specs/run/error_005_missing_dynamic_import/error_005_missing_dynamic_import.ts.out index 55e4a8524542bc..d371e45b5a6260 100644 --- a/tests/specs/run/error_005_missing_dynamic_import/error_005_missing_dynamic_import.ts.out +++ b/tests/specs/run/error_005_missing_dynamic_import/error_005_missing_dynamic_import.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) TypeError: Module not found "[WILDCARD]/bad-module.ts". +error: Uncaught (in promise) Error: Module not found "[WILDCARD]/bad-module.ts". const _badModule = await import("./bad-module.ts"); ^ at async file://[WILDCARD]/error_005_missing_dynamic_import.ts:2:22 diff --git a/tests/specs/run/error_015_dynamic_import_permissions/error_015_dynamic_import_permissions.out b/tests/specs/run/error_015_dynamic_import_permissions/error_015_dynamic_import_permissions.out index 8ef2f6f1e4f51d..05e86ed2aa3923 100644 --- a/tests/specs/run/error_015_dynamic_import_permissions/error_015_dynamic_import_permissions.out +++ b/tests/specs/run/error_015_dynamic_import_permissions/error_015_dynamic_import_permissions.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) TypeError: Requires import access to "example.com:80", run again with the --allow-import flag +error: Uncaught (in promise) Error: Requires import access to "example.com:80", run again with the --allow-import flag await import("" + "http://example.com/mod4.js"); ^ at async file://[WILDCARD]/error_015_dynamic_import_permissions.js:2:3 diff --git a/tests/specs/run/import_attributes_dynamic_error/dynamic_error.out b/tests/specs/run/import_attributes_dynamic_error/dynamic_error.out index 24f29de72d793d..c38efe7f3decce 100644 --- a/tests/specs/run/import_attributes_dynamic_error/dynamic_error.out +++ b/tests/specs/run/import_attributes_dynamic_error/dynamic_error.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) TypeError: Attempted to load JSON module without specifying "type": "json" attribute in the import statement. +error: Uncaught (in promise) Error: Attempted to load JSON module without specifying "type": "json" attribute in the import statement. const data = await import("./data.json"); ^ at async [WILDCARD]dynamic_error.ts:1:14 diff --git a/tests/specs/worker/worker_permissions_dynamic_remote/permissions_dynamic_remote.ts.out b/tests/specs/worker/worker_permissions_dynamic_remote/permissions_dynamic_remote.ts.out index fa4232efd06477..2a647b1dd92ae0 100644 --- a/tests/specs/worker/worker_permissions_dynamic_remote/permissions_dynamic_remote.ts.out +++ b/tests/specs/worker/worker_permissions_dynamic_remote/permissions_dynamic_remote.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in worker "") (in promise) TypeError: Requires import access to "example.com:443", run again with the --allow-import flag +error: Uncaught (in worker "") (in promise) Error: Requires import access to "example.com:443", run again with the --allow-import flag await import("" + "https://example.com/some/file.ts"); ^ at async http://localhost:4545/workers/dynamic_remote.ts:2:1 From de804d7257c6da49f1a073dd98fdc0220c20022e Mon Sep 17 00:00:00 2001 From: crowlkats Date: Tue, 7 Jan 2025 17:31:25 +0100 Subject: [PATCH 19/36] fmt --- cli/args/lockfile.rs | 5 ++++- cli/args/mod.rs | 5 ++++- cli/graph_util.rs | 18 +++++++++++++----- cli/module_loader.rs | 10 +++++++--- cli/tools/bench/mod.rs | 30 +++++++++++++++++++----------- cli/tools/check.rs | 4 +++- cli/tools/test/mod.rs | 11 +++++------ cli/tsc/mod.rs | 4 +++- cli/worker.rs | 15 +++++++-------- runtime/worker.rs | 4 +--- 10 files changed, 66 insertions(+), 40 deletions(-) diff --git a/cli/args/lockfile.rs b/cli/args/lockfile.rs index 52630b9951cbe4..976992aac8287b 100644 --- a/cli/args/lockfile.rs +++ b/cli/args/lockfile.rs @@ -104,7 +104,10 @@ impl CliLockfile { &lockfile.filename, &bytes, cache::CACHE_PERM, - ).map_err(|source| JsErrorBox::from_err(AtomicWriteFileWithRetriesError { source }))?; + ) + .map_err(|source| { + JsErrorBox::from_err(AtomicWriteFileWithRetriesError { source }) + })?; lockfile.has_content_changed = false; Ok(()) } diff --git a/cli/args/mod.rs b/cli/args/mod.rs index cd50d9b3a0d70d..cf4bd55ca8a5ab 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1251,7 +1251,10 @@ impl CliOptions { pub fn node_modules_dir( &self, - ) -> Result, deno_config::deno_json::NodeModulesDirParseError> { + ) -> Result< + Option, + deno_config::deno_json::NodeModulesDirParseError, + > { if let Some(flag) = self.flags.node_modules_dir { return Ok(Some(flag)); } diff --git a/cli/graph_util.rs b/cli/graph_util.rs index d3cc52332c7ee1..f32dae8a07910e 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -4,12 +4,14 @@ use std::collections::HashSet; use std::error::Error; use std::path::PathBuf; use std::sync::Arc; + use deno_config::deno_json; use deno_config::deno_json::JsxImportSourceConfig; use deno_config::workspace::JsrPackageConfig; use deno_core::error::AnyError; use deno_core::parking_lot::Mutex; -use deno_core::{serde_json, ModuleSpecifier}; +use deno_core::serde_json; +use deno_core::ModuleSpecifier; use deno_error::JsErrorBox; use deno_error::JsErrorClass; use deno_graph::source::Loader; @@ -56,7 +58,8 @@ use crate::resolver::CliSloppyImportsResolver; use crate::resolver::SloppyImportsCachedFs; use crate::sys::CliSys; use crate::tools::check; -use crate::tools::check::{CheckError, TypeChecker}; +use crate::tools::check::CheckError; +use crate::tools::check::TypeChecker; use crate::util::file_watcher::WatcherCommunicator; use crate::util::fs::canonicalize_path; @@ -471,7 +474,9 @@ pub enum BuildGraphWithNpmResolutionError { SerdeJson(#[from] serde_json::Error), #[class(inherit)] #[error(transparent)] - ToMaybeJsxImportSourceConfig(#[from] deno_json::ToMaybeJsxImportSourceConfigError), + ToMaybeJsxImportSourceConfig( + #[from] deno_json::ToMaybeJsxImportSourceConfigError, + ), #[class(inherit)] #[error(transparent)] NodeModulesDirParse(#[from] deno_json::NodeModulesDirParseError), @@ -705,7 +710,7 @@ impl ModuleGraphBuilder { if roots.iter().any(|r| r.scheme() == "npm") && self.npm_resolver.as_byonm().is_some() { - return Err(BuildGraphWithNpmResolutionError::UnsupportedNpmSpecifierEntrypointResolutionWay) + return Err(BuildGraphWithNpmResolutionError::UnsupportedNpmSpecifierEntrypointResolutionWay); } graph.build(roots, loader, options).await; @@ -848,7 +853,10 @@ impl ModuleGraphBuilder { ) } - fn create_graph_resolver(&self) -> Result { + fn create_graph_resolver( + &self, + ) -> Result + { let jsx_import_source_config = self .cli_options .workspace() diff --git a/cli/module_loader.rs b/cli/module_loader.rs index cbe6e8ccb4e61a..ba53077a3c8d1d 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -78,7 +78,8 @@ use crate::resolver::NotSupportedKindInNpmError; use crate::resolver::NpmModuleLoader; use crate::sys::CliSys; use crate::tools::check; -use crate::tools::check::{CheckError, TypeChecker}; +use crate::tools::check::CheckError; +use crate::tools::check::TypeChecker; use crate::util::progress_bar::ProgressBar; use crate::util::text_encoding::code_without_source_map; use crate::util::text_encoding::source_map_from_code; @@ -89,7 +90,9 @@ use crate::worker::ModuleLoaderFactory; pub enum PrepareModuleLoadError { #[class(inherit)] #[error(transparent)] - BuildGraphWithNpmResolution(#[from] crate::graph_util::BuildGraphWithNpmResolutionError), + BuildGraphWithNpmResolution( + #[from] crate::graph_util::BuildGraphWithNpmResolutionError, + ), #[class(inherit)] #[error(transparent)] Check(#[from] CheckError), @@ -1006,7 +1009,8 @@ impl ModuleLoader permissions, None, ) - .await.map_err(JsErrorBox::from_err)?; + .await + .map_err(JsErrorBox::from_err)?; update_permit.commit(); Ok(()) } diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs index 857ee0bfe2015a..6a57c4ce6ca7d4 100644 --- a/cli/tools/bench/mod.rs +++ b/cli/tools/bench/mod.rs @@ -7,7 +7,8 @@ use std::time::Duration; use deno_config::glob::WalkEntry; use deno_core::anyhow::anyhow; -use deno_core::error::{AnyError, CoreError}; +use deno_core::error::AnyError; +use deno_core::error::CoreError; use deno_core::error::JsError; use deno_core::futures::future; use deno_core::futures::stream; @@ -170,7 +171,7 @@ async fn bench_specifier( ))?; Ok(()) } - Err(e) => Err(e.into()) + Err(e) => Err(e.into()), } } @@ -228,14 +229,18 @@ async fn bench_specifier_inner( .partial_cmp(&groups.get_index_of(&d2.group).unwrap()) .unwrap() }); - sender.send(BenchEvent::Plan(BenchPlan { - origin: specifier.to_string(), - total: benchmarks.len(), - used_only, - names: benchmarks.iter().map(|(d, _)| d.name.clone()).collect(), - })).map_err(JsErrorBox::from_err)?; + sender + .send(BenchEvent::Plan(BenchPlan { + origin: specifier.to_string(), + total: benchmarks.len(), + used_only, + names: benchmarks.iter().map(|(d, _)| d.name.clone()).collect(), + })) + .map_err(JsErrorBox::from_err)?; for (desc, function) in benchmarks { - sender.send(BenchEvent::Wait(desc.id)).map_err(JsErrorBox::from_err)?; + sender + .send(BenchEvent::Wait(desc.id)) + .map_err(JsErrorBox::from_err)?; let call = worker.js_runtime.call(&function); let result = worker .js_runtime @@ -243,8 +248,11 @@ async fn bench_specifier_inner( .await?; let scope = &mut worker.js_runtime.handle_scope(); let result = v8::Local::new(scope, result); - let result = serde_v8::from_v8::(scope, result).map_err(JsErrorBox::from_err)?; - sender.send(BenchEvent::Result(desc.id, result)).map_err(JsErrorBox::from_err)?; + let result = serde_v8::from_v8::(scope, result) + .map_err(JsErrorBox::from_err)?; + sender + .send(BenchEvent::Result(desc.id, result)) + .map_err(JsErrorBox::from_err)?; } // Ignore `defaultPrevented` of the `beforeunload` event. We don't allow the diff --git a/cli/tools/check.rs b/cli/tools/check.rs index 48a16e9ec561b5..53fd5c5db914de 100644 --- a/cli/tools/check.rs +++ b/cli/tools/check.rs @@ -124,7 +124,9 @@ pub enum CheckError { ConfigFile(#[from] deno_json::ConfigFileError), #[class(inherit)] #[error(transparent)] - ToMaybeJsxImportSourceConfig(#[from] deno_json::ToMaybeJsxImportSourceConfigError), + ToMaybeJsxImportSourceConfig( + #[from] deno_json::ToMaybeJsxImportSourceConfigError, + ), #[class(inherit)] #[error(transparent)] TscExec(#[from] tsc::ExecError), diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index a71142cdefa582..21ee7e152d159b 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -105,6 +105,7 @@ use reporters::JunitTestReporter; use reporters::PrettyTestReporter; use reporters::TapTestReporter; use reporters::TestReporter; + use crate::tools::test::channel::ChannelClosedError; /// How many times we're allowed to spin the event loop before considering something a leak. @@ -645,7 +646,8 @@ async fn configure_main_worker( send_test_event( &worker.js_runtime.op_state(), TestEvent::UncaughtError(specifier.to_string(), Box::new(err)), - ).map_err(JsErrorBox::from_err)?; + ) + .map_err(JsErrorBox::from_err)?; Ok(()) } Err(err) => Err(err), @@ -688,14 +690,11 @@ pub async fn test_specifier( Err(CoreError::Js(err)) => { send_test_event( &worker.js_runtime.op_state(), - TestEvent::UncaughtError( - specifier.to_string(), - Box::new(err), - ), + TestEvent::UncaughtError(specifier.to_string(), Box::new(err)), )?; Ok(()) } - Err(e) => Err(e.into()) + Err(e) => Err(e.into()), } } diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index 9dcf5db0a3eb3f..1473b8a8d91a7e 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -1154,7 +1154,9 @@ pub fn exec(request: Request) -> Result { ..Default::default() }); - runtime.execute_script(located_script_name!(), exec_source).map_err(ExecError::Core)?; + runtime + .execute_script(located_script_name!(), exec_source) + .map_err(ExecError::Core)?; let op_state = runtime.op_state(); let mut op_state = op_state.borrow_mut(); diff --git a/cli/worker.rs b/cli/worker.rs index 235435ec9ea3e5..eee89d663c42fd 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -514,16 +514,15 @@ impl CliMainWorkerFactory { } // use a fake referrer that can be used to discover the package.json if necessary - let referrer = - ModuleSpecifier::from_directory_path(self.shared.fs.cwd().map_err(JsErrorBox::from_err)?) - .unwrap() - .join("package.json")?; + let referrer = ModuleSpecifier::from_directory_path( + self.shared.fs.cwd().map_err(JsErrorBox::from_err)?, + ) + .unwrap() + .join("package.json")?; let package_folder = shared .npm_resolver - .resolve_pkg_folder_from_deno_module_req( - package_ref.req(), - &referrer, - ).map_err(JsErrorBox::from_err)?; + .resolve_pkg_folder_from_deno_module_req(package_ref.req(), &referrer) + .map_err(JsErrorBox::from_err)?; let main_module = self .resolve_binary_entrypoint(&package_folder, package_ref.sub_path())?; diff --git a/runtime/worker.rs b/runtime/worker.rs index 236cf4aa051c24..a649c83d478f2a 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -897,9 +897,7 @@ impl MainWorker { } /// Dispatches process.emit("beforeExit") event for node compat. - pub fn dispatch_process_beforeexit_event( - &mut self, - ) -> Result { + pub fn dispatch_process_beforeexit_event(&mut self) -> Result { let scope = &mut self.js_runtime.handle_scope(); let tc_scope = &mut v8::TryCatch::new(scope); let dispatch_process_beforeexit_event_fn = v8::Local::new( From f922392736a6971474d52066e40b56cc3f8ad7b7 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 7 Jan 2025 14:40:05 -0500 Subject: [PATCH 20/36] Update --- Cargo.lock | 3 ++- cli/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d60cfa6c8c00ab..3592a0bb9d1c91 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1754,13 +1754,14 @@ dependencies = [ [[package]] name = "deno_graph" -version = "0.86.7" +version = "0.86.8" dependencies = [ "async-trait", "capacity_builder 0.5.0", "data-url", "deno_ast", "deno_error", + "deno_media_type", "deno_path_util 0.3.0", "deno_semver", "deno_unsync", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 48b662865980ae..d62b1e43bbdc87 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -75,7 +75,7 @@ deno_config.workspace = true deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } deno_doc = { version = "=0.161.3", features = ["rust", "comrak"] } deno_error.workspace = true -deno_graph = { version = "=0.86.7" } +deno_graph = { version = "=0.86.8" } deno_lint = { version = "=0.68.2", features = ["docs"] } deno_lockfile.workspace = true deno_npm.workspace = true From 357c8ddc8d57bb10fdd6b8283c73b37d03cd15f3 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 7 Jan 2025 15:11:36 -0500 Subject: [PATCH 21/36] updates for windows --- ext/ffi/dlfcn.rs | 4 ++-- resolvers/npm_cache/registry_info.rs | 29 ---------------------------- 2 files changed, 2 insertions(+), 31 deletions(-) diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index bfaf74456f8f94..96e08adcddf419 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -26,11 +26,11 @@ use crate::FfiPermissions; deno_error::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { match err { - dlopen2::Error::NullCharacter(_) => Cow::Borrowed("InvalidData"), + dlopen2::Error::NullCharacter(_) => "InvalidData", dlopen2::Error::OpeningLibraryError(e) => e.get_class(), dlopen2::Error::SymbolGettingError(e) => e.get_class(), dlopen2::Error::AddrNotMatchingDll(e) => e.get_class(), - dlopen2::Error::NullSymbol => Cow::Borrowed("NotFound"), + dlopen2::Error::NullSymbol => "NotFound", } }); diff --git a/resolvers/npm_cache/registry_info.rs b/resolvers/npm_cache/registry_info.rs index e7eaa5e899d399..ece797abba5ecc 100644 --- a/resolvers/npm_cache/registry_info.rs +++ b/resolvers/npm_cache/registry_info.rs @@ -1,6 +1,5 @@ // Copyright 2018-2025 the Deno authors. MIT license. -use std::any::Any; use std::collections::HashMap; use std::collections::HashSet; use std::sync::Arc; @@ -27,7 +26,6 @@ use sys_traits::FsRemoveFile; use sys_traits::FsRename; use sys_traits::SystemRandom; use sys_traits::ThreadSleep; -use thiserror::Error; use crate::remote::maybe_auth_header_for_npm_registry; use crate::NpmCache; @@ -37,33 +35,6 @@ use crate::NpmCacheSetting; type LoadResult = Result>; type LoadFuture = LocalBoxFuture<'static, LoadResult>; -#[derive(Debug, Error)] -#[error(transparent)] -pub struct AnyhowJsError(pub deno_core::error::AnyError); - -impl deno_error::JsErrorClass for AnyhowJsError { - fn get_class(&self) -> std::borrow::Cow<'static, str> { - deno_error::builtin_classes::GENERIC_ERROR.into() - } - - fn get_message(&self) -> std::borrow::Cow<'static, str> { - self.0.to_string().into() - } - - fn get_additional_properties( - &self, - ) -> Vec<( - std::borrow::Cow<'static, str>, - std::borrow::Cow<'static, str>, - )> { - vec![] - } - - fn as_any(&self) -> &dyn Any { - self - } -} - #[derive(Debug, Clone)] enum FutureResult { PackageNotExists, From 1be0c6656229dc1e27e827b9d5e6b814c763db0d Mon Sep 17 00:00:00 2001 From: crowlkats Date: Tue, 7 Jan 2025 21:45:37 +0100 Subject: [PATCH 22/36] fixes --- Cargo.lock | 31 +++++++++++++++++++++++++------ Cargo.toml | 3 +-- cli/main.rs | 2 +- cli/util/result.rs | 10 ++++++++++ 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3592a0bb9d1c91..bc079fa217f794 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1559,7 +1559,7 @@ dependencies = [ "tokio", "url", "v8", - "wasm_dep_analyzer", + "wasm_dep_analyzer 0.2.0", ] [[package]] @@ -1651,7 +1651,9 @@ dependencies = [ [[package]] name = "deno_error" -version = "0.5.2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da6a58de6932a96f84e133c072fd3b525966ee122a71f3efd48bbff2eed5ac" dependencies = [ "deno_error_macro", "libc", @@ -1663,7 +1665,9 @@ dependencies = [ [[package]] name = "deno_error_macro" -version = "0.5.2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46351dff93aed2039407c91e2ded2a5591e42d2795ab3d111288625bb710d3d2" dependencies = [ "proc-macro2", "quote", @@ -1755,19 +1759,21 @@ dependencies = [ [[package]] name = "deno_graph" version = "0.86.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ceaff8e0b1ea21369c1aff28d75fed0c4194896195cf57c2fbee4f7db3e4c42" dependencies = [ + "anyhow", "async-trait", "capacity_builder 0.5.0", "data-url", "deno_ast", - "deno_error", "deno_media_type", "deno_path_util 0.3.0", "deno_semver", "deno_unsync", "encoding_rs", "futures", - "import_map 0.21.0", + "import_map 0.20.1", "indexmap 2.3.0", "log", "monch", @@ -1781,7 +1787,7 @@ dependencies = [ "thiserror 2.0.3", "twox-hash", "url", - "wasm_dep_analyzer", + "wasm_dep_analyzer 0.1.0", ] [[package]] @@ -8642,6 +8648,15 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm_dep_analyzer" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f270206a91783fd90625c8bb0d8fbd459d0b1d1bf209b656f713f01ae7c04b8" +dependencies = [ + "thiserror 1.0.64", +] + [[package]] name = "wasm_dep_analyzer" version = "0.2.0" @@ -9322,3 +9337,7 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "deno_graph" +version = "0.86.7" diff --git a/Cargo.toml b/Cargo.toml index b86e6464ff8825..00c996e758d3a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -119,7 +119,7 @@ dashmap = "5.5.3" data-encoding = "2.3.3" data-url = "=0.3.1" deno_cache_dir = "=0.16.0" -deno_error = "=0.5.2" +deno_error = "=0.5.3" deno_package_json = { version = "0.4.0", default-features = false } deno_unsync = "0.4.2" dlopen2 = "0.6.1" @@ -347,7 +347,6 @@ opt-level = 3 deno_core = { path = "../deno_core/core" } deno_ops = { path = "../deno_core/ops" } serde_v8 = { path = "../deno_core/serde_v8" } -deno_error = { path = "../deno_error" } deno_graph = { path = "../deno_graph" } deno_config = { path = "../deno_config" } denokv_sqlite = { path = "../denokv/sqlite" } diff --git a/cli/main.rs b/cli/main.rs index de412b1add5fdc..7ec3d9f9ccad56 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -201,7 +201,7 @@ async fn run_subcommand(flags: Arc) -> Result { match result { Ok(v) => Ok(v), Err(script_err) => { - if let Some(ResolvePkgFolderFromDenoReqError::Byonm(ByonmResolvePkgFolderFromDenoReqError::UnmatchedReq(_))) = script_err.downcast_ref::() { + if let Some(ResolvePkgFolderFromDenoReqError::Byonm(ByonmResolvePkgFolderFromDenoReqError::UnmatchedReq(_))) = util::result::any_and_jserrorbox_downcast_ref::(dbg!(&script_err)) { if flags.node_modules_dir.is_none() { let mut flags = flags.deref().clone(); let watch = match &flags.subcommand { diff --git a/cli/util/result.rs b/cli/util/result.rs index 6a67416f269338..e9c338e0d34bf3 100644 --- a/cli/util/result.rs +++ b/cli/util/result.rs @@ -1,6 +1,9 @@ // Copyright 2018-2025 the Deno authors. MIT license. use std::convert::Infallible; +use std::fmt::{Debug, Display}; +use deno_core::error::AnyError; +use deno_error::{JsErrorBox, JsErrorClass}; pub trait InfallibleResultExt { fn unwrap_infallible(self) -> T; @@ -14,3 +17,10 @@ impl InfallibleResultExt for Result { } } } + +pub fn any_and_jserrorbox_downcast_ref(err: &AnyError) -> Option<&E> { + err.downcast_ref::() + .or_else(|| { + err.downcast_ref::().and_then(|e| e.as_any().downcast_ref::()) + }) +} From 5da864a6e766e6ad13d4c5964f8fd5b638a17b5c Mon Sep 17 00:00:00 2001 From: crowlkats Date: Tue, 7 Jan 2025 22:13:18 +0100 Subject: [PATCH 23/36] fixes --- Cargo.lock | 23 ++++------------------- ext/ffi/dlfcn.rs | 4 ++-- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bc079fa217f794..ab0dee60cf463b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1559,7 +1559,7 @@ dependencies = [ "tokio", "url", "v8", - "wasm_dep_analyzer 0.2.0", + "wasm_dep_analyzer", ] [[package]] @@ -1759,21 +1759,19 @@ dependencies = [ [[package]] name = "deno_graph" version = "0.86.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ceaff8e0b1ea21369c1aff28d75fed0c4194896195cf57c2fbee4f7db3e4c42" dependencies = [ - "anyhow", "async-trait", "capacity_builder 0.5.0", "data-url", "deno_ast", + "deno_error", "deno_media_type", "deno_path_util 0.3.0", "deno_semver", "deno_unsync", "encoding_rs", "futures", - "import_map 0.20.1", + "import_map 0.21.0", "indexmap 2.3.0", "log", "monch", @@ -1787,7 +1785,7 @@ dependencies = [ "thiserror 2.0.3", "twox-hash", "url", - "wasm_dep_analyzer 0.1.0", + "wasm_dep_analyzer", ] [[package]] @@ -8648,15 +8646,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wasm_dep_analyzer" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f270206a91783fd90625c8bb0d8fbd459d0b1d1bf209b656f713f01ae7c04b8" -dependencies = [ - "thiserror 1.0.64", -] - [[package]] name = "wasm_dep_analyzer" version = "0.2.0" @@ -9337,7 +9326,3 @@ dependencies = [ "cc", "pkg-config", ] - -[[patch.unused]] -name = "deno_graph" -version = "0.86.7" diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index 96e08adcddf419..da5a85e7e3025e 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -26,11 +26,11 @@ use crate::FfiPermissions; deno_error::js_error_wrapper!(dlopen2::Error, JsDlopen2Error, |err| { match err { - dlopen2::Error::NullCharacter(_) => "InvalidData", + dlopen2::Error::NullCharacter(_) => "InvalidData".into(), dlopen2::Error::OpeningLibraryError(e) => e.get_class(), dlopen2::Error::SymbolGettingError(e) => e.get_class(), dlopen2::Error::AddrNotMatchingDll(e) => e.get_class(), - dlopen2::Error::NullSymbol => "NotFound", + dlopen2::Error::NullSymbol => "NotFound".into(), } }); From dc4c33f85d972a4cdb03e4f9bfaf1ad4e2b8eaed Mon Sep 17 00:00:00 2001 From: crowlkats Date: Tue, 7 Jan 2025 23:35:30 +0100 Subject: [PATCH 24/36] fixes --- Cargo.lock | 4 ++-- cli/main.rs | 6 +++--- cli/mainrt.rs | 3 ++- cli/tools/repl/session.rs | 4 ++-- cli/util/file_watcher.rs | 2 +- cli/util/result.rs | 10 +++++++++- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ab0dee60cf463b..fccb7d9efe78e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8454,9 +8454,9 @@ dependencies = [ [[package]] name = "v8" -version = "130.0.5" +version = "130.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eefb620efa1e8f2d0f4dd1b2a72b0924a0a0e8b710e27e7ce7da7fac95c7aae5" +checksum = "fd4499ccf83cf7c0e8dfeaa086044fbe9552b2d401aa142ea3d693276dac277d" dependencies = [ "bindgen", "bitflags 2.6.0", diff --git a/cli/main.rs b/cli/main.rs index 7ec3d9f9ccad56..05db911ffc02b5 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -201,7 +201,7 @@ async fn run_subcommand(flags: Arc) -> Result { match result { Ok(v) => Ok(v), Err(script_err) => { - if let Some(ResolvePkgFolderFromDenoReqError::Byonm(ByonmResolvePkgFolderFromDenoReqError::UnmatchedReq(_))) = util::result::any_and_jserrorbox_downcast_ref::(dbg!(&script_err)) { + if let Some(ResolvePkgFolderFromDenoReqError::Byonm(ByonmResolvePkgFolderFromDenoReqError::UnmatchedReq(_))) = util::result::any_and_jserrorbox_downcast_ref::(&script_err) { if flags.node_modules_dir.is_none() { let mut flags = flags.deref().clone(); let watch = match &flags.subcommand { @@ -372,10 +372,10 @@ fn exit_for_error(error: AnyError) -> ! { let mut error_string = format!("{error:?}"); let mut error_code = 1; - if let Some(CoreError::Js(e)) = error.downcast_ref::() { + if let Some(CoreError::Js(e)) = util::result::any_and_jserrorbox_downcast_ref::(&error) { error_string = format_js_error(e); } else if let Some(SnapshotFromLockfileError::IntegrityCheckFailed(e)) = - error.downcast_ref::() + util::result::any_and_jserrorbox_downcast_ref::(&error) { error_string = e.to_string(); error_code = 10; diff --git a/cli/mainrt.rs b/cli/mainrt.rs index 3b454586cf5862..4b021a14be0641 100644 --- a/cli/mainrt.rs +++ b/cli/mainrt.rs @@ -40,6 +40,7 @@ use indexmap::IndexMap; use standalone::DenoCompileFileSystem; use crate::args::Flags; +use crate::util::result::any_and_jserrorbox_downcast_ref; pub(crate) fn unstable_exit_cb(feature: &str, api_name: &str) { log::error!( @@ -64,7 +65,7 @@ fn unwrap_or_exit(result: Result) -> T { Err(error) => { let mut error_string = format!("{:?}", error); - if let Some(CoreError::Js(js_error)) = error.downcast_ref::() { + if let Some(CoreError::Js(js_error)) = any_and_jserrorbox_downcast_ref::(&error) { error_string = format_js_error(js_error); } diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index e98e53d27f9f4d..e5be2599c88477 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -402,11 +402,11 @@ impl ReplSession { } Err(err) => { // handle a parsing diagnostic - match err.downcast_ref::() { + match crate::util::result::any_and_jserrorbox_downcast_ref::(&err) { Some(diagnostic) => { Ok(EvaluationOutput::Error(format_diagnostic(diagnostic))) } - None => match err.downcast_ref::() { + None => match crate::util::result::any_and_jserrorbox_downcast_ref::(&err) { Some(diagnostics) => Ok(EvaluationOutput::Error( diagnostics .0 diff --git a/cli/util/file_watcher.rs b/cli/util/file_watcher.rs index e1c613309d98bd..bcf66efb674144 100644 --- a/cli/util/file_watcher.rs +++ b/cli/util/file_watcher.rs @@ -81,7 +81,7 @@ where { let result = watch_future.await; if let Err(err) = result { - let error_string = match err.downcast_ref::() { + let error_string = match crate::util::result::any_and_jserrorbox_downcast_ref::(&err) { Some(CoreError::Js(e)) => format_js_error(e), _ => format!("{err:?}"), }; diff --git a/cli/util/result.rs b/cli/util/result.rs index e9c338e0d34bf3..7c2e4ed15aa279 100644 --- a/cli/util/result.rs +++ b/cli/util/result.rs @@ -2,7 +2,7 @@ use std::convert::Infallible; use std::fmt::{Debug, Display}; -use deno_core::error::AnyError; +use deno_core::error::{AnyError, CoreError}; use deno_error::{JsErrorBox, JsErrorClass}; pub trait InfallibleResultExt { @@ -23,4 +23,12 @@ pub fn any_and_jserrorbox_downcast_ref().and_then(|e| e.as_any().downcast_ref::()) }) + .or_else(|| { + err.downcast_ref::().and_then(|e| { + match e { + CoreError::JsNative(e) => e.as_any().downcast_ref::(), + _ => None + } + }) + }) } From 23fc64cb0a8286bc1ab10d1c7f79f6a51cb6a871 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 7 Jan 2025 19:02:27 -0500 Subject: [PATCH 25/36] fix bare node builtin test --- cli/resolver.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/resolver.rs b/cli/resolver.rs index b88f68bc18f965..7873a9cce0e2f1 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -226,10 +226,10 @@ impl CliResolver { ) => match mapped_resolution_error { MappedResolutionError::Specifier(e) => ResolveError::Specifier(e), // deno_graph checks specifically for an ImportMapError - MappedResolutionError::ImportMap(e) => { + MappedResolutionError::ImportMap(e) => ResolveError::ImportMap(e), + MappedResolutionError::Workspace(e) => { ResolveError::Other(JsErrorBox::from_err(e)) } - err => ResolveError::Other(JsErrorBox::from_err(err)), }, err => ResolveError::Other(JsErrorBox::from_err(err)), })?; From 9fb86213d46f97f5e6bc0251cdb80d9de940804e Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 13:44:14 +0100 Subject: [PATCH 26/36] use git deps --- Cargo.lock | 17 ++++++++++++++--- Cargo.toml | 15 ++++++--------- cli/args/mod.rs | 3 ++- cli/lsp/config.rs | 3 ++- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fccb7d9efe78e6..c9a732d236ec65 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1498,6 +1498,7 @@ dependencies = [ [[package]] name = "deno_config" version = "0.42.0" +source = "git+https://github.com/denoland/deno_config?branch=error-rework#82585a97beee45b91aa832986c07bea066ed91db" dependencies = [ "boxed_error", "deno_error", @@ -1528,7 +1529,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.328.0" +version = "0.329.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1eae4be63b3b4d5fa595f368b81c6af22515f583462c08a3f2dc558237d26e9d" dependencies = [ "anyhow", "az", @@ -1759,6 +1762,7 @@ dependencies = [ [[package]] name = "deno_graph" version = "0.86.8" +source = "git+https://github.com/denoland/deno_graph?branch=more-specific-errors#f9554d6e93b5c11fa11dcf8cff2ead96118f4388" dependencies = [ "async-trait", "capacity_builder 0.5.0", @@ -2119,7 +2123,9 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.204.0" +version = "0.205.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64ab466a8778b7cf4049ab036b5ac39a4e3a7677da70dd10d344466c8bbe081" dependencies = [ "indexmap 2.3.0", "proc-macro-rules", @@ -2521,6 +2527,7 @@ dependencies = [ [[package]] name = "denokv_proto" version = "0.8.4" +source = "git+https://github.com/denoland/denokv?branch=error-rework#1538f9fce3df927215d30406e2770647ac7eb436" dependencies = [ "async-trait", "chrono", @@ -2535,6 +2542,7 @@ dependencies = [ [[package]] name = "denokv_remote" version = "0.8.4" +source = "git+https://github.com/denoland/denokv?branch=error-rework#1538f9fce3df927215d30406e2770647ac7eb436" dependencies = [ "async-stream", "async-trait", @@ -2559,6 +2567,7 @@ dependencies = [ [[package]] name = "denokv_sqlite" version = "0.8.4" +source = "git+https://github.com/denoland/denokv?branch=error-rework#1538f9fce3df927215d30406e2770647ac7eb436" dependencies = [ "async-stream", "async-trait", @@ -6834,7 +6843,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.237.0" +version = "0.238.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1009c0b6320f9f352679c57c9b0057888db0a77580e5e3c66e1eeb788290c0" dependencies = [ "deno_error", "num-bigint", diff --git a/Cargo.toml b/Cargo.toml index 00c996e758d3a6..b11219eaaa7962 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,7 @@ repository = "https://github.com/denoland/deno" [workspace.dependencies] deno_ast = { version = "=0.44.0", features = ["transpiling"] } -deno_core = { version = "0.328.0" } +deno_core = { version = "0.329.0" } deno_bench_util = { version = "0.178.0", path = "./bench_util" } deno_config = { version = "=0.42.0", features = ["workspace", "sync"] } @@ -344,11 +344,8 @@ opt-level = 3 opt-level = 3 [patch.crates-io] -deno_core = { path = "../deno_core/core" } -deno_ops = { path = "../deno_core/ops" } -serde_v8 = { path = "../deno_core/serde_v8" } -deno_graph = { path = "../deno_graph" } -deno_config = { path = "../deno_config" } -denokv_sqlite = { path = "../denokv/sqlite" } -denokv_proto = { path = "../denokv/proto" } -denokv_remote = { path = "../denokv/remote" } +deno_graph = { git = "https://github.com/denoland/deno_graph", branch = "more-specific-errors" } +deno_config = { git = "https://github.com/denoland/deno_config", branch = "error-rework" } +denokv_sqlite = { git = "https://github.com/denoland/denokv", branch = "error-rework" } +denokv_proto = { git = "https://github.com/denoland/denokv", branch = "error-rework" } +denokv_remote = { git = "https://github.com/denoland/denokv", branch = "error-rework" } diff --git a/cli/args/mod.rs b/cli/args/mod.rs index cf4bd55ca8a5ab..cc9b37693be599 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -56,6 +56,7 @@ use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_core::serde_json; use deno_core::url::Url; +use deno_error::JsErrorBox; use deno_graph::GraphKind; pub use deno_json::check_warn_tsconfig; use deno_lint::linter::LintConfig as DenoLintConfig; @@ -1108,7 +1109,7 @@ impl CliOptions { }, |path| { std::fs::read_to_string(path) - .map_err(|e| Box::new(e) as Box) + .map_err(JsErrorBox::from_err) }, )?) } diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index 409d61f6a74afa..0cd846815341fb 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -41,6 +41,7 @@ use deno_core::serde_json::json; use deno_core::serde_json::Value; use deno_core::url::Url; use deno_core::ModuleSpecifier; +use deno_error::JsErrorBox; use deno_lint::linter::LintConfig as DenoLintConfig; use deno_npm::npm_rc::ResolvedNpmRc; use deno_package_json::PackageJsonCache; @@ -1575,7 +1576,7 @@ impl ConfigData { pkg_json_dep_resolution, specified_import_map, }, - |path| std::fs::read_to_string(path).map_err(|e| Box::new(e) as _), + |path| std::fs::read_to_string(path).map_err(JsErrorBox::from_err), ) .inspect_err(|err| { lsp_warn!( From ef031d02b77c36224e49498b0e1431dc50441406 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 13:44:39 +0100 Subject: [PATCH 27/36] fmt --- cli/args/mod.rs | 5 +---- cli/main.rs | 8 ++++++-- cli/mainrt.rs | 4 +++- cli/tools/repl/session.rs | 32 ++++++++++++++++++++------------ cli/util/file_watcher.rs | 11 +++++++---- cli/util/result.rs | 31 ++++++++++++++++++++----------- 6 files changed, 57 insertions(+), 34 deletions(-) diff --git a/cli/args/mod.rs b/cli/args/mod.rs index cc9b37693be599..ebd321a20a5228 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1107,10 +1107,7 @@ impl CliOptions { pkg_json_dep_resolution, specified_import_map: cli_arg_specified_import_map, }, - |path| { - std::fs::read_to_string(path) - .map_err(JsErrorBox::from_err) - }, + |path| std::fs::read_to_string(path).map_err(JsErrorBox::from_err), )?) } diff --git a/cli/main.rs b/cli/main.rs index 05db911ffc02b5..6bbefcf956a63c 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -372,10 +372,14 @@ fn exit_for_error(error: AnyError) -> ! { let mut error_string = format!("{error:?}"); let mut error_code = 1; - if let Some(CoreError::Js(e)) = util::result::any_and_jserrorbox_downcast_ref::(&error) { + if let Some(CoreError::Js(e)) = + util::result::any_and_jserrorbox_downcast_ref::(&error) + { error_string = format_js_error(e); } else if let Some(SnapshotFromLockfileError::IntegrityCheckFailed(e)) = - util::result::any_and_jserrorbox_downcast_ref::(&error) + util::result::any_and_jserrorbox_downcast_ref::( + &error, + ) { error_string = e.to_string(); error_code = 10; diff --git a/cli/mainrt.rs b/cli/mainrt.rs index 4b021a14be0641..8eea3f85ed5ae4 100644 --- a/cli/mainrt.rs +++ b/cli/mainrt.rs @@ -65,7 +65,9 @@ fn unwrap_or_exit(result: Result) -> T { Err(error) => { let mut error_string = format!("{:?}", error); - if let Some(CoreError::Js(js_error)) = any_and_jserrorbox_downcast_ref::(&error) { + if let Some(CoreError::Js(js_error)) = + any_and_jserrorbox_downcast_ref::(&error) + { error_string = format_js_error(js_error); } diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index e5be2599c88477..ed9dd61e2d579a 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -402,21 +402,29 @@ impl ReplSession { } Err(err) => { // handle a parsing diagnostic - match crate::util::result::any_and_jserrorbox_downcast_ref::(&err) { + match crate::util::result::any_and_jserrorbox_downcast_ref::< + deno_ast::ParseDiagnostic, + >(&err) + { Some(diagnostic) => { Ok(EvaluationOutput::Error(format_diagnostic(diagnostic))) } - None => match crate::util::result::any_and_jserrorbox_downcast_ref::(&err) { - Some(diagnostics) => Ok(EvaluationOutput::Error( - diagnostics - .0 - .iter() - .map(format_diagnostic) - .collect::>() - .join("\n\n"), - )), - None => Err(err), - }, + None => { + match crate::util::result::any_and_jserrorbox_downcast_ref::< + ParseDiagnosticsError, + >(&err) + { + Some(diagnostics) => Ok(EvaluationOutput::Error( + diagnostics + .0 + .iter() + .map(format_diagnostic) + .collect::>() + .join("\n\n"), + )), + None => Err(err), + } + } } } } diff --git a/cli/util/file_watcher.rs b/cli/util/file_watcher.rs index bcf66efb674144..65963214b9827e 100644 --- a/cli/util/file_watcher.rs +++ b/cli/util/file_watcher.rs @@ -81,10 +81,13 @@ where { let result = watch_future.await; if let Err(err) = result { - let error_string = match crate::util::result::any_and_jserrorbox_downcast_ref::(&err) { - Some(CoreError::Js(e)) => format_js_error(e), - _ => format!("{err:?}"), - }; + let error_string = + match crate::util::result::any_and_jserrorbox_downcast_ref::( + &err, + ) { + Some(CoreError::Js(e)) => format_js_error(e), + _ => format!("{err:?}"), + }; log::error!( "{}: {}", colors::red_bold("error"), diff --git a/cli/util/result.rs b/cli/util/result.rs index 7c2e4ed15aa279..0c1a75b1ce0c08 100644 --- a/cli/util/result.rs +++ b/cli/util/result.rs @@ -1,9 +1,13 @@ // Copyright 2018-2025 the Deno authors. MIT license. use std::convert::Infallible; -use std::fmt::{Debug, Display}; -use deno_core::error::{AnyError, CoreError}; -use deno_error::{JsErrorBox, JsErrorClass}; +use std::fmt::Debug; +use std::fmt::Display; + +use deno_core::error::AnyError; +use deno_core::error::CoreError; +use deno_error::JsErrorBox; +use deno_error::JsErrorClass; pub trait InfallibleResultExt { fn unwrap_infallible(self) -> T; @@ -18,17 +22,22 @@ impl InfallibleResultExt for Result { } } -pub fn any_and_jserrorbox_downcast_ref(err: &AnyError) -> Option<&E> { - err.downcast_ref::() +pub fn any_and_jserrorbox_downcast_ref< + E: Display + Debug + Send + Sync + 'static, +>( + err: &AnyError, +) -> Option<&E> { + err + .downcast_ref::() .or_else(|| { - err.downcast_ref::().and_then(|e| e.as_any().downcast_ref::()) + err + .downcast_ref::() + .and_then(|e| e.as_any().downcast_ref::()) }) .or_else(|| { - err.downcast_ref::().and_then(|e| { - match e { - CoreError::JsNative(e) => e.as_any().downcast_ref::(), - _ => None - } + err.downcast_ref::().and_then(|e| match e { + CoreError::JsNative(e) => e.as_any().downcast_ref::(), + _ => None, }) }) } From 2e50f1fe9fb184dfd264560bf1beb409b6b12231 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 15:10:39 +0100 Subject: [PATCH 28/36] fix lsp tests --- cli/lsp/diagnostics.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs index 1f393757dad05f..cab35bb051b748 100644 --- a/cli/lsp/diagnostics.rs +++ b/cli/lsp/diagnostics.rs @@ -1299,8 +1299,8 @@ impl DenoDiagnostic { let mut message; message = enhanced_resolution_error_message(err); if let deno_graph::ResolutionError::ResolverError {error, ..} = err{ - if let ResolveError::Other(resolve_error, ..) = (*error).as_ref() { - if let Some(ImportMapErrorKind::UnmappedBareSpecifier(specifier, _)) = resolve_error.as_any().downcast_ref::().map(|e| &**e) { + if let ResolveError::ImportMap(importmap) = (*error).as_ref() { + if let ImportMapErrorKind::UnmappedBareSpecifier(specifier, _) = &**importmap { if specifier.chars().next().unwrap_or('\0') == '@'{ let hint = format!("\nHint: Use [deno add {}] to add the dependency.", specifier); message.push_str(hint.as_str()); From 1bd9539f4e6f51fcab4cca2c8bf38d41e86ce276 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 15:25:24 +0100 Subject: [PATCH 29/36] clean --- cli/lsp/diagnostics.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs index cab35bb051b748..0982ff5ceb01ac 100644 --- a/cli/lsp/diagnostics.rs +++ b/cli/lsp/diagnostics.rs @@ -21,7 +21,6 @@ use deno_core::unsync::spawn_blocking; use deno_core::unsync::JoinHandle; use deno_core::url::Url; use deno_core::ModuleSpecifier; -use deno_error::JsErrorClass; use deno_graph::source::ResolveError; use deno_graph::Resolution; use deno_graph::ResolutionError; @@ -35,7 +34,6 @@ use deno_semver::jsr::JsrPackageReqReference; use deno_semver::npm::NpmPackageReqReference; use deno_semver::package::PackageReq; use import_map::ImportMap; -use import_map::ImportMapError; use import_map::ImportMapErrorKind; use log::error; use tokio::sync::mpsc; From 624686f069a56c68c7f000a3b0429449398be223 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 8 Jan 2025 09:28:08 -0500 Subject: [PATCH 30/36] Lint. --- cli/npm/managed/resolvers/common/bin_entries.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cli/npm/managed/resolvers/common/bin_entries.rs b/cli/npm/managed/resolvers/common/bin_entries.rs index 823480c105678d..bc69786b6c4f02 100644 --- a/cli/npm/managed/resolvers/common/bin_entries.rs +++ b/cli/npm/managed/resolvers/common/bin_entries.rs @@ -58,6 +58,7 @@ pub enum BinEntriesError { #[inherit] source: std::io::Error, }, + #[cfg(unix)] #[class(inherit)] #[error("Setting permissions on '{path}'")] Permissions { @@ -75,6 +76,7 @@ pub enum BinEntriesError { #[inherit] source: Box, }, + #[cfg(unix)] #[class(inherit)] #[error("Setting permissions on '{path}'")] RemoveBinSymlink { From 70bae74e7efc0ccba34f5167c1b30e6c3339e64e Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 17:23:24 +0100 Subject: [PATCH 31/36] try deno_core patch --- Cargo.lock | 24 +++++++++---------- Cargo.toml | 12 +++++----- .../specs/jsr/import_https_url/analyzable.out | 2 +- .../jsr/import_https_url/nonanalyzable.out | 2 +- .../frozen_new_dep_dynamic_http.out | 2 +- .../frozen_new_dep_dynamic_jsr.out | 2 +- .../frozen_new_dep_dynamic_npm.out | 2 +- .../npmrc_tarball_other_server/fail/main.out | 6 ++--- .../permission/allow_import_worker/denied.out | 2 +- .../permissions_blob_local.ts.out | 2 +- .../permissions_blob_remote.ts.out | 2 +- .../permissions_data_local.ts.out | 2 +- .../permissions_data_remote.ts.out | 2 +- .../permissions_remote_remote.ts.out | 2 +- .../error_005_missing_dynamic_import.ts.out | 2 +- .../error_015_dynamic_import_permissions.out | 2 +- .../dynamic_error.out | 2 +- .../permissions_dynamic_remote.ts.out | 2 +- 18 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c9a732d236ec65..a579abe56de251 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1530,8 +1530,7 @@ dependencies = [ [[package]] name = "deno_core" version = "0.329.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eae4be63b3b4d5fa595f368b81c6af22515f583462c08a3f2dc558237d26e9d" +source = "git+https://github.com/crowlKats/deno_core?branch=revert-js_class_and_message_to_exception#6a60de991b3f93af8abb94265772aadf95da5228" dependencies = [ "anyhow", "az", @@ -2124,8 +2123,7 @@ dependencies = [ [[package]] name = "deno_ops" version = "0.205.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64ab466a8778b7cf4049ab036b5ac39a4e3a7677da70dd10d344466c8bbe081" +source = "git+https://github.com/crowlKats/deno_core?branch=revert-js_class_and_message_to_exception#6a60de991b3f93af8abb94265772aadf95da5228" dependencies = [ "indexmap 2.3.0", "proc-macro-rules", @@ -2526,8 +2524,9 @@ dependencies = [ [[package]] name = "denokv_proto" -version = "0.8.4" -source = "git+https://github.com/denoland/denokv?branch=error-rework#1538f9fce3df927215d30406e2770647ac7eb436" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5b77de4d3b9215e14624d4f4eb16cb38c0810e3f5860ba3b3fc47d0537f9a4d" dependencies = [ "async-trait", "chrono", @@ -2541,8 +2540,9 @@ dependencies = [ [[package]] name = "denokv_remote" -version = "0.8.4" -source = "git+https://github.com/denoland/denokv?branch=error-rework#1538f9fce3df927215d30406e2770647ac7eb436" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6497c28eec268ed99f1e8664f0842935f02d1508529c67d94c57ca5d893d743" dependencies = [ "async-stream", "async-trait", @@ -2566,8 +2566,9 @@ dependencies = [ [[package]] name = "denokv_sqlite" -version = "0.8.4" -source = "git+https://github.com/denoland/denokv?branch=error-rework#1538f9fce3df927215d30406e2770647ac7eb436" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc0f21a450a35eb85760761401fddf9bfff9840127be07a6ca5c31863127913d" dependencies = [ "async-stream", "async-trait", @@ -6844,8 +6845,7 @@ dependencies = [ [[package]] name = "serde_v8" version = "0.238.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1009c0b6320f9f352679c57c9b0057888db0a77580e5e3c66e1eeb788290c0" +source = "git+https://github.com/crowlKats/deno_core?branch=revert-js_class_and_message_to_exception#6a60de991b3f93af8abb94265772aadf95da5228" dependencies = [ "deno_error", "num-bigint", diff --git a/Cargo.toml b/Cargo.toml index b11219eaaa7962..fcd68411b52124 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,10 +63,10 @@ deno_terminal = "0.2.0" napi_sym = { version = "0.114.0", path = "./ext/napi/sym" } test_util = { package = "test_server", path = "./tests/util/server" } -denokv_proto = "0.8.4" -denokv_remote = "0.8.4" +denokv_proto = "0.9.0" +denokv_remote = "0.9.0" # denokv_sqlite brings in bundled sqlite if we don't disable the default features -denokv_sqlite = { default-features = false, version = "0.8.4" } +denokv_sqlite = { default-features = false, version = "0.9.0" } # exts deno_broadcast_channel = { version = "0.178.0", path = "./ext/broadcast_channel" } @@ -346,6 +346,6 @@ opt-level = 3 [patch.crates-io] deno_graph = { git = "https://github.com/denoland/deno_graph", branch = "more-specific-errors" } deno_config = { git = "https://github.com/denoland/deno_config", branch = "error-rework" } -denokv_sqlite = { git = "https://github.com/denoland/denokv", branch = "error-rework" } -denokv_proto = { git = "https://github.com/denoland/denokv", branch = "error-rework" } -denokv_remote = { git = "https://github.com/denoland/denokv", branch = "error-rework" } +deno_core = { git = "https://github.com/crowlKats/deno_core", branch = "revert-js_class_and_message_to_exception" } +deno_ops = { git = "https://github.com/crowlKats/deno_core", branch = "revert-js_class_and_message_to_exception" } +serde_v8 = { git = "https://github.com/crowlKats/deno_core", branch = "revert-js_class_and_message_to_exception" } diff --git a/tests/specs/jsr/import_https_url/analyzable.out b/tests/specs/jsr/import_https_url/analyzable.out index d3a08406115292..dd1ca58b428a11 100644 --- a/tests/specs/jsr/import_https_url/analyzable.out +++ b/tests/specs/jsr/import_https_url/analyzable.out @@ -2,7 +2,7 @@ Download http://127.0.0.1:4250/@denotest/import-https-url/meta.json Download http://127.0.0.1:4250/@denotest/import-https-url/1.0.0_meta.json Download http://127.0.0.1:4250/@denotest/import-https-url/1.0.0/analyzable.ts Download http://localhost:4545/welcome.ts -error: Uncaught (in promise) Error: Importing http://localhost:4545/welcome.ts blocked. JSR packages cannot import non-JSR remote modules for security reasons. +error: Uncaught (in promise) TypeError: Importing http://localhost:4545/welcome.ts blocked. JSR packages cannot import non-JSR remote modules for security reasons. await import("http://localhost:4545/welcome.ts"); ^ at async http://127.0.0.1:4250/@denotest/import-https-url/1.0.0/analyzable.ts:1:1 diff --git a/tests/specs/jsr/import_https_url/nonanalyzable.out b/tests/specs/jsr/import_https_url/nonanalyzable.out index 5c903fde4d6b61..4ae04996c95cdf 100644 --- a/tests/specs/jsr/import_https_url/nonanalyzable.out +++ b/tests/specs/jsr/import_https_url/nonanalyzable.out @@ -1,7 +1,7 @@ Download http://127.0.0.1:4250/@denotest/import-https-url/meta.json Download http://127.0.0.1:4250/@denotest/import-https-url/1.0.0_meta.json Download http://127.0.0.1:4250/@denotest/import-https-url/1.0.0/unanalyzable.ts -error: Uncaught (in promise) Error: Importing http://localhost:4545/welcome.ts blocked. JSR packages cannot import non-JSR remote modules for security reasons. +error: Uncaught (in promise) TypeError: Importing http://localhost:4545/welcome.ts blocked. JSR packages cannot import non-JSR remote modules for security reasons. await import(nonAnalyzableUrl()); ^ at async http://127.0.0.1:4250/@denotest/import-https-url/1.0.0/unanalyzable.ts:5:1 diff --git a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out index fb8e9798605a95..7c86a23cf3b900 100644 --- a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out +++ b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_http.out @@ -1,5 +1,5 @@ Download http://localhost:4545/welcome.ts -error: Uncaught (in promise) Error: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. +error: Uncaught (in promise) TypeError: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. changes: 10 | - } 10 | + }, diff --git a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out index c0fffcde7f40fe..c22b529edb9983 100644 --- a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out +++ b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_jsr.out @@ -1,7 +1,7 @@ Download http://127.0.0.1:4250/@denotest/add/meta.json Download http://127.0.0.1:4250/@denotest/add/1.0.0_meta.json Download http://127.0.0.1:4250/@denotest/add/1.0.0/mod.ts -error: Uncaught (in promise) Error: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. +error: Uncaught (in promise) TypeError: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. changes: 4 | - "npm:@denotest/add@1": "1.0.0" 4 | + "jsr:@denotest/add@1": "1.0.0", diff --git a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out index c89851a09ca45f..4fc016c57cc573 100644 --- a/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out +++ b/tests/specs/lockfile/frozen_lockfile/frozen_new_dep_dynamic_npm.out @@ -1,5 +1,5 @@ Download http://localhost:4260/@denotest%2fsubtract -error: Uncaught (in promise) Error: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. +error: Uncaught (in promise) TypeError: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it. changes: 4 | - "npm:@denotest/add@1": "1.0.0" 4 | + "npm:@denotest/add@1": "1.0.0", diff --git a/tests/specs/npm/npmrc_tarball_other_server/fail/main.out b/tests/specs/npm/npmrc_tarball_other_server/fail/main.out index d49bc148ea4d50..d48e263f2267b4 100644 --- a/tests/specs/npm/npmrc_tarball_other_server/fail/main.out +++ b/tests/specs/npm/npmrc_tarball_other_server/fail/main.out @@ -1,11 +1,11 @@ Download http://localhost:4261/@denotest%2ftarballs-privateserver2 Download http://localhost:4262/@denotest/tarballs-privateserver2/1.0.0.tgz -error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0' +error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0'. Caused by: No auth for tarball URI, but present for scoped registry. - + Tarball URI: http://localhost:4262/@denotest/tarballs-privateserver2/1.0.0.tgz Scope URI: http://localhost:4261/ - + More info here: https://github.com/npm/cli/wiki/%22No-auth-for-URI,-but-auth-present-for-scoped-registry%22 diff --git a/tests/specs/permission/allow_import_worker/denied.out b/tests/specs/permission/allow_import_worker/denied.out index 2671f7199e143d..af44ae21ee180c 100644 --- a/tests/specs/permission/allow_import_worker/denied.out +++ b/tests/specs/permission/allow_import_worker/denied.out @@ -1,4 +1,4 @@ -error: Uncaught (in worker "") (in promise) Error: JSR package manifest for '@std/assert' failed to load. Requires import access to "127.0.0.1:4250", run again with the --allow-import flag +error: Uncaught (in worker "") (in promise) TypeError: JSR package manifest for '@std/assert' failed to load. Requires import access to "127.0.0.1:4250", run again with the --allow-import flag await import(specifier); ^ at async file:///[WILDLINE] diff --git a/tests/specs/run/dynamic_import_permissions_blob_local/permissions_blob_local.ts.out b/tests/specs/run/dynamic_import_permissions_blob_local/permissions_blob_local.ts.out index aa9009a551a344..b7b246ba2b85d4 100644 --- a/tests/specs/run/dynamic_import_permissions_blob_local/permissions_blob_local.ts.out +++ b/tests/specs/run/dynamic_import_permissions_blob_local/permissions_blob_local.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) Error: Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag +error: Uncaught (in promise) TypeError: Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag at blob:null/[WILDCARD]:1:8 await import(URL.createObjectURL(blob)); ^ diff --git a/tests/specs/run/dynamic_import_permissions_blob_remote/permissions_blob_remote.ts.out b/tests/specs/run/dynamic_import_permissions_blob_remote/permissions_blob_remote.ts.out index ada4b8220c7e57..287cf9998510f7 100644 --- a/tests/specs/run/dynamic_import_permissions_blob_remote/permissions_blob_remote.ts.out +++ b/tests/specs/run/dynamic_import_permissions_blob_remote/permissions_blob_remote.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) Error: Requires import access to "example.com:443", run again with the --allow-import flag +error: Uncaught (in promise) TypeError: Requires import access to "example.com:443", run again with the --allow-import flag at blob:null/[WILDCARD]:1:8 await import(URL.createObjectURL(blob)); ^ diff --git a/tests/specs/run/dynamic_import_permissions_data_local/permissions_data_local.ts.out b/tests/specs/run/dynamic_import_permissions_data_local/permissions_data_local.ts.out index fdffa0ea0b5ef0..bf8c1948e6c667 100644 --- a/tests/specs/run/dynamic_import_permissions_data_local/permissions_data_local.ts.out +++ b/tests/specs/run/dynamic_import_permissions_data_local/permissions_data_local.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) Error: Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag +error: Uncaught (in promise) TypeError: Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag at data:application/javascript;base64,[WILDCARD]:1:8 await import(`data:application/javascript;base64,${btoa(code)}`); ^ diff --git a/tests/specs/run/dynamic_import_permissions_data_remote/permissions_data_remote.ts.out b/tests/specs/run/dynamic_import_permissions_data_remote/permissions_data_remote.ts.out index 022758526b731a..c8de9382a53006 100644 --- a/tests/specs/run/dynamic_import_permissions_data_remote/permissions_data_remote.ts.out +++ b/tests/specs/run/dynamic_import_permissions_data_remote/permissions_data_remote.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) Error: Requires import access to "example.com:443", run again with the --allow-import flag +error: Uncaught (in promise) TypeError: Requires import access to "example.com:443", run again with the --allow-import flag at data:application/javascript;base64,aW1wb3J0ICJodHRwczovL2V4YW1wbGUuY29tL3NvbWUvZmlsZS50cyI7:1:8 await import(`data:application/javascript;base64,${btoa(code)}`); ^ diff --git a/tests/specs/run/dynamic_import_permissions_remote_remote/permissions_remote_remote.ts.out b/tests/specs/run/dynamic_import_permissions_remote_remote/permissions_remote_remote.ts.out index 9c27ba93b0120d..16fe3bbdd6604d 100644 --- a/tests/specs/run/dynamic_import_permissions_remote_remote/permissions_remote_remote.ts.out +++ b/tests/specs/run/dynamic_import_permissions_remote_remote/permissions_remote_remote.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) Error: Requires import access to "example.com:443", run again with the --allow-import flag +error: Uncaught (in promise) TypeError: Requires import access to "example.com:443", run again with the --allow-import flag at http://localhost:4545/dynamic_import/static_remote.ts:2:8 await import( ^ diff --git a/tests/specs/run/error_005_missing_dynamic_import/error_005_missing_dynamic_import.ts.out b/tests/specs/run/error_005_missing_dynamic_import/error_005_missing_dynamic_import.ts.out index d371e45b5a6260..55e4a8524542bc 100644 --- a/tests/specs/run/error_005_missing_dynamic_import/error_005_missing_dynamic_import.ts.out +++ b/tests/specs/run/error_005_missing_dynamic_import/error_005_missing_dynamic_import.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) Error: Module not found "[WILDCARD]/bad-module.ts". +error: Uncaught (in promise) TypeError: Module not found "[WILDCARD]/bad-module.ts". const _badModule = await import("./bad-module.ts"); ^ at async file://[WILDCARD]/error_005_missing_dynamic_import.ts:2:22 diff --git a/tests/specs/run/error_015_dynamic_import_permissions/error_015_dynamic_import_permissions.out b/tests/specs/run/error_015_dynamic_import_permissions/error_015_dynamic_import_permissions.out index 05e86ed2aa3923..8ef2f6f1e4f51d 100644 --- a/tests/specs/run/error_015_dynamic_import_permissions/error_015_dynamic_import_permissions.out +++ b/tests/specs/run/error_015_dynamic_import_permissions/error_015_dynamic_import_permissions.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) Error: Requires import access to "example.com:80", run again with the --allow-import flag +error: Uncaught (in promise) TypeError: Requires import access to "example.com:80", run again with the --allow-import flag await import("" + "http://example.com/mod4.js"); ^ at async file://[WILDCARD]/error_015_dynamic_import_permissions.js:2:3 diff --git a/tests/specs/run/import_attributes_dynamic_error/dynamic_error.out b/tests/specs/run/import_attributes_dynamic_error/dynamic_error.out index c38efe7f3decce..24f29de72d793d 100644 --- a/tests/specs/run/import_attributes_dynamic_error/dynamic_error.out +++ b/tests/specs/run/import_attributes_dynamic_error/dynamic_error.out @@ -1,4 +1,4 @@ -error: Uncaught (in promise) Error: Attempted to load JSON module without specifying "type": "json" attribute in the import statement. +error: Uncaught (in promise) TypeError: Attempted to load JSON module without specifying "type": "json" attribute in the import statement. const data = await import("./data.json"); ^ at async [WILDCARD]dynamic_error.ts:1:14 diff --git a/tests/specs/worker/worker_permissions_dynamic_remote/permissions_dynamic_remote.ts.out b/tests/specs/worker/worker_permissions_dynamic_remote/permissions_dynamic_remote.ts.out index 2a647b1dd92ae0..fa4232efd06477 100644 --- a/tests/specs/worker/worker_permissions_dynamic_remote/permissions_dynamic_remote.ts.out +++ b/tests/specs/worker/worker_permissions_dynamic_remote/permissions_dynamic_remote.ts.out @@ -1,4 +1,4 @@ -error: Uncaught (in worker "") (in promise) Error: Requires import access to "example.com:443", run again with the --allow-import flag +error: Uncaught (in worker "") (in promise) TypeError: Requires import access to "example.com:443", run again with the --allow-import flag await import("" + "https://example.com/some/file.ts"); ^ at async http://localhost:4545/workers/dynamic_remote.ts:2:1 From 35f961b0dc9a1cd3779599edbf0abd26ae9e066c Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 17:54:51 +0100 Subject: [PATCH 32/36] fix --- tests/specs/npm/npmrc_tarball_other_server/fail/main.out | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/specs/npm/npmrc_tarball_other_server/fail/main.out b/tests/specs/npm/npmrc_tarball_other_server/fail/main.out index d48e263f2267b4..8bedb451ab2114 100644 --- a/tests/specs/npm/npmrc_tarball_other_server/fail/main.out +++ b/tests/specs/npm/npmrc_tarball_other_server/fail/main.out @@ -1,6 +1,6 @@ Download http://localhost:4261/@denotest%2ftarballs-privateserver2 Download http://localhost:4262/@denotest/tarballs-privateserver2/1.0.0.tgz -error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0'. +error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0' Caused by: No auth for tarball URI, but present for scoped registry. From 8cf8f155aa1db1d967a5d7a83d8466c4628c163d Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 18:28:57 +0100 Subject: [PATCH 33/36] fix --- tests/specs/npm/npmrc_tarball_other_server/fail/main.out | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/specs/npm/npmrc_tarball_other_server/fail/main.out b/tests/specs/npm/npmrc_tarball_other_server/fail/main.out index 8bedb451ab2114..d49bc148ea4d50 100644 --- a/tests/specs/npm/npmrc_tarball_other_server/fail/main.out +++ b/tests/specs/npm/npmrc_tarball_other_server/fail/main.out @@ -4,8 +4,8 @@ error: Failed caching npm package '@denotest/tarballs-privateserver2@1.0.0' Caused by: No auth for tarball URI, but present for scoped registry. - + Tarball URI: http://localhost:4262/@denotest/tarballs-privateserver2/1.0.0.tgz Scope URI: http://localhost:4261/ - + More info here: https://github.com/npm/cli/wiki/%22No-auth-for-URI,-but-auth-present-for-scoped-registry%22 From a7be9b87b52639879d1d2f500bd705df077575f0 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 22:54:29 +0100 Subject: [PATCH 34/36] update deps --- Cargo.lock | 95 +++++++++++++++++++----------------------------- Cargo.toml | 11 +----- cli/Cargo.toml | 4 +- cli/tools/doc.rs | 84 +++++++++++++++++++++++------------------- 4 files changed, 87 insertions(+), 107 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a579abe56de251..267112911d8d1d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1275,7 +1275,7 @@ dependencies = [ "deno_npm", "deno_npm_cache", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "deno_resolver", "deno_runtime", "deno_semver", @@ -1301,7 +1301,7 @@ dependencies = [ "http-body 1.0.0", "http-body-util", "hyper-util", - "import_map 0.21.0", + "import_map", "indexmap 2.3.0", "jsonc-parser", "junction", @@ -1469,7 +1469,7 @@ dependencies = [ "data-url", "deno_error", "deno_media_type", - "deno_path_util 0.3.0", + "deno_path_util", "http 1.1.0", "indexmap 2.3.0", "log", @@ -1497,17 +1497,18 @@ dependencies = [ [[package]] name = "deno_config" -version = "0.42.0" -source = "git+https://github.com/denoland/deno_config?branch=error-rework#82585a97beee45b91aa832986c07bea066ed91db" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c4c11bd51ef6738cabfc3c53f16c209a0b8615cb1e4e5bf3b14e3b5deebfe21" dependencies = [ "boxed_error", "deno_error", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "glob", "ignore", - "import_map 0.21.0", + "import_map", "indexmap 2.3.0", "jsonc-parser", "log", @@ -1529,8 +1530,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.329.0" -source = "git+https://github.com/crowlKats/deno_core?branch=revert-js_class_and_message_to_exception#6a60de991b3f93af8abb94265772aadf95da5228" +version = "0.330.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd38bbbd68ed873165ccb630322704b44140d3a8c8d50f898beac4d1a8a3358c" dependencies = [ "anyhow", "az", @@ -1624,19 +1626,20 @@ dependencies = [ [[package]] name = "deno_doc" -version = "0.161.3" +version = "0.164.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353a39c70d248af04600928cefc8066a9e4535fb6e7d7c518411e5efc822819f" +checksum = "ad1edb02603c7e8a4003c84af2482a05e5eda3a14f1af275434fda89223f054d" dependencies = [ "anyhow", "cfg-if", "comrak", "deno_ast", "deno_graph", - "deno_path_util 0.2.2", + "deno_path_util", + "deno_terminal 0.2.0", "handlebars", "html-escape", - "import_map 0.20.1", + "import_map", "indexmap 2.3.0", "itoa", "js-sys", @@ -1685,7 +1688,7 @@ dependencies = [ "data-url", "deno_core", "deno_error", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "deno_tls", "dyn-clone", @@ -1744,7 +1747,7 @@ dependencies = [ "deno_core", "deno_error", "deno_io", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "filetime", "junction", @@ -1760,8 +1763,9 @@ dependencies = [ [[package]] name = "deno_graph" -version = "0.86.8" -source = "git+https://github.com/denoland/deno_graph?branch=more-specific-errors#f9554d6e93b5c11fa11dcf8cff2ead96118f4388" +version = "0.87.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56d4eb4b7c81ae920b6d18c45a1866924f93110caee80bbbc362dc28143f2bb" dependencies = [ "async-trait", "capacity_builder 0.5.0", @@ -1769,12 +1773,12 @@ dependencies = [ "deno_ast", "deno_error", "deno_media_type", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "deno_unsync", "encoding_rs", "futures", - "import_map 0.21.0", + "import_map", "indexmap 2.3.0", "log", "monch", @@ -1866,7 +1870,7 @@ dependencies = [ "deno_core", "deno_error", "deno_fetch", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "deno_tls", "denokv_proto", @@ -1998,7 +2002,7 @@ dependencies = [ "deno_media_type", "deno_net", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "deno_whoami", "der", @@ -2100,7 +2104,7 @@ dependencies = [ "deno_core", "deno_error", "deno_npm", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "deno_unsync", "faster-hex", @@ -2122,8 +2126,9 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.205.0" -source = "git+https://github.com/crowlKats/deno_core?branch=revert-js_class_and_message_to_exception#6a60de991b3f93af8abb94265772aadf95da5228" +version = "0.206.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c25ffa9d088ea00748dbef870bba110ac22ebf8cf7b2e9eb288409c5d852af3" dependencies = [ "indexmap 2.3.0", "proc-macro-rules", @@ -2144,7 +2149,7 @@ checksum = "e1d3c0f699ba2040669204ce24ab73720499fc290af843e4ce0fc8a9b3d67735" dependencies = [ "boxed_error", "deno_error", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "indexmap 2.3.0", "serde", @@ -2154,18 +2159,6 @@ dependencies = [ "url", ] -[[package]] -name = "deno_path_util" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b02c7d341e1b2cf089daff0f4fb2b4be8f3b5511b1d96040b3f7ed63a66c737b" -dependencies = [ - "deno_error", - "percent-encoding", - "thiserror 2.0.3", - "url", -] - [[package]] name = "deno_path_util" version = "0.3.0" @@ -2186,7 +2179,7 @@ dependencies = [ "capacity_builder 0.5.0", "deno_core", "deno_error", - "deno_path_util 0.3.0", + "deno_path_util", "deno_terminal 0.2.0", "fqdn", "libc", @@ -2211,7 +2204,7 @@ dependencies = [ "deno_error", "deno_media_type", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "node_resolver", "sys_traits", @@ -2243,7 +2236,7 @@ dependencies = [ "deno_napi", "deno_net", "deno_node", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "deno_telemetry", "deno_terminal 0.2.0", @@ -4343,21 +4336,6 @@ dependencies = [ "png", ] -[[package]] -name = "import_map" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351a787decc56f38d65d16d32687265045d6d6a4531b4a0e1b649def3590354e" -dependencies = [ - "indexmap 2.3.0", - "log", - "percent-encoding", - "serde", - "serde_json", - "thiserror 1.0.64", - "url", -] - [[package]] name = "import_map" version = "0.21.0" @@ -5119,7 +5097,7 @@ dependencies = [ "deno_error", "deno_media_type", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "futures", "lazy-regex", "once_cell", @@ -6844,8 +6822,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.238.0" -source = "git+https://github.com/crowlKats/deno_core?branch=revert-js_class_and_message_to_exception#6a60de991b3f93af8abb94265772aadf95da5228" +version = "0.239.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa6d882827148e5d9052d9d8d6d1c9d6ad426ed00cab46cafb8c07a0e7126a" dependencies = [ "deno_error", "num-bigint", diff --git a/Cargo.toml b/Cargo.toml index fcd68411b52124..75572162c4cc67 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,10 +48,10 @@ repository = "https://github.com/denoland/deno" [workspace.dependencies] deno_ast = { version = "=0.44.0", features = ["transpiling"] } -deno_core = { version = "0.329.0" } +deno_core = { version = "0.330.0" } deno_bench_util = { version = "0.178.0", path = "./bench_util" } -deno_config = { version = "=0.42.0", features = ["workspace", "sync"] } +deno_config = { version = "=0.43.0", features = ["workspace", "sync"] } deno_lockfile = "=0.24.0" deno_media_type = { version = "0.2.3", features = ["module_specifier"] } deno_npm = "=0.27.0" @@ -342,10 +342,3 @@ opt-level = 3 opt-level = 3 [profile.release.package.zstd-sys] opt-level = 3 - -[patch.crates-io] -deno_graph = { git = "https://github.com/denoland/deno_graph", branch = "more-specific-errors" } -deno_config = { git = "https://github.com/denoland/deno_config", branch = "error-rework" } -deno_core = { git = "https://github.com/crowlKats/deno_core", branch = "revert-js_class_and_message_to_exception" } -deno_ops = { git = "https://github.com/crowlKats/deno_core", branch = "revert-js_class_and_message_to_exception" } -serde_v8 = { git = "https://github.com/crowlKats/deno_core", branch = "revert-js_class_and_message_to_exception" } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index d62b1e43bbdc87..b77c904c40f86f 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -73,9 +73,9 @@ deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposa deno_cache_dir.workspace = true deno_config.workspace = true deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } -deno_doc = { version = "=0.161.3", features = ["rust", "comrak"] } +deno_doc = { version = "=0.164.0", features = ["rust", "comrak"] } deno_error.workspace = true -deno_graph = { version = "=0.86.8" } +deno_graph = { version = "=0.87.0" } deno_lint = { version = "=0.68.2", features = ["docs"] } deno_lockfile.workspace = true deno_npm.workspace = true diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index 2fa944b362c9ba..7bee109de9e385 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -62,10 +62,11 @@ async fn generate_doc_nodes_for_builtin_types( )], Vec::new(), ); + let roots = vec![source_file_specifier.clone()]; let mut graph = deno_graph::ModuleGraph::new(GraphKind::TypesOnly); graph .build( - vec![source_file_specifier.clone()], + roots.clone(), &loader, deno_graph::BuildOptions { imports: Vec::new(), @@ -85,14 +86,13 @@ async fn generate_doc_nodes_for_builtin_types( let doc_parser = doc::DocParser::new( &graph, parser, + &roots, doc::DocParserOptions { diagnostics: false, private: doc_flags.private, }, )?; - let nodes = doc_parser.parse_module(&source_file_specifier)?.definitions; - - Ok(IndexMap::from([(source_file_specifier, nodes)])) + Ok(doc_parser.parse()?) } pub async fn doc( @@ -158,19 +158,13 @@ pub async fn doc( let doc_parser = doc::DocParser::new( &graph, &capturing_parser, + &module_specifiers, doc::DocParserOptions { private: doc_flags.private, diagnostics: doc_flags.lint, }, )?; - - let mut doc_nodes_by_url = - IndexMap::with_capacity(module_specifiers.len()); - - for module_specifier in module_specifiers { - let nodes = doc_parser.parse_with_reexports(&module_specifier)?; - doc_nodes_by_url.insert(module_specifier, nodes); - } + let doc_nodes_by_url = doc_parser.parse()?; if doc_flags.lint { let diagnostics = doc_parser.take_diagnostics(); @@ -191,29 +185,9 @@ pub async fn doc( .await?; let (_, deno_ns) = deno_ns.into_iter().next().unwrap(); - let short_path = Rc::new(ShortPath::new( - ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap(), - None, - None, - None, - )); - - deno_doc::html::compute_namespaced_symbols( - &deno_ns - .into_iter() - .map(|node| deno_doc::html::DocNodeWithContext { - origin: short_path.clone(), - ns_qualifiers: Rc::new([]), - kind_with_drilldown: - deno_doc::html::DocNodeKindWithDrilldown::Other(node.kind()), - inner: Rc::new(node), - drilldown_name: None, - parent: None, - }) - .collect::>(), - ) + Some(deno_ns) } else { - Default::default() + None }; let mut main_entrypoint = None; @@ -393,7 +367,7 @@ impl UsageComposer for DocComposer { fn generate_docs_directory( doc_nodes_by_url: IndexMap>, html_options: &DocHtmlFlag, - deno_ns: std::collections::HashMap, Option>>, + built_in_types: Option>, rewrite_map: Option>, main_entrypoint: Option, ) -> Result<(), AnyError> { @@ -426,12 +400,12 @@ fn generate_docs_directory( None }; - let options = deno_doc::html::GenerateOptions { + let mut options = deno_doc::html::GenerateOptions { package_name: html_options.name.clone(), main_entrypoint, rewrite_map, href_resolver: Rc::new(DocResolver { - deno_ns, + deno_ns: Default::default(), strip_trailing_html: html_options.strip_trailing_html, }), usage_composer: Rc::new(DocComposer), @@ -450,8 +424,42 @@ fn generate_docs_directory( ) })), }; + + if let Some(built_in_types) = built_in_types { + let ctx = deno_doc::html::GenerateCtx::create_basic(deno_doc::html::GenerateOptions { + package_name: None, + main_entrypoint: Some(ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap()), + href_resolver: Rc::new(DocResolver { + deno_ns: Default::default(), + strip_trailing_html: false, + }), + usage_composer: Rc::new(DocComposer), + rewrite_map: Default::default(), + category_docs: Default::default(), + disable_search: Default::default(), + symbol_redirect_map: Default::default(), + default_symbol_map: Default::default(), + markdown_renderer: deno_doc::html::comrak::create_renderer( + None, None, None, + ), + markdown_stripper: Rc::new(deno_doc::html::comrak::strip), + head_inject: None, + }, IndexMap::from([(ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap(), built_in_types)]))?; + + let deno_ns = deno_doc::html::compute_namespaced_symbols( + &ctx, + Box::new(ctx.doc_nodes.values().next().unwrap().iter().map(std::borrow::Cow::Borrowed)) + ); + + options.href_resolver = Rc::new(DocResolver { + deno_ns, + strip_trailing_html: html_options.strip_trailing_html, + }); + } + + let ctx = deno_doc::html::GenerateCtx::create_basic(options, doc_nodes_by_url)?; - let mut files = deno_doc::html::generate(options, doc_nodes_by_url) + let mut files = deno_doc::html::generate(ctx) .context("Failed to generate HTML documentation")?; files.insert("prism.js".to_string(), PRISM_JS.to_string()); From cf37831bc0d1a71bbb184606f7089787f3647c09 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 22:57:05 +0100 Subject: [PATCH 35/36] fmt --- cli/tools/doc.rs | 63 ++++++++++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index 7bee109de9e385..114c8f958a8e9b 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -424,40 +424,57 @@ fn generate_docs_directory( ) })), }; - + if let Some(built_in_types) = built_in_types { - let ctx = deno_doc::html::GenerateCtx::create_basic(deno_doc::html::GenerateOptions { - package_name: None, - main_entrypoint: Some(ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap()), - href_resolver: Rc::new(DocResolver { - deno_ns: Default::default(), - strip_trailing_html: false, - }), - usage_composer: Rc::new(DocComposer), - rewrite_map: Default::default(), - category_docs: Default::default(), - disable_search: Default::default(), - symbol_redirect_map: Default::default(), - default_symbol_map: Default::default(), - markdown_renderer: deno_doc::html::comrak::create_renderer( - None, None, None, - ), - markdown_stripper: Rc::new(deno_doc::html::comrak::strip), - head_inject: None, - }, IndexMap::from([(ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap(), built_in_types)]))?; + let ctx = deno_doc::html::GenerateCtx::create_basic( + deno_doc::html::GenerateOptions { + package_name: None, + main_entrypoint: Some( + ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap(), + ), + href_resolver: Rc::new(DocResolver { + deno_ns: Default::default(), + strip_trailing_html: false, + }), + usage_composer: Rc::new(DocComposer), + rewrite_map: Default::default(), + category_docs: Default::default(), + disable_search: Default::default(), + symbol_redirect_map: Default::default(), + default_symbol_map: Default::default(), + markdown_renderer: deno_doc::html::comrak::create_renderer( + None, None, None, + ), + markdown_stripper: Rc::new(deno_doc::html::comrak::strip), + head_inject: None, + }, + IndexMap::from([( + ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap(), + built_in_types, + )]), + )?; let deno_ns = deno_doc::html::compute_namespaced_symbols( &ctx, - Box::new(ctx.doc_nodes.values().next().unwrap().iter().map(std::borrow::Cow::Borrowed)) + Box::new( + ctx + .doc_nodes + .values() + .next() + .unwrap() + .iter() + .map(std::borrow::Cow::Borrowed), + ), ); - + options.href_resolver = Rc::new(DocResolver { deno_ns, strip_trailing_html: html_options.strip_trailing_html, }); } - let ctx = deno_doc::html::GenerateCtx::create_basic(options, doc_nodes_by_url)?; + let ctx = + deno_doc::html::GenerateCtx::create_basic(options, doc_nodes_by_url)?; let mut files = deno_doc::html::generate(ctx) .context("Failed to generate HTML documentation")?; From b001f6e4976e46ae2550f0bed4ebfa169ba9ae08 Mon Sep 17 00:00:00 2001 From: crowlkats Date: Wed, 8 Jan 2025 23:09:29 +0100 Subject: [PATCH 36/36] fix lock --- Cargo.lock | 157 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 91 insertions(+), 66 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e20bdad7e17dbf..d55c1a19aa3b38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1275,7 +1275,7 @@ dependencies = [ "deno_npm", "deno_npm_cache", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "deno_resolver", "deno_runtime", "deno_semver", @@ -1434,6 +1434,7 @@ version = "0.178.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "thiserror 2.0.3", "tokio", "uuid", @@ -1445,6 +1446,7 @@ version = "0.116.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "rusqlite", "serde", "sha2", @@ -1467,7 +1469,7 @@ dependencies = [ "data-url", "deno_error", "deno_media_type", - "deno_path_util 0.3.0", + "deno_path_util", "http 1.1.0", "indexmap 2.3.0", "log", @@ -1486,6 +1488,7 @@ name = "deno_canvas" version = "0.53.0" dependencies = [ "deno_core", + "deno_error", "deno_webgpu", "image", "serde", @@ -1494,13 +1497,14 @@ dependencies = [ [[package]] name = "deno_config" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45aaf31e58ca915d5c0746bf8e2d07b94635154ad9e5afe5ff265cae6187b19" +checksum = "6c4c11bd51ef6738cabfc3c53f16c209a0b8615cb1e4e5bf3b14e3b5deebfe21" dependencies = [ - "anyhow", + "boxed_error", + "deno_error", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "glob", "ignore", @@ -1513,7 +1517,7 @@ dependencies = [ "serde", "serde_json", "sys_traits", - "thiserror 1.0.64", + "thiserror 2.0.3", "url", ] @@ -1526,9 +1530,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.327.0" +version = "0.330.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf8dff204b9c2415deb47b9f30d4d38b0925d0d88f1f9074e8e76f59e6d7ded" +checksum = "fd38bbbd68ed873165ccb630322704b44140d3a8c8d50f898beac4d1a8a3358c" dependencies = [ "anyhow", "az", @@ -1539,6 +1543,7 @@ dependencies = [ "capacity_builder 0.1.3", "cooked-waker", "deno_core_icudata", + "deno_error", "deno_ops", "deno_unsync", "futures", @@ -1554,6 +1559,7 @@ dependencies = [ "smallvec", "sourcemap 8.0.1", "static_assertions", + "thiserror 2.0.3", "tokio", "url", "v8", @@ -1574,6 +1580,7 @@ dependencies = [ "async-trait", "chrono", "deno_core", + "deno_error", "saffron", "thiserror 2.0.3", "tokio", @@ -1592,6 +1599,7 @@ dependencies = [ "ctr", "curve25519-dalek", "deno_core", + "deno_error", "deno_web", "ed448-goldilocks", "elliptic-curve", @@ -1618,16 +1626,17 @@ dependencies = [ [[package]] name = "deno_doc" -version = "0.161.3" +version = "0.164.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353a39c70d248af04600928cefc8066a9e4535fb6e7d7c518411e5efc822819f" +checksum = "ad1edb02603c7e8a4003c84af2482a05e5eda3a14f1af275434fda89223f054d" dependencies = [ "anyhow", "cfg-if", "comrak", "deno_ast", "deno_graph", - "deno_path_util 0.2.2", + "deno_path_util", + "deno_terminal 0.2.0", "handlebars", "html-escape", "import_map", @@ -1647,22 +1656,23 @@ dependencies = [ [[package]] name = "deno_error" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199c66ffd17ee1a948904d33f3d3f364573951c1f9fb3f859bfe7770bf33862a" +checksum = "c4da6a58de6932a96f84e133c072fd3b525966ee122a71f3efd48bbff2eed5ac" dependencies = [ "deno_error_macro", "libc", "serde", "serde_json", + "tokio", "url", ] [[package]] name = "deno_error_macro" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd99df6ae75443907e1f959fc42ec6dcea67a7bd083e76cf23a117102c9a2ce" +checksum = "46351dff93aed2039407c91e2ded2a5591e42d2795ab3d111288625bb710d3d2" dependencies = [ "proc-macro2", "quote", @@ -1677,7 +1687,8 @@ dependencies = [ "bytes", "data-url", "deno_core", - "deno_path_util 0.3.0", + "deno_error", + "deno_path_util", "deno_permissions", "deno_tls", "dyn-clone", @@ -1710,6 +1721,7 @@ name = "deno_ffi" version = "0.171.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "dlopen2", "dynasmrt", @@ -1733,8 +1745,9 @@ dependencies = [ "base32", "boxed_error", "deno_core", + "deno_error", "deno_io", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "filetime", "junction", @@ -1750,17 +1763,17 @@ dependencies = [ [[package]] name = "deno_graph" -version = "0.86.9" +version = "0.87.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa96b7d353c0d36b108ec504272b148792f48dccaf29f302b39c46b43457bb94" +checksum = "f56d4eb4b7c81ae920b6d18c45a1866924f93110caee80bbbc362dc28143f2bb" dependencies = [ - "anyhow", "async-trait", "capacity_builder 0.5.0", "data-url", "deno_ast", + "deno_error", "deno_media_type", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "deno_unsync", "encoding_rs", @@ -1794,6 +1807,7 @@ dependencies = [ "bytes", "cache_control", "deno_core", + "deno_error", "deno_net", "deno_websocket", "flate2", @@ -1827,6 +1841,7 @@ version = "0.94.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "filetime", "fs3", "libc", @@ -1853,8 +1868,9 @@ dependencies = [ "bytes", "chrono", "deno_core", + "deno_error", "deno_fetch", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "deno_tls", "denokv_proto", @@ -1920,6 +1936,7 @@ name = "deno_napi" version = "0.115.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "libc", "libloading 0.7.4", @@ -1948,6 +1965,7 @@ name = "deno_net" version = "0.176.0" dependencies = [ "deno_core", + "deno_error", "deno_permissions", "deno_tls", "hickory-proto", @@ -1977,13 +1995,14 @@ dependencies = [ "const-oid", "data-encoding", "deno_core", + "deno_error", "deno_fetch", "deno_fs", "deno_io", "deno_media_type", "deno_net", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "deno_whoami", "der", @@ -2085,7 +2104,7 @@ dependencies = [ "deno_core", "deno_error", "deno_npm", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "deno_unsync", "faster-hex", @@ -2107,10 +2126,11 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.203.0" +version = "0.206.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b146ca74cac431843486ade58e2accc16c11315fb2c6934590a52a73c56b7ec3" +checksum = "4c25ffa9d088ea00748dbef870bba110ac22ebf8cf7b2e9eb288409c5d852af3" dependencies = [ + "indexmap 2.3.0", "proc-macro-rules", "proc-macro2", "quote", @@ -2118,7 +2138,7 @@ dependencies = [ "strum", "strum_macros", "syn 2.0.87", - "thiserror 1.0.64", + "thiserror 2.0.3", ] [[package]] @@ -2129,7 +2149,7 @@ checksum = "e1d3c0f699ba2040669204ce24ab73720499fc290af843e4ce0fc8a9b3d67735" dependencies = [ "boxed_error", "deno_error", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "indexmap 2.3.0", "serde", @@ -2139,18 +2159,6 @@ dependencies = [ "url", ] -[[package]] -name = "deno_path_util" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b02c7d341e1b2cf089daff0f4fb2b4be8f3b5511b1d96040b3f7ed63a66c737b" -dependencies = [ - "deno_error", - "percent-encoding", - "thiserror 2.0.3", - "url", -] - [[package]] name = "deno_path_util" version = "0.3.0" @@ -2170,7 +2178,8 @@ version = "0.43.0" dependencies = [ "capacity_builder 0.5.0", "deno_core", - "deno_path_util 0.3.0", + "deno_error", + "deno_path_util", "deno_terminal 0.2.0", "fqdn", "libc", @@ -2192,9 +2201,10 @@ dependencies = [ "boxed_error", "dashmap", "deno_config", + "deno_error", "deno_media_type", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "deno_semver", "node_resolver", "sys_traits", @@ -2216,6 +2226,7 @@ dependencies = [ "deno_core", "deno_cron", "deno_crypto", + "deno_error", "deno_fetch", "deno_ffi", "deno_fs", @@ -2225,7 +2236,7 @@ dependencies = [ "deno_napi", "deno_net", "deno_node", - "deno_path_util 0.3.0", + "deno_path_util", "deno_permissions", "deno_telemetry", "deno_terminal 0.2.0", @@ -2314,6 +2325,7 @@ version = "0.6.0" dependencies = [ "async-trait", "deno_core", + "deno_error", "http-body-util", "hyper 1.4.1", "hyper-util", @@ -2326,6 +2338,7 @@ dependencies = [ "opentelemetry_sdk", "pin-project", "serde", + "thiserror 2.0.3", "tokio", ] @@ -2354,6 +2367,7 @@ name = "deno_tls" version = "0.171.0" dependencies = [ "deno_core", + "deno_error", "deno_native_certs", "rustls", "rustls-pemfile", @@ -2406,6 +2420,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_webidl", "thiserror 2.0.3", "urlpattern", @@ -2421,6 +2436,7 @@ dependencies = [ "deno_bench_util", "deno_console", "deno_core", + "deno_error", "deno_permissions", "deno_url", "deno_webidl", @@ -2438,6 +2454,7 @@ name = "deno_webgpu" version = "0.151.0" dependencies = [ "deno_core", + "deno_error", "raw-window-handle", "serde", "thiserror 2.0.3", @@ -2460,6 +2477,7 @@ version = "0.189.0" dependencies = [ "bytes", "deno_core", + "deno_error", "deno_net", "deno_permissions", "deno_tls", @@ -2481,6 +2499,7 @@ name = "deno_webstorage" version = "0.179.0" dependencies = [ "deno_core", + "deno_error", "deno_web", "rusqlite", "thiserror 2.0.3", @@ -2498,13 +2517,13 @@ dependencies = [ [[package]] name = "denokv_proto" -version = "0.8.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ba1f99ed11a9c11e868a8521b1f71a7e1aba785d7f42ea9ecbdc01146c89ec" +checksum = "d5b77de4d3b9215e14624d4f4eb16cb38c0810e3f5860ba3b3fc47d0537f9a4d" dependencies = [ - "anyhow", "async-trait", "chrono", + "deno_error", "futures", "num-bigint", "prost", @@ -2514,15 +2533,15 @@ dependencies = [ [[package]] name = "denokv_remote" -version = "0.8.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ed833073189e8f6d03155fe3b05a024e75e29d8a28a4c2e9ec3b5c925e727b" +checksum = "c6497c28eec268ed99f1e8664f0842935f02d1508529c67d94c57ca5d893d743" dependencies = [ - "anyhow", "async-stream", "async-trait", "bytes", "chrono", + "deno_error", "denokv_proto", "futures", "http 1.1.0", @@ -2531,6 +2550,7 @@ dependencies = [ "rand", "serde", "serde_json", + "thiserror 2.0.3", "tokio", "tokio-util", "url", @@ -2539,14 +2559,14 @@ dependencies = [ [[package]] name = "denokv_sqlite" -version = "0.8.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b790f01d1302d53a0c3cbd27de88a06b3abd64ec8ab8673924e490541c7c713" +checksum = "dc0f21a450a35eb85760761401fddf9bfff9840127be07a6ca5c31863127913d" dependencies = [ - "anyhow", "async-stream", "async-trait", "chrono", + "deno_error", "denokv_proto", "futures", "hex", @@ -2555,7 +2575,7 @@ dependencies = [ "rand", "rusqlite", "serde_json", - "thiserror 1.0.64", + "thiserror 2.0.3", "tokio", "tokio-stream", "uuid", @@ -4331,16 +4351,18 @@ dependencies = [ [[package]] name = "import_map" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351a787decc56f38d65d16d32687265045d6d6a4531b4a0e1b649def3590354e" +checksum = "1215d4d92511fbbdaea50e750e91f2429598ef817f02b579158e92803b52c00a" dependencies = [ + "boxed_error", + "deno_error", "indexmap 2.3.0", "log", "percent-encoding", "serde", "serde_json", - "thiserror 1.0.64", + "thiserror 2.0.3", "url", ] @@ -5106,9 +5128,10 @@ dependencies = [ "anyhow", "async-trait", "boxed_error", + "deno_error", "deno_media_type", "deno_package_json", - "deno_path_util 0.3.0", + "deno_path_util", "futures", "lazy-regex", "once_cell", @@ -6846,14 +6869,15 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.236.0" +version = "0.239.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e23b3abce64010612f88f4ff689a959736f99eb3dc0dbf1c7903434b8bd8cda5" +checksum = "3caa6d882827148e5d9052d9d8d6d1c9d6ad426ed00cab46cafb8c07a0e7126a" dependencies = [ + "deno_error", "num-bigint", "serde", "smallvec", - "thiserror 1.0.64", + "thiserror 2.0.3", "v8", ] @@ -8506,9 +8530,9 @@ dependencies = [ [[package]] name = "v8" -version = "130.0.2" +version = "130.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee0be58935708fa4d7efb970c6cf9f2d9511d24ee24246481a65b6ee167348d" +checksum = "a511192602f7b435b0a241c1947aa743eb7717f20a9195f4b5e8ed1952e01db1" dependencies = [ "bindgen", "bitflags 2.6.0", @@ -8706,11 +8730,12 @@ dependencies = [ [[package]] name = "wasm_dep_analyzer" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f270206a91783fd90625c8bb0d8fbd459d0b1d1bf209b656f713f01ae7c04b8" +checksum = "2eeee3bdea6257cc36d756fa745a70f9d393571e47d69e0ed97581676a5369ca" dependencies = [ - "thiserror 1.0.64", + "deno_error", + "thiserror 2.0.3", ] [[package]]