From bfc143a5ac233a0db26ff1e29dd7b94a697d862d Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Sun, 10 Nov 2024 02:43:04 -0800 Subject: [PATCH 01/97] fix(ext/webstorage): use error class for sqlite error case (#26806) Fixes #26797 --- runtime/errors.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/errors.rs b/runtime/errors.rs index 5716944b7e3940..0c26e0e47acf66 100644 --- a/runtime/errors.rs +++ b/runtime/errors.rs @@ -623,7 +623,7 @@ fn get_ffi_call_error_class(e: &CallError) -> &'static str { fn get_webstorage_class_name(e: &WebStorageError) -> &'static str { match e { WebStorageError::ContextNotSupported => "DOMExceptionNotSupportedError", - WebStorageError::Sqlite(_) => todo!(), + WebStorageError::Sqlite(_) => "Error", WebStorageError::Io(e) => get_io_error_class(e), WebStorageError::StorageExceeded => "DOMExceptionQuotaExceededError", } From b955d037406828c2ab74966dc9a6f3f882854982 Mon Sep 17 00:00:00 2001 From: Yoshiya Hinosawa Date: Mon, 11 Nov 2024 17:16:33 +0900 Subject: [PATCH 02/97] test(ext/node): prevent running the same test cases twice (#26812) --- tests/node_compat/test.ts | 4 ++++ 1 file changed, 4 insertions(+) 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), From 90236d67c591d4344a9ca0e5d23a4906d08308e5 Mon Sep 17 00:00:00 2001 From: Satya Rohith Date: Tue, 12 Nov 2024 12:10:41 +0530 Subject: [PATCH 03/97] fix(ext/http): prefer brotli for `accept-encoding: gzip, deflate, br, zstd` (#26814) Closes https://github.com/denoland/deno/issues/26813 --- ext/http/http_next.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/http/http_next.rs b/ext/http/http_next.rs index c55e868352dd33..1251f00cc065ae 100644 --- a/ext/http/http_next.rs +++ b/ext/http/http_next.rs @@ -564,6 +564,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, _ => (), From c3c2b379669b17e5fdcbe5e62662404ca22c71c6 Mon Sep 17 00:00:00 2001 From: Yoshiya Hinosawa Date: Tue, 12 Nov 2024 19:54:47 +0900 Subject: [PATCH 04/97] fix(ext/node): add autoSelectFamily option to net.createConnection (#26661) --- ext/node/polyfills/internal/errors.ts | 26 +- ext/node/polyfills/internal/net.ts | 1 + ext/node/polyfills/internal_binding/uv.ts | 2 + ext/node/polyfills/net.ts | 490 +++++++++++++++++- tests/node_compat/config.jsonc | 2 + tests/node_compat/runner/TODO.md | 1 - tests/node_compat/test/common/index.js | 1 + .../parallel/test-net-autoselectfamily.js | 312 +++++++++++ tests/unit_node/http2_test.ts | 5 + 9 files changed, 824 insertions(+), 16 deletions(-) create mode 100644 tests/node_compat/test/parallel/test-net-autoselectfamily.js diff --git a/ext/node/polyfills/internal/errors.ts b/ext/node/polyfills/internal/errors.ts index 5a3d4437a177dd..962ca86e928946 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`); @@ -2633,11 +2638,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; 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/tests/node_compat/config.jsonc b/tests/node_compat/config.jsonc index 16951d9edec172..664adaedfa0c49 100644 --- a/tests/node_compat/config.jsonc +++ b/tests/node_compat/config.jsonc @@ -77,6 +77,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", @@ -404,6 +405,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/runner/TODO.md b/tests/node_compat/runner/TODO.md index 231a4f62c9bd7e..27c2ef3e789059 100644 --- a/tests/node_compat/runner/TODO.md +++ b/tests/node_compat/runner/TODO.md @@ -1767,7 +1767,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/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/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/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", From 3b99f6833cd3354da20785fdcf01e7409e610175 Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Tue, 12 Nov 2024 17:10:07 +0530 Subject: [PATCH 05/97] fix(ext/websocket): initialize `error` attribute of WebSocket ErrorEvent (#26796) Fixes https://github.com/denoland/deno/issues/26216 Not required by the spec but Discord.js depends on it, see https://github.com/denoland/deno/issues/26216#issuecomment-2466060306 --- ext/websocket/01_websocket.js | 6 +++++- tests/unit/websocket_test.ts | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js index 58f4773101bc62..468999b95dda62 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, @@ -488,8 +489,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/tests/unit/websocket_test.ts b/tests/unit/websocket_test.ts index 7db876b1774a45..3aafe8da22dbfa 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 = () => { From 7d326c269cfb8463d530ee5dd4bcabb7499e1ba7 Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Tue, 12 Nov 2024 13:15:32 +0000 Subject: [PATCH 06/97] fix(lsp): skip code action edits that can't be converted (#26831) --- cli/lsp/analysis.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index 98215855c905e6..683a59c2199cb3 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; @@ -747,8 +748,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, From 7179bdcc772577e44566acded5b165946d73fe4b Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Tue, 12 Nov 2024 21:25:49 +0530 Subject: [PATCH 07/97] fix(ext/node): handle `--allow-sys=inspector` (#26836) `op_inspector_open` checks for "inspector" as one of the allowed sys value. --- runtime/permissions/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/permissions/lib.rs b/runtime/permissions/lib.rs index 6480f4bf586094..3aa5aabb3d41fa 100644 --- a/runtime/permissions/lib.rs +++ b/runtime/permissions/lib.rs @@ -1461,7 +1461,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)), From 15b6baff33bb2405b174c5eaa919f9219421d513 Mon Sep 17 00:00:00 2001 From: "Soc Virnyl S. Estela" Date: Wed, 13 Nov 2024 00:25:59 +0800 Subject: [PATCH 08/97] chore: update zeromq to 0.4.1 (#26811) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: #26810 --------- Signed-off-by: Soc Virnyl Estela Co-authored-by: Divy Srivastava Co-authored-by: Bartek IwaƄczuk --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b86b8acd945759..6f7799bac829be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8485,9 +8485,9 @@ dependencies = [ [[package]] name = "zeromq" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0560d00172817b7f7c2265060783519c475702ae290b154115ca75e976d4d0" +checksum = "6a4528179201f6eecf211961a7d3276faa61554c82651ecc66387f68fc3004bd" dependencies = [ "async-trait", "asynchronous-codec", diff --git a/Cargo.toml b/Cargo.toml index d83ca2e4138a5e..e372e542bbbd1b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -204,7 +204,7 @@ webpki-root-certs = "0.26.5" webpki-roots = "0.26" which = "4.2.5" yoke = { version = "0.7.4", features = ["derive"] } -zeromq = { version = "=0.4.0", default-features = false, features = ["tcp-transport", "tokio-runtime"] } +zeromq = { version = "=0.4.1", default-features = false, features = ["tcp-transport", "tokio-runtime"] } zstd = "=0.12.4" # crypto From c371b2a492c60f47ce6b96b4df129c5d01706e1b Mon Sep 17 00:00:00 2001 From: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> Date: Tue, 12 Nov 2024 09:23:39 -0800 Subject: [PATCH 09/97] fix(install): re-setup bin entries after running lifecycle scripts (#26752) Fixes #26677 Some packages (like supabase) declare bin entries that don't exist until lifecycle scripts are run. For instance, the lifecycle script downloads a binary file which serves as a bin entrypoint. Unfortunately you can't just defer setting up the bin entries until after lifecycle scripts have run, because the scripts may rely on them. I looked into this, and PNPM just re-links bin entries after running lifecycle scripts. I think that's about the best we can do as well. Note that we'll only re-setup bin entries for packages whose lifecycle scripts we run. This should limit the performance cost, as typically a given project will not have many lifecycle scripts (and of those, many of them probably don't have bin entries to set up). --- .../managed/resolvers/common/bin_entries.rs | 139 ++++++++++++++---- .../resolvers/common/lifecycle_scripts.rs | 57 +++++-- cli/npm/managed/resolvers/local.rs | 29 +++- .../1.0.0/install.mjs | 3 + .../1.0.0/package.json | 10 ++ .../__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 + 11 files changed, 253 insertions(+), 47 deletions(-) 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/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 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/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/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 From 01f3451869f56dc0651d8cd30bf8540aeb462c04 Mon Sep 17 00:00:00 2001 From: Richard Carson Date: Tue, 12 Nov 2024 12:49:49 -0500 Subject: [PATCH 10/97] chore: make fields public on `PermissionDeniedError` and `deno_kv::KvConfig` (#26798) A few small changes to avoid needing unsafe mem transmutes to instantiate the extensions --------- Signed-off-by: Richard Carson --- ext/kv/config.rs | 21 +++++++++++---------- runtime/permissions/lib.rs | 4 ++-- 2 files changed, 13 insertions(+), 12 deletions(-) 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/runtime/permissions/lib.rs b/runtime/permissions/lib.rs index 3aa5aabb3d41fa..71ef7d22899be9 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 { From 119910f3395cf073b7acf6a31c207daf597917f1 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 12 Nov 2024 17:14:19 -0500 Subject: [PATCH 11/97] fix(permissions): say to use --allow-run instead of --allow-all (#26842) For https://github.com/denoland/deno/issues/26839 --- runtime/ops/process.rs | 19 +++++++++++-------- 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 ++-- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index de3141f1f933dd..ee2f660dccf80c 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -756,14 +756,17 @@ 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( - "NotCapable", - format!( - "Requires --allow-all permissions to spawn subprocess with {} environment variable{}.", - env_var_names.join(", "), - if env_var_names.len() != 1 { "s" } else { "" } - ) - ))); + return Err(CheckRunPermissionError::Other( + deno_core::error::custom_error( + "NotCapable", + format!( + "Requires --allow-run permissions to spawn subprocess with {0} environment variable{1}. Alternatively, spawn with {2} environment variable{1} unset.", + env_var_names.join(", "), + if env_var_names.len() != 1 { "s" } else { "" }, + if env_var_names.len() != 1 { "these" } else { "the" } + ), + ), + )); } permissions.check_run(cmd, api_name)?; } 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" } From 43812ee8ff0eb2584c7beb18639da14d96d06817 Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Wed, 13 Nov 2024 08:02:09 +0530 Subject: [PATCH 12/97] fix(ext/node): process.getBuiltinModule (#26833) Closes https://github.com/denoland/deno/issues/26832 --- ext/node/polyfills/01_require.js | 20 +++++++++++++++++++- ext/node/polyfills/process.ts | 14 ++++++++++++-- tests/unit_node/process_test.ts | 6 ++++++ 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/ext/node/polyfills/01_require.js b/ext/node/polyfills/01_require.js index d818bb57278b50..0d267ca444b825 100644 --- a/ext/node/polyfills/01_require.js +++ b/ext/node/polyfills/01_require.js @@ -1233,6 +1233,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 +1345,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/process.ts b/ext/node/polyfills/process.ts index 2605fa6d1ad743..bf626e410056bc 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; 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); +}); From 7becd83a3828b35331d0fcb82c64146e520f154b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Czerniawski?= <33061335+lczerniawski@users.noreply.github.com> Date: Wed, 13 Nov 2024 05:35:04 +0100 Subject: [PATCH 13/97] feat(ext/fs): add ctime to Deno.stats and use it in node compat layer (#24801) This PR fixes #24453, by introducing a ctime (using ctime for UNIX and ChangeTime for Windows) to Deno.stats. Co-authored-by: Yoshiya Hinosawa --- cli/standalone/virtual_fs.rs | 3 +++ cli/tsc/dts/lib.deno.ns.d.ts | 7 ++++-- ext/fs/30_fs.js | 6 +++-- ext/fs/in_memory_fs.rs | 2 ++ ext/fs/ops.rs | 4 ++++ ext/fs/std_fs.rs | 34 ++++++++++++++++++++++++---- ext/io/fs.rs | 12 ++++++++++ ext/node/polyfills/_fs/_fs_stat.ts | 10 ++++---- tests/unit/stat_test.ts | 18 +++++++++++++-- tests/unit_node/_fs/_fs_stat_test.ts | 7 ++++++ 10 files changed, 88 insertions(+), 15 deletions(-) diff --git a/cli/standalone/virtual_fs.rs b/cli/standalone/virtual_fs.rs index 0ae00accbf5ffd..26bb0db75f1d8d 100644 --- a/cli/standalone/virtual_fs.rs +++ b/cli/standalone/virtual_fs.rs @@ -350,6 +350,7 @@ impl<'a> VfsEntryRef<'a> { atime: None, birthtime: None, mtime: None, + ctime: None, blksize: 0, size: 0, dev: 0, @@ -372,6 +373,7 @@ impl<'a> VfsEntryRef<'a> { atime: None, birthtime: None, mtime: None, + ctime: None, blksize: 0, size: file.len, dev: 0, @@ -394,6 +396,7 @@ impl<'a> VfsEntryRef<'a> { atime: None, birthtime: None, mtime: None, + ctime: None, blksize: 0, size: 0, dev: 0, diff --git a/cli/tsc/dts/lib.deno.ns.d.ts b/cli/tsc/dts/lib.deno.ns.d.ts index 6e0e84b687477a..8179e4223c264e 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. * 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/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/ops.rs b/ext/fs/ops.rs index 9b76b49e613418..3d0d96ce6621a0 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -1795,6 +1795,8 @@ create_struct_writer! { atime: u64, birthtime_set: bool, birthtime: u64, + ctime_set: bool, + ctime: u64, // Following are only valid under Unix. dev: u64, ino: u64, @@ -1826,6 +1828,8 @@ impl From for SerializableStat { atime: stat.atime.unwrap_or(0), birthtime_set: stat.birthtime.is_some(), birthtime: stat.birthtime.unwrap_or(0), + ctime_set: stat.ctime.is_some(), + ctime: stat.ctime.unwrap_or(0), dev: stat.dev, ino: stat.ino, 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/io/fs.rs b/ext/io/fs.rs index 8854265209cd6c..7ef02315baa49c 100644 --- a/ext/io/fs.rs +++ b/ext/io/fs.rs @@ -94,6 +94,7 @@ pub struct FsStat { pub mtime: Option, pub atime: Option, pub birthtime: Option, + pub ctime: Option, pub dev: u64, pub ino: u64, @@ -153,6 +154,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(), @@ -162,6 +173,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/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/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_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); From aa546189be730163ee5370029e4dfdb3b454ab96 Mon Sep 17 00:00:00 2001 From: snek Date: Wed, 13 Nov 2024 11:38:46 +0100 Subject: [PATCH 14/97] feat: OpenTelemetry Tracing API and Exporting (#26710) Initial import of OTEL code supporting tracing. Metrics soon to come. Implements APIs for https://jsr.io/@deno/otel so that code using OpenTelemetry.js just works tm. There is still a lot of work to do with configuration and adding built-in tracing to core APIs, which will come in followup PRs. --------- Co-authored-by: Luca Casonato --- Cargo.lock | 324 ++++++++-- Cargo.toml | 6 + cli/args/mod.rs | 18 + cli/factory.rs | 1 + cli/standalone/binary.rs | 3 + cli/standalone/mod.rs | 1 + cli/tsc/dts/lib.deno.unstable.d.ts | 102 ++++ cli/worker.rs | 6 + ext/http/00_serve.ts | 137 +++-- runtime/Cargo.toml | 7 + runtime/js/90_deno_ns.js | 19 +- runtime/js/99_main.js | 14 +- runtime/js/telemetry.js | 395 +++++++++++++ runtime/lib.rs | 16 +- runtime/ops/mod.rs | 1 + runtime/ops/os/mod.rs | 2 + runtime/ops/otel.rs | 686 ++++++++++++++++++++++ runtime/shared.rs | 1 + runtime/snapshot.rs | 1 + runtime/web_worker.rs | 3 + runtime/worker.rs | 3 + runtime/worker_bootstrap.rs | 11 + tests/specs/cli/otel_basic/__test__.jsonc | 4 + tests/specs/cli/otel_basic/child.ts | 20 + tests/specs/cli/otel_basic/deno.json | 4 + tests/specs/cli/otel_basic/main.ts | 76 +++ tools/core_import_map.json | 1 + 27 files changed, 1740 insertions(+), 122 deletions(-) create mode 100644 runtime/js/telemetry.js create mode 100644 runtime/ops/otel.rs create mode 100644 tests/specs/cli/otel_basic/__test__.jsonc create mode 100644 tests/specs/cli/otel_basic/child.ts create mode 100644 tests/specs/cli/otel_basic/deno.json create mode 100644 tests/specs/cli/otel_basic/main.ts diff --git a/Cargo.lock b/Cargo.lock index 6f7799bac829be..00c1f0736a1ad9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -347,6 +347,53 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "axum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.73" @@ -1118,7 +1165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown", + "hashbrown 0.14.5", "lock_api", "once_cell", "parking_lot_core", @@ -1207,7 +1254,7 @@ dependencies = [ "http-body-util", "hyper-util", "import_map", - "indexmap", + "indexmap 2.3.0", "jsonc-parser", "junction", "lazy-regex", @@ -1363,7 +1410,7 @@ dependencies = [ "base32", "deno_media_type", "deno_path_util", - "indexmap", + "indexmap 2.3.0", "log", "once_cell", "parking_lot", @@ -1398,7 +1445,7 @@ dependencies = [ "glob", "ignore", "import_map", - "indexmap", + "indexmap 2.3.0", "jsonc-parser", "log", "percent-encoding", @@ -1519,7 +1566,7 @@ dependencies = [ "handlebars", "html-escape", "import_map", - "indexmap", + "indexmap 2.3.0", "itoa", "lazy_static", "regex", @@ -1619,7 +1666,7 @@ dependencies = [ "encoding_rs", "futures", "import_map", - "indexmap", + "indexmap 2.3.0", "log", "monch", "once_cell", @@ -1715,7 +1762,7 @@ dependencies = [ "http-body-util", "log", "num-bigint", - "prost", + "prost 0.11.9", "prost-build", "rand", "rusqlite", @@ -1851,7 +1898,7 @@ dependencies = [ "hyper 1.4.1", "hyper-util", "idna 0.3.0", - "indexmap", + "indexmap 2.3.0", "ipnetwork", "k256", "lazy-regex", @@ -1941,7 +1988,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6cbc4c4d3eb0960b58e8f43f9fc2d3f620fcac9a03cd85203e08db5b04e83c1f" dependencies = [ "deno_semver", - "indexmap", + "indexmap 2.3.0", "serde", "serde_json", "thiserror", @@ -1997,6 +2044,7 @@ dependencies = [ name = "deno_runtime" version = "0.186.0" dependencies = [ + "async-trait", "color-print", "deno_ast", "deno_broadcast_channel", @@ -2042,7 +2090,13 @@ dependencies = [ "notify", "ntapi", "once_cell", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-otlp", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", "percent-encoding", + "pin-project", "regex", "rustyline", "same-file", @@ -2268,7 +2322,7 @@ dependencies = [ "chrono", "futures", "num-bigint", - "prost", + "prost 0.11.9", "serde", "uuid", ] @@ -2288,7 +2342,7 @@ dependencies = [ "futures", "http 1.1.0", "log", - "prost", + "prost 0.11.9", "rand", "serde", "serde_json", @@ -2548,8 +2602,8 @@ checksum = "f3ab0dd2bedc109d25f0d21afb09b7d329f6c6fa83b095daf31d2d967e091548" dependencies = [ "anyhow", "bumpalo", - "hashbrown", - "indexmap", + "hashbrown 0.14.5", + "indexmap 2.3.0", "rustc-hash 1.1.0", "serde", "unicode-width", @@ -2755,7 +2809,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48cede2bb1b07dd598d269f973792c43e0cd92686d3b452bd6e01d7a8eb01211" dependencies = [ "debug-ignore", - "indexmap", + "indexmap 2.3.0", "log", "thiserror", "zerocopy", @@ -3392,7 +3446,7 @@ checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" dependencies = [ "bitflags 2.6.0", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.14.5", ] [[package]] @@ -3436,7 +3490,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -3455,7 +3509,7 @@ dependencies = [ "futures-sink", "futures-util", "http 1.1.0", - "indexmap", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -3468,7 +3522,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" dependencies = [ - "hashbrown", + "hashbrown 0.14.5", "serde", ] @@ -3487,6 +3541,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + [[package]] name = "hashbrown" version = "0.14.5" @@ -3503,7 +3563,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" dependencies = [ - "hashbrown", + "hashbrown 0.14.5", ] [[package]] @@ -3666,7 +3726,7 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a9de2bdef6354361892492bab5e316b2d78a0ee9971db4d36da9b1eb0e11999" dependencies = [ - "hashbrown", + "hashbrown 0.14.5", "new_debug_unreachable", "once_cell", "phf", @@ -3820,6 +3880,19 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "hyper-timeout" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +dependencies = [ + "hyper 1.4.1", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "hyper-util" version = "0.1.7" @@ -3908,7 +3981,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "351a787decc56f38d65d16d32687265045d6d6a4531b4a0e1b649def3590354e" dependencies = [ - "indexmap", + "indexmap 2.3.0", "log", "percent-encoding", "serde", @@ -3917,6 +3990,16 @@ dependencies = [ "url", ] +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + [[package]] name = "indexmap" version = "2.3.0" @@ -3924,7 +4007,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.14.5", "serde", ] @@ -4406,6 +4489,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "md-5" version = "0.10.6" @@ -4533,7 +4622,7 @@ dependencies = [ "bitflags 2.6.0", "codespan-reporting", "hexf-parse", - "indexmap", + "indexmap 2.3.0", "log", "num-traits", "rustc-hash 1.1.0", @@ -4837,6 +4926,93 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "opentelemetry" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3cebff57f7dbd1255b44d8bddc2cebeb0ea677dbaa2e25a3070a91b318f660" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", +] + +[[package]] +name = "opentelemetry-http" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a8a7f5f6ba7c1b286c2fbca0454eaba116f63bbe69ed250b642d36fbb04d80" +dependencies = [ + "async-trait", + "bytes", + "http 1.1.0", + "opentelemetry", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" +dependencies = [ + "async-trait", + "futures-core", + "http 1.1.0", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-proto", + "opentelemetry_sdk", + "prost 0.13.3", + "serde_json", + "thiserror", + "tokio", + "tonic", + "tracing", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" +dependencies = [ + "hex", + "opentelemetry", + "opentelemetry_sdk", + "prost 0.13.3", + "serde", + "tonic", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc1b6902ff63b32ef6c489e8048c5e253e2e4a803ea3ea7e783914536eb15c52" + +[[package]] +name = "opentelemetry_sdk" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b742c1cae4693792cc564e58d75a2a0ba29421a34a85b50da92efa89ecb2bc" +dependencies = [ + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", + "opentelemetry", + "percent-encoding", + "rand", + "serde_json", + "thiserror", + "tracing", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -5062,7 +5238,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 2.3.0", ] [[package]] @@ -5339,7 +5515,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +dependencies = [ + "bytes", + "prost-derive 0.13.3", ] [[package]] @@ -5356,7 +5542,7 @@ dependencies = [ "multimap", "petgraph", "prettyplease 0.1.25", - "prost", + "prost 0.11.9", "prost-types", "regex", "syn 1.0.109", @@ -5377,13 +5563,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +dependencies = [ + "anyhow", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "prost-types" version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "prost", + "prost 0.11.9", ] [[package]] @@ -5439,7 +5638,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1a341ae463320e9f8f34adda49c8a85d81d4e8f34cce4397fb0350481552224" dependencies = [ "chrono", - "indexmap", + "indexmap 2.3.0", "quick-xml", "strip-ansi-escapes", "thiserror", @@ -5801,7 +6000,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a58fa8a7ccff2aec4f39cc45bf5f985cec7125ab271cf681c279fd00192b49" dependencies = [ "countme", - "hashbrown", + "hashbrown 0.14.5", "memoffset", "rustc-hash 1.1.0", "text-size", @@ -6206,7 +6405,7 @@ version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ - "indexmap", + "indexmap 2.3.0", "itoa", "memchr", "ryu", @@ -6603,7 +6802,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc8bd3075d1c6964010333fae9ddcd91ad422a4f8eb8b3206a9b2b6afb4209e" dependencies = [ "bumpalo", - "hashbrown", + "hashbrown 0.14.5", "ptr_meta", "rustc-hash 1.1.0", "triomphe", @@ -6629,7 +6828,7 @@ checksum = "c77c112c218a09635d99a45802a81b4f341d6c28c81076aa2c29ba3bcd9151a9" dependencies = [ "anyhow", "crc", - "indexmap", + "indexmap 2.3.0", "is-macro", "once_cell", "parking_lot", @@ -6699,7 +6898,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4740e53eaf68b101203c1df0937d5161a29f3c13bceed0836ddfe245b72dd000" dependencies = [ "anyhow", - "indexmap", + "indexmap 2.3.0", "serde", "serde_json", "swc_cached", @@ -6811,7 +7010,7 @@ checksum = "65f21494e75d0bd8ef42010b47cabab9caaed8f2207570e809f6f4eb51a710d1" dependencies = [ "better_scoped_tls", "bitflags 2.6.0", - "indexmap", + "indexmap 2.3.0", "once_cell", "phf", "rustc-hash 1.1.0", @@ -6859,7 +7058,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98d8447ea20ef76958a8240feef95743702485a84331e6df5bdbe7e383c87838" dependencies = [ "dashmap", - "indexmap", + "indexmap 2.3.0", "once_cell", "petgraph", "rustc-hash 1.1.0", @@ -6904,7 +7103,7 @@ checksum = "76c76d8b9792ce51401d38da0fa62158d61f6d80d16d68fe5b03ce4bf5fba383" dependencies = [ "base64 0.21.7", "dashmap", - "indexmap", + "indexmap 2.3.0", "once_cell", "serde", "sha1", @@ -6944,7 +7143,7 @@ version = "0.134.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029eec7dd485923a75b5a45befd04510288870250270292fc2c1b3a9e7547408" dependencies = [ - "indexmap", + "indexmap 2.3.0", "num_cpus", "once_cell", "rustc-hash 1.1.0", @@ -6989,7 +7188,7 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357e2c97bb51431d65080f25b436bc4e2fc1a7f64a643bc21a8353e478dc799f" dependencies = [ - "indexmap", + "indexmap 2.3.0", "petgraph", "rustc-hash 1.1.0", "swc_common", @@ -7210,7 +7409,7 @@ dependencies = [ "os_pipe", "parking_lot", "pretty_assertions", - "prost", + "prost 0.11.9", "prost-build", "regex", "reqwest", @@ -7402,9 +7601,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -7422,7 +7621,7 @@ dependencies = [ "futures-io", "futures-sink", "futures-util", - "hashbrown", + "hashbrown 0.14.5", "pin-project-lite", "slab", "tokio", @@ -7438,6 +7637,36 @@ dependencies = [ "serde", ] +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2 0.4.4", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.4.1", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost 0.13.3", + "socket2", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower" version = "0.4.13" @@ -7446,11 +7675,16 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", + "indexmap 1.9.3", "pin-project", "pin-project-lite", + "rand", + "slab", "tokio", + "tokio-util", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -7763,7 +7997,7 @@ checksum = "97599c400fc79925922b58303e98fcb8fa88f573379a08ddb652e72cbd2e70f6" dependencies = [ "bitflags 2.6.0", "encoding_rs", - "indexmap", + "indexmap 2.3.0", "num-bigint", "serde", "thiserror", @@ -7972,7 +8206,7 @@ dependencies = [ "cfg_aliases", "codespan-reporting", "document-features", - "indexmap", + "indexmap 2.3.0", "log", "naga", "once_cell", @@ -8521,7 +8755,7 @@ dependencies = [ "crossbeam-utils", "displaydoc", "flate2", - "indexmap", + "indexmap 2.3.0", "memchr", "thiserror", ] diff --git a/Cargo.toml b/Cargo.toml index e372e542bbbd1b..50e41145bf8e0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -207,6 +207,12 @@ yoke = { version = "0.7.4", features = ["derive"] } zeromq = { version = "=0.4.1", default-features = false, features = ["tcp-transport", "tokio-runtime"] } zstd = "=0.12.4" +opentelemetry = "0.27.0" +opentelemetry-http = "0.27.0" +opentelemetry-otlp = { version = "0.27.0", features = ["logs", "http-proto", "http-json"] } +opentelemetry-semantic-conventions = { version = "0.27.0", features = ["semconv_experimental"] } +opentelemetry_sdk = "0.27.0" + # crypto hkdf = "0.12.3" rsa = { version = "0.9.3", default-features = false, features = ["std", "pem", "hazmat"] } # hazmat needed for PrehashSigner in ext/node diff --git a/cli/args/mod.rs b/cli/args/mod.rs index e19025f8b10cb6..3aaf2bd438f363 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -27,6 +27,7 @@ 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; @@ -1129,6 +1130,23 @@ impl CliOptions { } } + pub fn otel_config(&self) -> Option { + if self + .flags + .unstable_config + .features + .contains(&String::from("otel")) + { + Some(OtelConfig { + runtime_name: Cow::Borrowed("deno"), + runtime_version: Cow::Borrowed(crate::version::DENO_VERSION_INFO.deno), + ..Default::default() + }) + } else { + None + } + } + pub fn env_file_name(&self) -> Option<&String> { self.flags.env_file.as_ref() } diff --git a/cli/factory.rs b/cli/factory.rs index 4a36c75ba2af12..417f771a30c338 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -939,6 +939,7 @@ impl CliFactory { StorageKeyResolver::from_options(cli_options), cli_options.sub_command().clone(), self.create_cli_main_worker_options()?, + self.cli_options()?.otel_config(), )) } diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index 9e265122687f03..960aad15784a1a 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; @@ -185,6 +186,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( @@ -722,6 +724,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { sloppy_imports: cli_options.unstable_sloppy_imports(), features: cli_options.unstable_features(), }, + otel_config: cli_options.otel_config(), }; write_binary_bytes( diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 85610f4c20f1f7..bb0ab423ddbf84 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -800,6 +800,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/tsc/dts/lib.deno.unstable.d.ts b/cli/tsc/dts/lib.deno.unstable.d.ts index 973a09d92ab378..6234268c39cc67 100644 --- a/cli/tsc/dts/lib.deno.unstable.d.ts +++ b/cli/tsc/dts/lib.deno.unstable.d.ts @@ -1225,6 +1225,108 @@ declare namespace Deno { export {}; // only export exports } + /** + * @category Telemetry + * @experimental + */ + export namespace tracing { + /** + * Whether tracing is enabled. + * @category Telemetry + * @experimental + */ + export const enabled: boolean; + + /** + * Allowed attribute type. + * @category Telemetry + * @experimental + */ + export type AttributeValue = string | number | boolean | bigint; + + /** + * A tracing span. + * @category Telemetry + * @experimental + */ + export class Span implements Disposable { + readonly traceId: string; + readonly spanId: string; + readonly parentSpanId: string; + readonly kind: string; + readonly name: string; + readonly startTime: number; + readonly endTime: number; + readonly status: null | { code: 1 } | { code: 2; message: string }; + readonly attributes: Record; + readonly traceFlags: number; + + /** + * Construct a new Span and enter it as the "current" span. + */ + constructor( + name: string, + kind?: "internal" | "server" | "client" | "producer" | "consumer", + ); + + /** + * Set an attribute on this span. + */ + setAttribute( + name: string, + value: AttributeValue, + ): void; + + /** + * Enter this span as the "current" span. + */ + enter(): void; + + /** + * Exit this span as the "current" span and restore the previous one. + */ + exit(): void; + + /** + * End this span, and exit it as the "current" span. + */ + end(): void; + + [Symbol.dispose](): void; + + /** + * Get the "current" span, if one exists. + */ + static current(): Span | undefined | null; + } + + /** + * 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 + } + + /** + * @category Telemetry + * @experimental + */ + export namespace metrics { + export {}; // only export exports + } + export {}; // only export exports } diff --git a/cli/worker.rs b/cli/worker.rs index baacd681a16764..402644a42cf17e 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; @@ -142,6 +143,7 @@ struct SharedWorkerState { storage_key_resolver: StorageKeyResolver, options: CliMainWorkerOptions, subcommand: DenoSubcommand, + otel_config: Option, // `None` means OpenTelemetry is disabled. } impl SharedWorkerState { @@ -405,6 +407,7 @@ impl CliMainWorkerFactory { storage_key_resolver: StorageKeyResolver, subcommand: DenoSubcommand, options: CliMainWorkerOptions, + otel_config: Option, ) -> Self { Self { shared: Arc::new(SharedWorkerState { @@ -427,6 +430,7 @@ impl CliMainWorkerFactory { storage_key_resolver, options, subcommand, + otel_config, }), } } @@ -576,6 +580,7 @@ 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(), @@ -775,6 +780,7 @@ 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(), 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/runtime/Cargo.toml b/runtime/Cargo.toml index ba236de149fad3..b59cd14fa95694 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -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/js/90_deno_ns.js b/runtime/js/90_deno_ns.js index fd2ac00f2004c0..11f618ce27cb11 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.js"; 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,12 @@ const unstableIds = { http: 5, kv: 6, net: 7, - process: 8, - temporal: 9, - unsafeProto: 10, - webgpu: 11, - workerOptions: 12, + otel: 8, + process: 9, + temporal: 10, + unsafeProto: 11, + webgpu: 12, + workerOptions: 13, }; const denoNsUnstableById = { __proto__: null }; @@ -181,4 +183,9 @@ denoNsUnstableById[unstableIds.webgpu] = { // denoNsUnstableById[unstableIds.workerOptions] = { __proto__: null } +denoNsUnstableById[unstableIds.otel] = { + tracing: telemetry.tracing, + metrics: telemetry.metrics, +}; + export { denoNs, denoNsUnstableById, unstableIds }; diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index 6ddaa1335ecc3d..2da5c5398c76d1 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.js"; + // deno-lint-ignore prefer-primordials if (Symbol.metadata) { throw "V8 supports Symbol.metadata now, no need to shim it"; @@ -573,6 +575,7 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) { 10: serveHost, 11: serveIsMain, 12: serveWorkerCount, + 13: otelConfig, } = runtimeOptions; if (mode === executionModes.serve) { @@ -673,9 +676,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 +859,7 @@ function bootstrapWorkerRuntime( 5: hasNodeModulesDir, 6: argv0, 7: nodeDebug, + 13: otelConfig, } = runtimeOptions; performance.setTimeOrigin(); @@ -882,8 +887,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.js b/runtime/js/telemetry.js new file mode 100644 index 00000000000000..e9eb51f7ca23b1 --- /dev/null +++ b/runtime/js/telemetry.js @@ -0,0 +1,395 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +import { core, primordials } from "ext:core/mod.js"; +import { + 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_start, +} from "ext:core/ops"; +import { Console } from "ext:deno_console/01_console.js"; +import { performance } from "ext:deno_web/15_performance.js"; + +const { + SymbolDispose, + MathRandom, + Array, + ObjectEntries, + SafeMap, + ReflectApply, + SymbolFor, + Error, +} = primordials; +const { AsyncVariable, setAsyncContext } = core; + +const CURRENT = new AsyncVariable(); +let TRACING_ENABLED = false; + +const SPAN_ID_BYTES = 8; +const TRACE_ID_BYTES = 16; + +const TRACE_FLAG_SAMPLED = 1 << 0; + +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 generateId(bytes) { + let out = ""; + for (let i = 0; i < bytes / 4; i += 1) { + const r32 = (MathRandom() * 2 ** 32) >>> 0; + out += hexSliceLookupTable[(r32 >> 24) & 0xff]; + out += hexSliceLookupTable[(r32 >> 16) & 0xff]; + out += hexSliceLookupTable[(r32 >> 8) & 0xff]; + out += hexSliceLookupTable[r32 & 0xff]; + } + return out; +} + +function submit(span) { + if (!(span.traceFlags & TRACE_FLAG_SAMPLED)) return; + + op_otel_span_start( + span.traceId, + span.spanId, + span.parentSpanId ?? "", + span.kind, + span.name, + span.startTime, + span.endTime, + ); + + if (span.status !== null && span.status.code !== 0) { + op_otel_span_continue(span.code, span.message ?? ""); + } + + const attributes = ObjectEntries(span.attributes); + let i = 0; + while (i < attributes.length) { + if (i + 2 < attributes.length) { + op_otel_span_attribute3( + attributes.length, + attributes[i][0], + attributes[i][1], + attributes[i + 1][0], + attributes[i + 1][1], + attributes[i + 2][0], + attributes[i + 2][1], + ); + i += 3; + } else if (i + 1 < attributes.length) { + op_otel_span_attribute2( + attributes.length, + attributes[i][0], + attributes[i][1], + attributes[i + 1][0], + attributes[i + 1][1], + ); + i += 2; + } else { + op_otel_span_attribute( + attributes.length, + attributes[i][0], + attributes[i][1], + ); + i += 1; + } + } + + op_otel_span_flush(); +} + +const now = () => (performance.timeOrigin + performance.now()) / 1000; + +const INVALID_SPAN_ID = "0000000000000000"; +const INVALID_TRACE_ID = "00000000000000000000000000000000"; +const NO_ASYNC_CONTEXT = {}; + +class Span { + traceId; + spanId; + parentSpanId; + kind; + name; + startTime; + endTime; + status = null; + attributes = { __proto__: null }; + traceFlags = TRACE_FLAG_SAMPLED; + + enabled = TRACING_ENABLED; + #asyncContext = NO_ASYNC_CONTEXT; + + constructor(name, kind = "internal") { + if (!this.enabled) { + this.traceId = INVALID_TRACE_ID; + this.spanId = INVALID_SPAN_ID; + this.parentSpanId = INVALID_SPAN_ID; + return; + } + + this.startTime = now(); + + this.spanId = generateId(SPAN_ID_BYTES); + + let traceId; + let parentSpanId; + const parent = Span.current(); + if (parent) { + if (parent.spanId !== undefined) { + parentSpanId = parent.spanId; + traceId = parent.traceId; + } else { + const context = parent.spanContext(); + parentSpanId = context.spanId; + traceId = context.traceId; + } + } + if ( + traceId && traceId !== INVALID_TRACE_ID && parentSpanId && + parentSpanId !== INVALID_SPAN_ID + ) { + this.traceId = traceId; + this.parentSpanId = parentSpanId; + } else { + this.traceId = generateId(TRACE_ID_BYTES); + this.parentSpanId = INVALID_SPAN_ID; + } + + this.name = name; + + switch (kind) { + case "internal": + this.kind = 0; + break; + case "server": + this.kind = 1; + break; + case "client": + this.kind = 2; + break; + case "producer": + this.kind = 3; + break; + case "consumer": + this.kind = 4; + break; + default: + throw new Error(`Invalid span kind: ${kind}`); + } + + this.enter(); + } + + // helper function to match otel js api + spanContext() { + return { + traceId: this.traceId, + spanId: this.spanId, + traceFlags: this.traceFlags, + }; + } + + setAttribute(name, value) { + if (!this.enabled) return; + this.attributes[name] = value; + } + + enter() { + if (!this.enabled) return; + const context = (CURRENT.get() || ROOT_CONTEXT).setValue(SPAN_KEY, this); + this.#asyncContext = CURRENT.enter(context); + } + + exit() { + if (!this.enabled || this.#asyncContext === NO_ASYNC_CONTEXT) return; + setAsyncContext(this.#asyncContext); + this.#asyncContext = NO_ASYNC_CONTEXT; + } + + end() { + if (!this.enabled || this.endTime !== undefined) return; + this.exit(); + this.endTime = now(); + submit(this); + } + + [SymbolDispose]() { + this.end(); + } + + static current() { + return CURRENT.get()?.getValue(SPAN_KEY); + } +} + +function hrToSecs(hr) { + return ((hr[0] * 1e3 + hr[1] / 1e6) / 1000); +} + +// Exporter compatible with opentelemetry js library +class SpanExporter { + export(spans, resultCallback) { + try { + for (let i = 0; i < spans.length; i += 1) { + const span = spans[i]; + const context = span.spanContext(); + submit({ + spanId: context.spanId, + traceId: context.traceId, + traceFlags: context.traceFlags, + name: span.name, + kind: span.kind, + parentSpanId: span.parentSpanId, + startTime: hrToSecs(span.startTime), + endTime: hrToSecs(span.endTime), + status: span.status, + attributes: span.attributes, + }); + } + resultCallback({ code: 0 }); + } catch (error) { + resultCallback({ code: 1, error }); + } + } + + async shutdown() {} + + async forceFlush() {} +} + +// SPAN_KEY matches symbol in otel-js library +const SPAN_KEY = SymbolFor("OpenTelemetry Context Key SPAN"); + +// Context tracker compatible with otel-js api +class Context { + #data = new SafeMap(); + + constructor(data) { + this.#data = data ? new SafeMap(data) : new SafeMap(); + } + + getValue(key) { + return this.#data.get(key); + } + + setValue(key, value) { + const c = new Context(this.#data); + c.#data.set(key, value); + return c; + } + + deleteValue(key) { + const c = new Context(this.#data); + c.#data.delete(key); + return c; + } +} + +const ROOT_CONTEXT = new Context(); + +// Context manager for opentelemetry js library +class ContextManager { + active() { + return CURRENT.get() ?? ROOT_CONTEXT; + } + + with(context, fn, thisArg, ...args) { + const ctx = CURRENT.enter(context); + try { + return ReflectApply(fn, thisArg, args); + } finally { + setAsyncContext(ctx); + } + } + + bind(context, f) { + return (...args) => { + const ctx = CURRENT.enter(context); + try { + return ReflectApply(f, thisArg, args); + } finally { + setAsyncContext(ctx); + } + }; + } + + enable() { + return this; + } + + disable() { + return this; + } +} + +function otelLog(message, level) { + let traceId = ""; + let spanId = ""; + let traceFlags = 0; + const span = Span.current(); + if (span) { + if (span.spanId !== undefined) { + spanId = span.spanId; + traceId = span.traceId; + traceFlags = span.traceFlags; + } else { + const context = span.spanContext(); + spanId = context.spanId; + traceId = context.traceId; + traceFlags = context.traceFlags; + } + } + return op_otel_log(message, level, traceId, spanId, traceFlags); +} + +const otelConsoleConfig = { + ignore: 0, + capture: 1, + replace: 2, +}; + +export function bootstrap(config) { + if (config.length === 0) return; + const { 0: consoleConfig } = config; + + TRACING_ENABLED = true; + + 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 tracing = { + get enabled() { + return TRACING_ENABLED; + }, + Span, + SpanExporter, + ContextManager, +}; + +// TODO(devsnek): implement metrics +export const metrics = {}; diff --git a/runtime/lib.rs b/runtime/lib.rs index f0b1129ce3cf50..21b61e1c058595 100644 --- a/runtime/lib.rs +++ b/runtime/lib.rs @@ -99,18 +99,24 @@ pub static UNSTABLE_GRANULAR_FLAGS: &[UnstableGranularFlag] = &[ show_in_help: true, id: 7, }, + UnstableGranularFlag { + name: "otel", + help_text: "Enable unstable OpenTelemetry features", + show_in_help: false, + id: 8, + }, // 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: 9, }, UnstableGranularFlag { name: "temporal", help_text: "Enable unstable Temporal API", show_in_help: true, - id: 9, + id: 10, }, UnstableGranularFlag { name: "unsafe-proto", @@ -118,19 +124,19 @@ 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: 11, }, UnstableGranularFlag { name: deno_webgpu::UNSTABLE_FEATURE_NAME, help_text: "Enable unstable `WebGPU` APIs", show_in_help: true, - id: 11, + id: 12, }, UnstableGranularFlag { name: ops::worker_host::UNSTABLE_FEATURE_NAME, help_text: "Enable unstable Web Worker APIs", show_in_help: true, - id: 12, + id: 13, }, ]; 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 9bee9d82349d24..790962f38d11bf 100644 --- a/runtime/ops/os/mod.rs +++ b/runtime/ops/os/mod.rs @@ -186,6 +186,8 @@ fn op_get_exit_code(state: &mut OpState) -> i32 { #[op2(fast)] fn op_exit(state: &mut OpState) { + crate::ops::otel::otel_drop_state(state); + let code = state.borrow::().get(); std::process::exit(code) } diff --git a/runtime/ops/otel.rs b/runtime/ops/otel.rs new file mode 100644 index 00000000000000..6a4750acc2bd24 --- /dev/null +++ b/runtime/ops/otel.rs @@ -0,0 +1,686 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +use crate::tokio_util::create_basic_runtime; +use deno_core::anyhow::anyhow; +use deno_core::anyhow::{self}; +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 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::InstrumentationScope; +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_span_start, op_otel_span_continue, op_otel_span_attribute, op_otel_span_attribute2, op_otel_span_attribute3, op_otel_span_flush], + options = { + otel_config: Option, // `None` means OpenTelemetry is disabled. + }, + state = |state, options| { + if let Some(otel_config) = options.otel_config { + otel_create_globals(otel_config, state).unwrap(); + } + } +); + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct OtelConfig { + pub runtime_name: Cow<'static, str>, + pub runtime_version: Cow<'static, str>, + pub console: OtelConsoleConfig, +} + +#[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, + } + } +} + +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() + } + } +} + +fn otel_create_globals( + config: OtelConfig, + op_state: &mut OpState, +) -> 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); + op_state.put::(span_processor); + + 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); + op_state.put::(log_processor); + + Ok(()) +} + +/// This function is called by the runtime whenever it is about to call +/// `os::process::exit()`, to ensure that all OpenTelemetry logs are properly +/// flushed before the process terminates. +pub fn otel_drop_state(state: &mut OpState) { + if let Some(processor) = state.try_take::() { + let _ = processor.force_flush(); + drop(processor); + } + if let Some(processor) = state.try_take::() { + let _ = processor.force_flush(); + drop(processor); + } +} + +#[op2(fast)] +fn op_otel_log( + state: &mut OpState, + #[string] message: String, + #[smi] level: i32, + #[string] trace_id: &str, + #[string] span_id: &str, + #[smi] trace_flags: u8, +) { + let Some(logger) = state.try_borrow::() else { + log::error!("op_otel_log: OpenTelemetry Logger not available"); + 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 mut log_record = LogRecord::default(); + + log_record.observed_timestamp = Some(SystemTime::now()); + log_record.body = Some(message.into()); + log_record.severity_number = Some(severity); + log_record.severity_text = Some(severity.name()); + if let (Ok(trace_id), Ok(span_id)) = + (TraceId::from_hex(trace_id), SpanId::from_hex(span_id)) + { + let span_context = SpanContext::new( + trace_id, + span_id, + TraceFlags::new(trace_flags), + false, + Default::default(), + ); + log_record.trace_context = Some((&span_context).into()); + } + logger.emit( + &mut log_record, + &InstrumentationScope::builder("deno").build(), + ); +} + +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) = state.try_borrow::() else { + return Ok(()); + }; + span_processor.on_end(temporary_span.0); + }; + + let trace_id = { + let x = v8::ValueView::new(scope, trace_id.try_cast()?); + match x.data() { + v8::ValueViewData::OneByte(bytes) => { + TraceId::from_hex(&String::from_utf8_lossy(bytes))? + } + _ => return Err(anyhow!("invalid trace_id")), + } + }; + + let span_id = { + let x = v8::ValueView::new(scope, span_id.try_cast()?); + match x.data() { + v8::ValueViewData::OneByte(bytes) => { + SpanId::from_hex(&String::from_utf8_lossy(bytes))? + } + _ => return Err(anyhow!("invalid span_id")), + } + }; + + let parent_span_id = { + let x = v8::ValueView::new(scope, parent_span_id.try_cast()?); + match x.data() { + v8::ValueViewData::OneByte(bytes) => { + let s = String::from_utf8_lossy(bytes); + if s.is_empty() { + SpanId::INVALID + } else { + SpanId::from_hex(&s)? + } + } + _ => return Err(anyhow!("invalid 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: InstrumentationScope::builder("deno").build(), + }); + 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, + }; + } +} + +macro_rules! attr { + ($scope:ident, $temporary_span:ident, $name:ident, $value:ident) => { + 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) { + $temporary_span + .0 + .attributes + .push(KeyValue::new(name, value)); + } else { + $temporary_span.0.dropped_attributes_count += 1; + } + }; +} + +#[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, 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, key1, value1); + attr!(scope, temporary_span, 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, key1, value1); + attr!(scope, temporary_span, key2, value2); + attr!(scope, temporary_span, key3, value3); + } +} + +#[op2(fast)] +fn op_otel_span_flush(state: &mut OpState) { + let Some(temporary_span) = state.try_take::() else { + return; + }; + + let Some(span_processor) = state.try_borrow::() else { + return; + }; + + span_processor.on_end(temporary_span.0); +} diff --git a/runtime/shared.rs b/runtime/shared.rs index f7d76f67a760da..c05f352f1c3ef6 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.js", "90_deno_ns.js", "98_global_scope_shared.js", "98_global_scope_window.js", diff --git a/runtime/snapshot.rs b/runtime/snapshot.rs index 251ee5f41ce413..bb9bf9166f32ec 100644 --- a/runtime/snapshot.rs +++ b/runtime/snapshot.rs @@ -312,6 +312,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(None), ops::permissions::deno_permissions::init_ops(), ops::process::deno_process::init_ops(None), ops::signal::deno_signal::init_ops(), diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index 61e5c770299285..d81c82c5013be7 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -505,6 +505,9 @@ impl WebWorker { ), ops::fs_events::deno_fs_events::init_ops_and_esm(), ops::os::deno_os_worker::init_ops_and_esm(), + ops::otel::deno_otel::init_ops_and_esm( + options.bootstrap.otel_config.clone(), + ), ops::permissions::deno_permissions::init_ops_and_esm(), ops::process::deno_process::init_ops_and_esm( services.npm_process_state_provider, diff --git a/runtime/worker.rs b/runtime/worker.rs index 88a61fa9389801..82df755faf8913 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -422,6 +422,9 @@ 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( + options.bootstrap.otel_config.clone(), + ), ops::permissions::deno_permissions::init_ops_and_esm(), ops::process::deno_process::init_ops_and_esm( services.npm_process_state_provider, diff --git a/runtime/worker_bootstrap.rs b/runtime/worker_bootstrap.rs index 3f3c25c5ea229a..dc989a1c0fe9f4 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]) + } else { + Box::new([]) + }, ); bootstrap.serialize(ser).unwrap() diff --git a/tests/specs/cli/otel_basic/__test__.jsonc b/tests/specs/cli/otel_basic/__test__.jsonc new file mode 100644 index 00000000000000..a9d4fff04972e2 --- /dev/null +++ b/tests/specs/cli/otel_basic/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run -A main.ts", + "output": "processed\n" +} diff --git a/tests/specs/cli/otel_basic/child.ts b/tests/specs/cli/otel_basic/child.ts new file mode 100644 index 00000000000000..72cffd9f0b7f76 --- /dev/null +++ b/tests/specs/cli/otel_basic/child.ts @@ -0,0 +1,20 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +async function inner() { + using _span = new Deno.tracing.Span("inner span"); + console.log("log 1"); + await 1; + console.log("log 2"); +} + +Deno.serve({ + port: 0, + onListen({ port }) { + console.log(port.toString()); + }, + handler: async (_req) => { + using _span = new Deno.tracing.Span("outer span"); + await inner(); + return new Response(null, { status: 200 }); + }, +}); 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/main.ts b/tests/specs/cli/otel_basic/main.ts new file mode 100644 index 00000000000000..66ef5c79ccd69a --- /dev/null +++ b/tests/specs/cli/otel_basic/main.ts @@ -0,0 +1,76 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +import { assert, assertEquals } from "@std/assert"; +import { TextLineStream } from "@std/streams/text-line-stream"; + +const logs = []; +const spans = []; +let child: Deno.ChildProcess; + +Deno.serve( + { + port: 0, + async onListen({ port }) { + const command = new Deno.Command(Deno.execPath(), { + args: ["run", "-A", "--unstable-otel", "child.ts"], + env: { + OTEL_EXPORTER_OTLP_PROTOCOL: "http/json", + OTEL_EXPORTER_OTLP_ENDPOINT: `http://localhost:${port}`, + OTEL_BSP_SCHEDULE_DELAY: "10", + OTEL_BLRP_SCHEDULE_DELAY: "10", + }, + stdin: "piped", + stdout: "piped", + stderr: "inherit", + }); + child = command.spawn(); + const lines = child.stdout + .pipeThrough(new TextDecoderStream()) + .pipeThrough(new TextLineStream()) + .getReader(); + const line = await lines.read(); + await fetch(`http://localhost:${line.value}/`); + }, + async handler(req) { + try { + const body = await req.json(); + if (body.resourceLogs) { + logs.push(...body.resourceLogs[0].scopeLogs[0].logRecords); + } + if (body.resourceSpans) { + spans.push(...body.resourceSpans[0].scopeSpans[0].spans); + } + + if (logs.length > 2 && spans.length > 1) { + child.kill(); + + const inner = spans.find((s) => s.name === "inner span"); + const outer = spans.find((s) => s.name === "outer span"); + + assertEquals(inner.traceId, outer.traceId); + assertEquals(inner.parentSpanId, outer.spanId); + + assertEquals(logs[1].body.stringValue, "log 1\n"); + assertEquals(logs[1].traceId, inner.traceId); + assertEquals(logs[1].spanId, inner.spanId); + + assertEquals(logs[2].body.stringValue, "log 2\n"); + assertEquals(logs[2].traceId, inner.traceId); + assertEquals(logs[2].spanId, inner.spanId); + + console.log("processed"); + Deno.exit(0); + } + + return Response.json({ partialSuccess: {} }, { status: 200 }); + } catch (e) { + console.error(e); + Deno.exit(1); + } + }, + }, +); + +setTimeout(() => { + assert(false, "test did not finish in time"); +}, 10e3); diff --git a/tools/core_import_map.json b/tools/core_import_map.json index aae4e63a4593d4..0811672b16f63d 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.js": "../runtime/js/telemetry.js", "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", From ef4646278efef85a379b1e0f38c028320d07e3aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 13 Nov 2024 12:04:30 +0000 Subject: [PATCH 15/97] feat: upgrade V8 to 13.0 (#26851) --- Cargo.lock | 53 ++++++++++++----------------------------------------- Cargo.toml | 2 +- 2 files changed, 13 insertions(+), 42 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 00c1f0736a1ad9..0345685569cb52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -482,29 +482,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" @@ -1465,9 +1442,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.318.0" +version = "0.319.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cae2393219ff9278123f7b24799cdfab37c7d6561b69ca06ced115cac92111" +checksum = "e9dbb841f9850534320d8927dce53ca8d64bafbab5576c2a98f03f9e08534215" dependencies = [ "anyhow", "bincode", @@ -1497,9 +1474,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" @@ -1968,9 +1945,9 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.194.0" +version = "0.195.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f760b492bd638c1dc3e992d11672c259fbe9a233162099a8347591c9e22d0391" +checksum = "797f348c38c07a5398bf790b280077c698e13fb49252f61ca6f6c5c616060292" dependencies = [ "proc-macro-rules", "proc-macro2", @@ -4275,12 +4252,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" @@ -4372,7 +4343,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", ] @@ -6437,9 +6408,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.227.0" +version = "0.228.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a8294c2223c53bed343be8b80564ece4dc0d03b643b06fa86c4ccc0e064eda0" +checksum = "bfe23e75c9a167f4e9d67a90d9fcaa622d1eec9aecad526c270e99a92f6915ff" dependencies = [ "num-bigint", "serde", @@ -7974,11 +7945,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", diff --git a/Cargo.toml b/Cargo.toml index 50e41145bf8e0f..de8b07cd00c36e 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" From 9331e2cef044945a91d53ea4cdc829d304157e0d Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Wed, 13 Nov 2024 14:23:36 +0100 Subject: [PATCH 16/97] chore: update denokv_* (#26850) --- Cargo.lock | 86 +++++++++++++++++------------------------------------- Cargo.toml | 10 +++---- 2 files changed, 31 insertions(+), 65 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0345685569cb52..8d84073a882c97 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -493,7 +493,7 @@ dependencies = [ "clang-sys", "itertools 0.13.0", "log", - "prettyplease 0.2.17", + "prettyplease", "proc-macro2", "quote", "regex", @@ -1739,7 +1739,7 @@ dependencies = [ "http-body-util", "log", "num-bigint", - "prost 0.11.9", + "prost", "prost-build", "rand", "rusqlite", @@ -2290,25 +2290,25 @@ dependencies = [ [[package]] name = "denokv_proto" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f629c77d2bf59e2e2a07fd7b14bfffae352a3813fbdcb801e72205741fb7625c" +checksum = "f7ba1f99ed11a9c11e868a8521b1f71a7e1aba785d7f42ea9ecbdc01146c89ec" dependencies = [ "anyhow", "async-trait", "chrono", "futures", "num-bigint", - "prost 0.11.9", + "prost", "serde", "uuid", ] [[package]] name = "denokv_remote" -version = "0.8.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d57717b5123e8d1ec5f52973a67f98e3621274d362d18b245038967b402082df" +checksum = "08ed833073189e8f6d03155fe3b05a024e75e29d8a28a4c2e9ec3b5c925e727b" dependencies = [ "anyhow", "async-stream", @@ -2319,7 +2319,7 @@ dependencies = [ "futures", "http 1.1.0", "log", - "prost 0.11.9", + "prost", "rand", "serde", "serde_json", @@ -2331,9 +2331,9 @@ dependencies = [ [[package]] name = "denokv_sqlite" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c4f5719e2bf698ec4f39fe29d91b62ff06a4b4a37ee481ffb8658d140fed986" +checksum = "9b790f01d1302d53a0c3cbd27de88a06b3abd64ec8ab8673924e490541c7c713" dependencies = [ "anyhow", "async-stream", @@ -4936,7 +4936,7 @@ dependencies = [ "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", - "prost 0.13.3", + "prost", "serde_json", "thiserror", "tokio", @@ -4953,7 +4953,7 @@ dependencies = [ "hex", "opentelemetry", "opentelemetry_sdk", - "prost 0.13.3", + "prost", "serde", "tonic", ] @@ -5388,16 +5388,6 @@ dependencies = [ "yaml_parser", ] -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - [[package]] name = "prettyplease" version = "0.2.17" @@ -5479,16 +5469,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" -[[package]] -name = "prost" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" -dependencies = [ - "bytes", - "prost-derive 0.11.9", -] - [[package]] name = "prost" version = "0.13.3" @@ -5496,42 +5476,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" dependencies = [ "bytes", - "prost-derive 0.13.3", + "prost-derive", ] [[package]] name = "prost-build" -version = "0.11.9" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ "bytes", - "heck 0.4.1", - "itertools 0.10.5", - "lazy_static", + "heck 0.5.0", + "itertools 0.13.0", "log", "multimap", + "once_cell", "petgraph", - "prettyplease 0.1.25", - "prost 0.11.9", + "prettyplease", + "prost", "prost-types", "regex", - "syn 1.0.109", + "syn 2.0.72", "tempfile", - "which 4.4.2", -] - -[[package]] -name = "prost-derive" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" -dependencies = [ - "anyhow", - "itertools 0.10.5", - "proc-macro2", - "quote", - "syn 1.0.109", ] [[package]] @@ -5549,11 +5515,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.11.9" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" dependencies = [ - "prost 0.11.9", + "prost", ] [[package]] @@ -7380,7 +7346,7 @@ dependencies = [ "os_pipe", "parking_lot", "pretty_assertions", - "prost 0.11.9", + "prost", "prost-build", "regex", "reqwest", @@ -7628,7 +7594,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.3", + "prost", "socket2", "tokio", "tokio-stream", diff --git a/Cargo.toml b/Cargo.toml index de8b07cd00c36e..6a8855629c45ed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,10 +60,10 @@ deno_terminal = "0.2.0" napi_sym = { version = "0.107.0", path = "./ext/napi/sym" } test_util = { package = "test_server", path = "./tests/util/server" } -denokv_proto = "0.8.1" -denokv_remote = "0.8.1" +denokv_proto = "0.8.4" +denokv_remote = "0.8.4" # denokv_sqlite brings in bundled sqlite if we don't disable the default features -denokv_sqlite = { default-features = false, version = "0.8.2" } +denokv_sqlite = { default-features = false, version = "0.8.4" } # exts deno_broadcast_channel = { version = "0.171.0", path = "./ext/broadcast_channel" } @@ -157,8 +157,8 @@ percent-encoding = "2.3.0" phf = { version = "0.11", features = ["macros"] } pin-project = "1.0.11" # don't pin because they yank crates from cargo pretty_assertions = "=1.4.0" -prost = "0.11" -prost-build = "0.11" +prost = "0.13" +prost-build = "0.13" rand = "=0.8.5" regex = "^1.7.0" reqwest = { version = "=0.12.5", default-features = false, features = ["rustls-tls", "stream", "gzip", "brotli", "socks", "json", "http2"] } # pinned because of https://github.com/seanmonstar/reqwest/pull/1955 From 7d9ba09f5a4464072476b8992e43f5e5c30bde3a Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Wed, 13 Nov 2024 19:47:01 +0530 Subject: [PATCH 17/97] fix(ext/node): use ERR_NOT_IMPLEMENTED for notImplemented (#26853) --- ext/node/polyfills/_utils.ts | 4 ++-- ext/node/polyfills/internal/errors.ts | 10 ++++++++++ tests/unit_node/perf_hooks_test.ts | 15 ++++++++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) 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/errors.ts b/ext/node/polyfills/internal/errors.ts index 962ca86e928946..61b53fa968f1fc 100644 --- a/ext/node/polyfills/internal/errors.ts +++ b/ext/node/polyfills/internal/errors.ts @@ -2390,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) { @@ -2862,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/tests/unit_node/perf_hooks_test.ts b/tests/unit_node/perf_hooks_test.ts index d5b9000410b07e..8247f9fd3aa561 100644 --- a/tests/unit_node/perf_hooks_test.ts +++ b/tests/unit_node/perf_hooks_test.ts @@ -1,6 +1,10 @@ // 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 { + monitorEventLoopDelay, + performance, + PerformanceObserver, +} from "node:perf_hooks"; import { assertEquals, assertThrows } from "@std/assert"; Deno.test({ @@ -68,3 +72,12 @@ Deno.test("[perf_hooks]: eventLoopUtilization", () => { assertEquals(typeof obj.active, "number"); assertEquals(typeof obj.utilization, "number"); }); + +Deno.test("[perf_hooks]: monitorEventLoopDelay", () => { + const e = assertThrows(() => { + monitorEventLoopDelay({ resolution: 1 }); + }); + + // deno-lint-ignore no-explicit-any + assertEquals((e as any).code, "ERR_NOT_IMPLEMENTED"); +}); From 6a4c6d83bacf5f03628a494778a30bce970f7cbc Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Wed, 13 Nov 2024 20:07:45 +0530 Subject: [PATCH 18/97] fix(ext/node): zlib.crc32() (#26856) Fixes https://github.com/denoland/deno/issues/26845 --- ext/node/lib.rs | 1 + ext/node/ops/zlib/mod.rs | 10 +++++++ ext/node/polyfills/zlib.ts | 53 ++++++++++++++++++++++++++++++++++++ tests/unit_node/zlib_test.ts | 5 ++++ 4 files changed, 69 insertions(+) diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 9ca21e9941a162..6d320b92c13360 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -345,6 +345,7 @@ deno_core::extension!(deno_node, ops::zlib::op_zlib_write, ops::zlib::op_zlib_init, ops::zlib::op_zlib_reset, + ops::zlib::op_zlib_crc32, ops::zlib::brotli::op_brotli_compress, ops::zlib::brotli::op_brotli_compress_async, ops::zlib::brotli::op_create_brotli_compress, diff --git a/ext/node/ops/zlib/mod.rs b/ext/node/ops/zlib/mod.rs index e75ef050d23d7a..991c0925d2538f 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 zlib::*; @@ -381,6 +382,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/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/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); +}); From f091d1ad69b4e5217ae3272b641171781a372c4f Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 13 Nov 2024 10:10:09 -0500 Subject: [PATCH 19/97] feat(node): stabilize detecting if CJS via `"type": "commonjs"` in a package.json (#26439) This will respect `"type": "commonjs"` in a package.json to determine if `.js`/`.jsx`/`.ts`/.tsx` files are CJS or ESM. If the file is found to be ESM it will be loaded as ESM though. --- cli/args/flags.rs | 2 - cli/args/mod.rs | 70 ++++- cli/emit.rs | 8 +- cli/factory.rs | 25 +- cli/graph_util.rs | 79 ++++- cli/lsp/analysis.rs | 37 ++- cli/lsp/completions.rs | 22 +- cli/lsp/config.rs | 12 + cli/lsp/diagnostics.rs | 1 + cli/lsp/documents.rs | 136 +++++++-- cli/lsp/language_server.rs | 40 ++- cli/lsp/repl.rs | 2 +- cli/lsp/resolver.rs | 287 +++++++++++------- cli/lsp/tsc.rs | 34 +-- cli/module_loader.rs | 79 +++-- cli/node.rs | 12 +- cli/resolver.rs | 271 ++++++++++------- cli/schemas/config-file.v1.json | 1 - cli/standalone/binary.rs | 1 - cli/standalone/mod.rs | 40 ++- cli/tools/coverage/mod.rs | 2 +- cli/tools/installer.rs | 1 + cli/tools/jupyter/mod.rs | 2 +- cli/tools/lint/mod.rs | 2 +- cli/tools/lint/rules/no_sloppy_imports.rs | 1 + cli/tools/repl/session.rs | 17 +- cli/tools/run/hmr.rs | 7 - cli/tsc/99_main_compiler.js | 41 +-- cli/tsc/mod.rs | 78 +++-- cli/worker.rs | 2 + ext/node/lib.rs | 7 +- ext/node/ops/require.rs | 44 +-- ext/node/polyfills/01_require.js | 31 +- ext/node/polyfills/process.ts | 2 +- resolvers/node/package_json.rs | 4 +- resolvers/node/resolution.rs | 23 +- runtime/fmt_errors.rs | 7 +- runtime/web_worker.rs | 7 + tests/integration/lsp_tests.rs | 49 +++ tests/node_compat/package.json | 3 + tests/node_compat/test/common/package.json | 1 - tests/node_compat/test/fixtures/package.json | 1 - tests/node_compat/test/internet/package.json | 1 - tests/node_compat/test/parallel/package.json | 1 - .../node_compat/test/pseudo-tty/package.json | 1 - tests/node_compat/test/pummel/package.json | 1 - .../node_compat/test/sequential/package.json | 1 - .../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 + tests/specs/compile/detect_cjs/deno.json | 5 - .../__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 .../eval/pkg_json_type_cjs/__test__.jsonc | 4 + .../specs/eval/pkg_json_type_cjs/package.json | 3 + .../__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/mod.rs | 20 ++ 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 - .../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 +- .../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/schema.json | 3 + tests/util/server/src/servers/mod.rs | 22 +- 119 files changed, 1235 insertions(+), 607 deletions(-) create mode 100644 tests/node_compat/package.json delete mode 100644 tests/node_compat/test/common/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/parallel/package.json 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/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 delete mode 100644 tests/specs/compile/detect_cjs/deno.json 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/eval/pkg_json_type_cjs/__test__.jsonc create mode 100644 tests/specs/eval/pkg_json_type_cjs/package.json 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 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 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 diff --git a/cli/args/flags.rs b/cli/args/flags.rs index eb77971748a335..37f58993729b8b 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -576,7 +576,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 } @@ -5720,7 +5719,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"); diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 3aaf2bd438f363..5e5bae87da4f1a 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; @@ -34,7 +35,6 @@ 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; @@ -1155,21 +1155,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) => { @@ -1178,9 +1191,7 @@ impl CliOptions { _ => { bail!("No main module.") } - }; - - Ok(main_module) + }) }) .as_ref() .map_err(|err| deno_core::anyhow::anyhow!("{}", err)) @@ -1229,7 +1240,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() } @@ -1607,9 +1618,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 { @@ -1673,7 +1686,6 @@ impl CliOptions { "byonm", "bare-node-builtins", "fmt-component", - "detect-cjs", ]) .collect(); @@ -1811,6 +1823,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>, 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/factory.rs b/cli/factory.rs index 417f771a30c338..5cb2dd7b3aedda 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -42,12 +42,12 @@ 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::CliGraphResolver; -use crate::resolver::CliGraphResolverOptions; use crate::resolver::CliNodeResolver; +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; @@ -201,7 +201,7 @@ struct CliFactoryServices { 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,14 +523,14 @@ impl CliFactory { .await } - pub async fn resolver(&self) -> Result<&Arc, AnyError> { + 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 { + Ok(Arc::new(CliResolver::new(CliResolverOptions { sloppy_imports_resolver: self.sloppy_imports_resolver()?.cloned(), node_resolver: Some(self.cli_node_resolver().await?.clone()), npm_resolver: if cli_options.no_npm() { @@ -541,9 +541,6 @@ impl CliFactory { 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(), }))) } @@ -652,7 +649,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( @@ -706,6 +702,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,8 +791,9 @@ 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(), }, ))) }) @@ -809,7 +807,6 @@ impl CliFactory { .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(), @@ -950,10 +947,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/graph_util.rs b/cli/graph_util.rs index 46257cf785bab4..3f48449bc5d59d 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; @@ -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/lsp/analysis.rs b/cli/lsp/analysis.rs index 683a59c2199cb3..9f26de70cb6d84 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -39,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; @@ -467,6 +468,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( @@ -477,7 +479,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 { @@ -485,6 +487,7 @@ impl<'a> TsResponseImportMapper<'a> { start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + referrer_kind, ResolutionMode::Types, ) .ok() @@ -507,10 +510,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 { @@ -518,6 +522,7 @@ impl<'a> TsResponseImportMapper<'a> { start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + referrer_kind, deno_graph::source::ResolutionMode::Types, ) .is_ok() @@ -586,6 +591,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> { @@ -602,8 +608,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 { @@ -633,6 +639,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> { @@ -652,7 +659,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 @@ -683,7 +690,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)) @@ -1017,6 +1024,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, @@ -1034,7 +1042,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(()); }; @@ -1276,6 +1285,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 @@ -1298,10 +1310,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()? @@ -1320,7 +1333,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..b62fa85533856a 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -3,7 +3,9 @@ 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::SingleReferrerGraphResolver; use super::testing::TestCollector; use super::testing::TestModule; use super::text::LineIndex; @@ -33,6 +35,7 @@ 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; @@ -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, @@ -847,6 +891,7 @@ impl FileSystemDocuments { None, None, None, + is_cjs_resolver, resolver.clone(), config.clone(), cache, @@ -863,6 +908,7 @@ impl FileSystemDocuments { None, None, None, + is_cjs_resolver, resolver.clone(), config.clone(), cache, @@ -890,6 +936,7 @@ impl FileSystemDocuments { None, None, maybe_headers, + is_cjs_resolver, resolver.clone(), config.clone(), cache, @@ -930,6 +977,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,9 +989,6 @@ 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>>, @@ -970,6 +1019,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 +1054,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) } @@ -1133,6 +1183,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 +1208,7 @@ impl Documents { } else { self.file_system_docs.get( &specifier, + &self.is_cjs_resolver, &self.resolver, &self.config, &self.cache, @@ -1215,12 +1267,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 +1292,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 +1339,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 +1363,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 +1394,7 @@ impl Documents { { fs_docs.refresh_document( specifier, + &self.is_cjs_resolver, &self.resolver, &self.config, &self.cache, @@ -1409,6 +1480,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 +1494,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 +1509,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 +1578,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 +1587,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 +1613,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 +1643,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), }, )) diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 2554fa34b1853f..b2bd72416ac8c7 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; @@ -1622,6 +1631,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 +1673,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 +1825,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 +1854,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 +1912,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 +2265,7 @@ impl Inner { &self.jsr_search_api, &self.npm_search_api, &self.documents, + &self.is_cjs_resolver, self.resolver.as_ref(), self .config 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..37f63b912cbef7 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -2,16 +2,18 @@ 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::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_runtime::deno_fs; use deno_runtime::deno_node::NodeResolver; @@ -24,6 +26,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,6 +36,7 @@ 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; @@ -53,21 +57,20 @@ 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::CliDenoResolverFs; -use crate::resolver::CliGraphResolver; -use crate::resolver::CliGraphResolverOptions; use crate::resolver::CliNodeResolver; +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, jsr_resolver: Option>, npm_resolver: Option>, node_resolver: Option>, @@ -81,8 +84,7 @@ struct LspScopeResolver { impl Default for LspScopeResolver { fn default() -> Self { Self { - cjs_tracker: None, - graph_resolver: create_graph_resolver(None, None, None), + resolver: create_cli_resolver(None, None, None), jsr_resolver: None, npm_resolver: None, node_resolver: None, @@ -103,7 +105,6 @@ impl LspScopeResolver { ) -> 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()), @@ -118,14 +119,7 @@ impl LspScopeResolver { .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, @@ -133,7 +127,7 @@ impl LspScopeResolver { )); } } - let graph_resolver = create_graph_resolver( + let cli_resolver = create_cli_resolver( config_data.map(|d| d.as_ref()), npm_resolver.as_ref(), node_resolver.as_ref(), @@ -146,7 +140,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 +150,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) @@ -182,6 +185,8 @@ impl LspScopeResolver { .resolve_req_reference( &req_ref, &referrer, + // todo(dsherret): this is wrong because it doesn't consider CJS referrers + NodeModuleKind::Esm, NodeResolutionMode::Types, ) .ok()?, @@ -195,8 +200,7 @@ 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, jsr_resolver, npm_resolver, node_resolver, @@ -216,30 +220,22 @@ impl LspScopeResolver { 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(), )); } - let graph_resolver = create_graph_resolver( + let graph_resolver = create_cli_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: graph_resolver, jsr_resolver: self.jsr_resolver.clone(), npm_resolver, node_resolver, @@ -334,12 +330,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,15 +343,15 @@ 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( @@ -429,13 +425,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()?; Some(into_specifier_and_media_type(Some( node_resolver - .resolve_req_reference(req_ref, referrer, NodeResolutionMode::Types) + .resolve_req_reference( + req_ref, + referrer, + referrer_kind, + NodeResolutionMode::Types, + ) .ok()?, ))) } @@ -478,6 +480,7 @@ 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 { @@ -487,6 +490,7 @@ impl LspResolver { .resolve_if_for_npm_pkg( specifier_text, referrer, + referrer_kind, NodeResolutionMode::Types, ) .ok() @@ -615,21 +619,6 @@ async fn create_npm_resolver( Some(create_cli_npm_resolver_for_lsp(options).await) } -fn create_cjs_tracker( - in_npm_pkg_checker: 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, - }, - )) -} - fn create_in_npm_pkg_checker( npm_resolver: &Arc, ) -> Arc { @@ -649,7 +638,6 @@ fn create_in_npm_pkg_checker( } fn create_node_resolver( - cjs_tracker: Arc, fs: Arc, in_npm_pkg_checker: Arc, npm_resolver: &Arc, @@ -662,7 +650,6 @@ fn create_node_resolver( pkg_json_resolver.clone(), )); Arc::new(CliNodeResolver::new( - cjs_tracker.clone(), fs, in_npm_pkg_checker, node_resolver_inner, @@ -670,13 +657,12 @@ fn create_node_resolver( )) } -fn create_graph_resolver( +fn create_cli_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 { +) -> Arc { + Arc::new(CliResolver::new(CliResolverOptions { node_resolver: node_resolver.cloned(), npm_resolver: npm_resolver.cloned(), workspace_resolver: config_data.map(|d| d.resolver.clone()).unwrap_or_else( @@ -691,9 +677,6 @@ fn create_graph_resolver( )) }, ), - 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")), @@ -726,6 +709,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 +960,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..c9b24176ad2e0a 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -69,6 +69,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; @@ -4401,25 +4402,15 @@ 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, }) }; @@ -4662,6 +4653,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())?; @@ -5544,6 +5539,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()); diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 43c9e1aa0750e0..f9c974d77ee28e 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::CliResolver; use crate::resolver::ModuleCodeStringSource; use crate::resolver::NotSupportedKindInNpmError; use crate::resolver::NpmModuleLoader; @@ -60,7 +60,6 @@ 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; @@ -73,6 +72,7 @@ use deno_runtime::deno_node::create_host_defined_options; use deno_runtime::deno_node::NodeRequireLoader; 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 +206,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>, @@ -220,7 +219,7 @@ struct SharedCliModuleLoaderState { npm_resolver: Arc, npm_module_loader: NpmModuleLoader, parsed_source_cache: Arc, - resolver: Arc, + resolver: Arc, } pub struct CliModuleLoaderFactory { @@ -243,7 +242,7 @@ impl CliModuleLoaderFactory { npm_resolver: Arc, npm_module_loader: NpmModuleLoader, parsed_source_cache: Arc, - resolver: Arc, + resolver: Arc, ) -> Self { Self { shared: Arc::new(SharedCliModuleLoaderState { @@ -252,7 +251,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(_) @@ -286,7 +284,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 +292,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 +341,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 @@ -450,7 +447,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 }; @@ -478,7 +475,12 @@ impl self .shared .node_resolver - .resolve(raw_specifier, referrer, NodeResolutionMode::Execution)? + .resolve( + raw_specifier, + referrer, + self.shared.cjs_tracker.get_referrer_kind(referrer), + NodeResolutionMode::Execution, + )? .into_url(), ); } @@ -508,6 +510,7 @@ impl start: deno_graph::Position::zeroed(), end: deno_graph::Position::zeroed(), }, + self.shared.cjs_tracker.get_referrer_kind(referrer), ResolutionMode::Execution, )?), }; @@ -518,6 +521,7 @@ impl return self.shared.node_resolver.resolve_req_reference( &reference, referrer, + self.shared.cjs_tracker.get_referrer_kind(referrer), NodeResolutionMode::Execution, ); } @@ -538,6 +542,7 @@ impl &package_folder, module.nv_reference.sub_path(), Some(referrer), + self.shared.cjs_tracker.get_referrer_kind(referrer), NodeResolutionMode::Execution, ) .with_context(|| { @@ -668,14 +673,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, @@ -1031,6 +1033,7 @@ impl ModuleGraphUpdatePermit for WorkerModuleGraphUpdatePermit { #[derive(Debug)] struct CliNodeRequireLoader { + cjs_tracker: Arc, emitter: Arc, fs: Arc, graph_container: TGraphContainer, @@ -1038,26 +1041,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 +1086,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..8235745a9114c3 100644 --- a/cli/node.rs +++ b/cli/node.rs @@ -62,10 +62,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 +70,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 +100,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 +127,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/resolver.rs b/cli/resolver.rs index 710b97509345a6..786e5d0dbc810a 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -4,7 +4,6 @@ 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; @@ -17,9 +16,7 @@ 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; @@ -52,7 +49,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; @@ -108,7 +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, @@ -117,14 +112,12 @@ pub struct CliNodeResolver { 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, @@ -140,9 +133,11 @@ impl CliNodeResolver { &self, specifier: &str, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, mode: NodeResolutionMode, ) -> Result, AnyError> { - let resolution_result = self.resolve(specifier, referrer, mode); + let resolution_result = + self.resolve(specifier, referrer, referrer_kind, mode); match resolution_result { Ok(res) => Ok(Some(res)), Err(err) => { @@ -213,35 +208,26 @@ impl CliNodeResolver { &self, specifier: &str, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, 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) + self + .node_resolver + .resolve(specifier, referrer, referrer_kind, mode) } pub fn resolve_req_reference( &self, req_ref: &NpmPackageReqReference, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, mode: NodeResolutionMode, ) -> Result { self.resolve_req_with_sub_path( req_ref.req(), req_ref.sub_path(), referrer, + referrer_kind, mode, ) } @@ -251,6 +237,7 @@ impl CliNodeResolver { req: &PackageReq, sub_path: Option<&str>, referrer: &ModuleSpecifier, + referrer_kind: NodeModuleKind, mode: NodeResolutionMode, ) -> Result { let package_folder = self @@ -260,6 +247,7 @@ impl CliNodeResolver { &package_folder, sub_path, Some(referrer), + referrer_kind, mode, ); match resolution_result { @@ -284,12 +272,14 @@ impl CliNodeResolver { package_folder: &Path, sub_path: Option<&str>, maybe_referrer: Option<&ModuleSpecifier>, + referrer_kind: NodeModuleKind, mode: NodeResolutionMode, ) -> Result { self.node_resolver.resolve_package_subpath_from_deno_module( package_folder, sub_path, maybe_referrer, + referrer_kind, mode, ) } @@ -419,10 +409,6 @@ 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 @@ -430,22 +416,22 @@ pub struct CjsTrackerOptions { /// 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, + is_cjs_resolver: IsCjsResolver, + known: DashMap, } impl CjsTracker { pub fn new( in_npm_pkg_checker: Arc, pkg_json_resolver: Arc, - options: CjsTrackerOptions, + options: IsCjsResolverOptions, ) -> Self { Self { - in_npm_pkg_checker, - pkg_json_resolver, - unstable_detect_cjs: options.unstable_detect_cjs, + is_cjs_resolver: IsCjsResolver::new( + in_npm_pkg_checker, + pkg_json_resolver, + options, + ), known: Default::default(), } } @@ -485,47 +471,135 @@ impl CjsTracker { .get_known_kind_with_is_script(specifier, media_type, is_script) { Some(kind) => kind, - None => self.check_based_on_pkg_json(specifier)?, + None => self.is_cjs_resolver.check_based_on_pkg_json(specifier)?, }; - Ok(kind.is_cjs()) + Ok(kind == NodeModuleKind::Cjs) } pub fn get_known_kind( &self, specifier: &ModuleSpecifier, media_type: MediaType, - ) -> Option { + ) -> Option { self.get_known_kind_with_is_script(specifier, media_type, None) } + pub fn get_referrer_kind( + &self, + specifier: &ModuleSpecifier, + ) -> 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_with_is_script( + &self, + specifier: &ModuleSpecifier, + 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, +} + +#[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, + } + } + + pub fn get_lsp_referrer_kind( + &self, + specifier: &ModuleSpecifier, + 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: &ModuleSpecifier, media_type: MediaType, is_script: Option, - ) -> Option { + known_cache: &DashMap, + ) -> Option { if specifier.scheme() != "file" { - return Some(ModuleKind::Esm); + return Some(NodeModuleKind::Esm); } match media_type { - MediaType::Mts | MediaType::Mjs | MediaType::Dmts => Some(ModuleKind::Esm), - MediaType::Cjs | MediaType::Cts | MediaType::Dcts => Some(ModuleKind::Cjs), + 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) = self.known.get(specifier).map(|v| *v) { + 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 { - self.known.insert(specifier.clone(), value); + known_cache.insert(specifier.clone(), value); } - Some(value.unwrap_or(ModuleKind::Esm)) + Some(value.unwrap_or(NodeModuleKind::Esm)) } } MediaType::Wasm | - MediaType::Json => Some(ModuleKind::Esm), + MediaType::Json => Some(NodeModuleKind::Esm), MediaType::JavaScript | MediaType::Jsx | MediaType::TypeScript @@ -534,18 +608,18 @@ impl CjsTracker { | 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) { + 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 - self.known.insert(specifier.clone(), ModuleKind::Esm); - Some(ModuleKind::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 - self.known.insert(specifier.clone(), ModuleKind::Esm); - Some(ModuleKind::Esm) + known_cache.insert(specifier.clone(), NodeModuleKind::Esm); + Some(NodeModuleKind::Esm) } else { None } @@ -556,27 +630,38 @@ impl CjsTracker { fn check_based_on_pkg_json( &self, specifier: &ModuleSpecifier, - ) -> Result { + ) -> 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)) + Ok(if is_file_location_cjs { + NodeModuleKind::Cjs + } else { + NodeModuleKind::Esm + }) } else { - Ok(ModuleKind::Cjs) + Ok(NodeModuleKind::Cjs) } - } else if self.unstable_detect_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"; - Ok(ModuleKind::from_is_cjs(is_cjs_type)) + 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(ModuleKind::Esm) + Ok(NodeModuleKind::Esm) } } else { - Ok(ModuleKind::Esm) + Ok(NodeModuleKind::Esm) } } } @@ -587,48 +672,33 @@ pub type CliSloppyImportsResolver = /// A resolver that takes care of resolution, taking into account loaded /// import map, JSX settings. #[derive(Debug)] -pub struct CliGraphResolver { +pub struct CliResolver { node_resolver: Option>, 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 struct CliResolverOptions<'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, 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()), @@ -638,10 +708,6 @@ impl CliGraphResolver { } } - pub fn as_graph_resolver(&self) -> &dyn Resolver { - self - } - pub fn create_graph_npm_resolver(&self) -> WorkerCliNpmGraphResolver { WorkerCliNpmGraphResolver { npm_resolver: self.npm_resolver.as_ref(), @@ -649,28 +715,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 { @@ -686,7 +736,7 @@ impl Resolver for CliGraphResolver { 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)) + .resolve(raw_specifier, referrer, referrer_kind, to_node_mode(mode)) .map(|res| res.into_url()) .map_err(|e| ResolveError::Other(e.into())); } @@ -759,6 +809,7 @@ impl Resolver for CliGraphResolver { pkg_json.dir_path(), sub_path.as_deref(), Some(referrer), + referrer_kind, to_node_mode(mode), ) .map_err(|e| ResolveError::Other(e.into())), @@ -800,6 +851,7 @@ impl Resolver for CliGraphResolver { pkg_folder, sub_path.as_deref(), Some(referrer), + referrer_kind, to_node_mode(mode), ) .map_err(|e| ResolveError::Other(e.into())) @@ -847,6 +899,7 @@ impl Resolver for CliGraphResolver { pkg_folder, npm_req_ref.sub_path(), Some(referrer), + referrer_kind, to_node_mode(mode), ) .map_err(|e| ResolveError::Other(e.into())); @@ -855,7 +908,12 @@ impl Resolver for CliGraphResolver { // do npm resolution for byonm if is_byonm { return node_resolver - .resolve_req_reference(&npm_req_ref, referrer, to_node_mode(mode)) + .resolve_req_reference( + &npm_req_ref, + referrer, + referrer_kind, + to_node_mode(mode), + ) .map_err(|err| err.into()); } } @@ -869,7 +927,12 @@ impl Resolver for CliGraphResolver { // 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)) + .resolve_if_for_npm_pkg( + raw_specifier, + referrer, + referrer_kind, + to_node_mode(mode), + ) .map_err(ResolveError::Other)?; if let Some(res) = maybe_resolution { match res { diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json index 27c8499ea21108..ed80eb17b12205 100644 --- a/cli/schemas/config-file.v1.json +++ b/cli/schemas/config-file.v1.json @@ -528,7 +528,6 @@ "bare-node-builtins", "byonm", "cron", - "detect-cjs", "ffi", "fs", "fmt-component", diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index 960aad15784a1a..b48e1c97ceb63f 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -720,7 +720,6 @@ impl<'a> DenoCompileBinaryWriter<'a> { 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(), }, diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index bb0ab423ddbf84..15937c7aee7608 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -45,6 +45,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; @@ -76,9 +78,9 @@ 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::IsCjsResolverOptions; use crate::resolver::NpmModuleLoader; use crate::util::progress_bar::ProgressBar; use crate::util::progress_bar::ProgressBarStyle; @@ -146,13 +148,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(), ); } @@ -178,6 +194,7 @@ impl ModuleLoader for EmbeddedModuleLoader { pkg_json.dir_path(), sub_path.as_deref(), Some(&referrer), + referrer_kind, NodeResolutionMode::Execution, )?, ), @@ -192,6 +209,7 @@ impl ModuleLoader for EmbeddedModuleLoader { req, sub_path.as_deref(), &referrer, + referrer_kind, NodeResolutionMode::Execution, ) } @@ -211,6 +229,7 @@ impl ModuleLoader for EmbeddedModuleLoader { pkg_folder, sub_path.as_deref(), Some(&referrer), + referrer_kind, NodeResolutionMode::Execution, )?, ) @@ -224,6 +243,7 @@ impl ModuleLoader for EmbeddedModuleLoader { return self.shared.node_resolver.resolve_req_reference( &reference, &referrer, + referrer_kind, NodeResolutionMode::Execution, ); } @@ -250,6 +270,7 @@ impl ModuleLoader for EmbeddedModuleLoader { let maybe_res = self.shared.node_resolver.resolve_if_for_npm_pkg( raw_specifier, &referrer, + referrer_kind, NodeResolutionMode::Execution, )?; if let Some(res) = maybe_res { @@ -429,6 +450,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 { @@ -628,14 +657,14 @@ pub async fn run(data: StandaloneData) -> Result { 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(), @@ -646,7 +675,6 @@ pub async fn run(data: StandaloneData) -> Result { cjs_tracker.clone(), fs.clone(), None, - false, ); let node_code_translator = Arc::new(NodeCodeTranslator::new( cjs_esm_code_analyzer, 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/installer.rs b/cli/tools/installer.rs index ed86e86c79bf0f..1655f0a322eaff 100644 --- a/cli/tools/installer.rs +++ b/cli/tools/installer.rs @@ -1396,6 +1396,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..d8edf240481cf5 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, 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/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/tsc/99_main_compiler.js b/cli/tsc/99_main_compiler.js index 52c9134dad871c..68d099253a5f4e 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 { @@ -624,8 +622,6 @@ delete Object.prototype.__proto__; `"data" is unexpectedly null for "${specifier}".`, ); - isCjsCache.set(specifier, isCjs); - sourceFile = ts.createSourceFile( specifier, data, @@ -699,7 +695,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 +719,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 +735,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 +817,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 +1241,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/mod.rs b/cli/tsc/mod.rs index dc7fc38f7a0172..a569061625a7a5 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -343,31 +343,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 +632,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() @@ -737,6 +746,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 +762,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 +847,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; @@ -886,6 +900,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 +980,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 { diff --git a/cli/worker.rs b/cli/worker.rs index 402644a42cf17e..83e36b36c218a4 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -44,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; @@ -680,6 +681,7 @@ impl CliMainWorkerFactory { package_folder, sub_path, /* referrer */ None, + NodeModuleKind::Esm, NodeResolutionMode::Execution, )?; if specifier diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 6d320b92c13360..702c919f47b198 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -14,6 +14,7 @@ use deno_core::url::Url; #[allow(unused_imports)] use deno_core::v8; use deno_core::v8::ExternalReference; +use node_resolver::errors::ClosestPkgJsonError; use node_resolver::NpmResolverRc; use once_cell::sync::Lazy; @@ -157,6 +158,10 @@ pub trait NodeRequireLoader { ) -> Result, AnyError>; fn load_text_file_lossy(&self, path: &Path) -> Result; + + /// Get if the module kind is maybe CJS and loading should determine + /// if its CJS or ESM. + fn is_maybe_cjs(&self, specifier: &Url) -> Result; } pub static NODE_ENV_VAR_ALLOWLIST: Lazy> = Lazy::new(|| { @@ -385,6 +390,7 @@ deno_core::extension!(deno_node, ops::require::op_require_proxy_path, ops::require::op_require_is_deno_dir_package, ops::require::op_require_resolve_deno_dir, + ops::require::op_require_is_maybe_cjs, ops::require::op_require_is_request_relative, ops::require::op_require_resolve_lookup_paths, ops::require::op_require_try_self_parent_path

, @@ -398,7 +404,6 @@ deno_core::extension!(deno_node, ops::require::op_require_read_file

, ops::require::op_require_as_file_path, ops::require::op_require_resolve_exports

, - ops::require::op_require_read_closest_package_json

, ops::require::op_require_read_package_scope

, ops::require::op_require_package_imports_resolve

, ops::require::op_require_break_on_next_statement, diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index 30db8b629325d8..b7fa8feb20145c 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -1,16 +1,18 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::error::AnyError; use deno_core::op2; use deno_core::url::Url; use deno_core::v8; use deno_core::JsRuntimeInspector; -use deno_core::ModuleSpecifier; use deno_core::OpState; use deno_fs::FileSystemRc; +use deno_package_json::NodeModuleKind; 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 node_resolver::NodeModuleKind; +use node_resolver::errors::ClosestPkgJsonError; use node_resolver::NodeResolutionMode; use node_resolver::REQUIRE_CONDITIONS; use std::borrow::Cow; @@ -217,17 +219,17 @@ pub fn op_require_resolve_deno_dir( state: &mut OpState, #[string] request: String, #[string] parent_filename: String, -) -> Option { +) -> Result, AnyError> { let resolver = state.borrow::(); - resolver - .resolve_package_folder_from_package( - &request, - &ModuleSpecifier::from_file_path(&parent_filename).unwrap_or_else(|_| { - panic!("Url::from_file_path: [{:?}]", 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)] @@ -564,19 +566,17 @@ where })) } -#[op2] -#[serde] -pub fn op_require_read_closest_package_json

( +#[op2(fast)] +pub fn op_require_is_maybe_cjs( state: &mut OpState, #[string] filename: String, -) -> Result, node_resolver::errors::ClosestPkgJsonError> -where - P: NodePermissions + 'static, -{ +) -> Result { 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) + let Ok(url) = url_from_file_path(&filename) else { + return Ok(false); + }; + let loader = state.borrow::(); + loader.is_maybe_cjs(&url) } #[op2] diff --git a/ext/node/polyfills/01_require.js b/ext/node/polyfills/01_require.js index 0d267ca444b825..083d4e49bef08c 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, @@ -1060,36 +1060,13 @@ Module.prototype._compile = function (content, filename, format) { return result; }; -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"; - } - } - - module._compile(content, filename, format); -}; - -Module._extensions[".ts"] = +Module._extensions[".js"] = + 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"; - } - + const format = op_require_is_maybe_cjs(filename) ? undefined : "module"; module._compile(content, filename, format); }; diff --git a/ext/node/polyfills/process.ts b/ext/node/polyfills/process.ts index bf626e410056bc..647376d5cf0147 100644 --- a/ext/node/polyfills/process.ts +++ b/ext/node/polyfills/process.ts @@ -919,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/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..fcff2924250634 100644 --- a/resolvers/node/resolution.rs +++ b/resolvers/node/resolution.rs @@ -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)] @@ -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, )?; @@ -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 { diff --git a/runtime/fmt_errors.rs b/runtime/fmt_errors.rs index 4cd8a063450e96..28cd702966225d 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"), ]; diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index d81c82c5013be7..e272291538cd7c 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -393,6 +393,13 @@ pub struct WebWorker { maybe_worker_metadata: Option, } +impl Drop for WebWorker { + fn drop(&mut self) { + // clean up the package.json thread local cache + node_resolver::PackageJsonThreadLocalCache::clear(); + } +} + impl WebWorker { pub fn bootstrap_from_options( services: WebWorkerServiceOptions, diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs index af5f9de23eb5e1..dcef6960848c95 100644 --- a/tests/integration/lsp_tests.rs +++ b/tests/integration/lsp_tests.rs @@ -16139,6 +16139,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(); 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/test/common/package.json b/tests/node_compat/test/common/package.json deleted file mode 100644 index 0967ef424bce67..00000000000000 --- a/tests/node_compat/test/common/package.json +++ /dev/null @@ -1 +0,0 @@ -{} 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/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/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/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/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/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/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/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/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/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/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/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/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/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", From 6b5cb41545086a7a550c698620f5b7bb19b5524f Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 13 Nov 2024 10:39:40 -0500 Subject: [PATCH 20/97] fix(fmt): error instead of panic on unstable format (#26859) --- cli/tools/fmt.rs | 48 ++++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index f7f8dabc6f1b0d..56b1632cfb7274 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -790,28 +790,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(), ) } } @@ -1215,6 +1213,8 @@ fn is_supported_ext_fmt(path: &Path) -> bool { #[cfg(test)] mod test { + use test_util::assert_starts_with; + use super::*; #[test] @@ -1270,12 +1270,16 @@ mod test { } #[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 +1293,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] From 15fae197482a9ac84e0227200ef8f4d0d4e4bd33 Mon Sep 17 00:00:00 2001 From: Yusuke Tanaka Date: Thu, 14 Nov 2024 14:04:32 +0900 Subject: [PATCH 21/97] fix(cli): preserve comments in doc tests (#26828) This commit makes comments in code snippets in JSDoc or markdown preserved when they are executed as tests. In particular, this is needed to get TypeScript special comments such as `@ts-ignore` or `@ts-expect-error` to work correctly. Fixes #26728 --- cli/util/extract.rs | 57 ++++++++++++++++++- .../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 ++ 7 files changed, 101 insertions(+), 1 deletion(-) 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 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/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) + From cb107a762fb903973e0d0c2e4481baf2c0bc13b8 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 14 Nov 2024 02:43:41 -0800 Subject: [PATCH 22/97] chore: upgrade runtimelib (jupyter) to 0.19 (#26862) Upgrades the `runtimelib` crate. Of utility for users and library authors is the support for binary buffers on messages, especially for comms. --- Cargo.lock | 18 ++++++++++++++++-- cli/Cargo.toml | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8d84073a882c97..2c25c0de034a86 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4160,6 +4160,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "jupyter-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd71aa17c4fa65e6d7536ab2728881a41f8feb2ee5841c2240516c3c3d65d8b3" +dependencies = [ + "anyhow", + "serde", + "serde_json", + "thiserror", + "uuid", +] + [[package]] name = "k256" version = "0.13.3" @@ -5965,9 +5978,9 @@ dependencies = [ [[package]] name = "runtimelib" -version = "0.14.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3d817764e3971867351e6103955b17d808f5330e9ef63aaaaab55bf8c664c1" +checksum = "fe23ba9967355bbb1be2fb9a8e51bd239ffdf9c791fad5a9b765122ee2bde2e4" dependencies = [ "anyhow", "base64 0.22.1", @@ -5977,6 +5990,7 @@ dependencies = [ "dirs", "futures", "glob", + "jupyter-serde", "rand", "ring", "serde", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index e98e0ac0012369..928259a8352ab9 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -122,7 +122,7 @@ 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 From 4e899d48cffa95617266dd8f9aef54603a87ad82 Mon Sep 17 00:00:00 2001 From: snek Date: Thu, 14 Nov 2024 13:16:28 +0100 Subject: [PATCH 23/97] fix: otel resiliency (#26857) Improving the breadth of collected data, and ensuring that the collected data is more likely to be successfully reported. - Use `log` crate in more places - Hook up `log` crate to otel - Switch to process-wide otel processors - Handle places that use `process::exit` Also adds a more robust testing framework, with a deterministic tracing setting. Refs: https://github.com/denoland/deno/issues/26852 --- Cargo.toml | 2 +- cli/args/flags.rs | 19 +++ cli/args/mod.rs | 19 +-- cli/clippy.toml | 1 + cli/graph_util.rs | 2 +- cli/lsp/parent_process_checker.rs | 2 +- cli/main.rs | 28 ++-- cli/mainrt.rs | 20 +-- cli/standalone/binary.rs | 2 +- cli/tools/lint/mod.rs | 2 +- cli/tools/test/mod.rs | 2 + cli/tools/upgrade.rs | 2 +- cli/util/file_watcher.rs | 3 +- cli/util/logger.rs | 1 + cli/util/v8.rs | 9 +- ext/napi/node_api.rs | 5 +- ext/napi/uv.rs | 3 +- runtime/clippy.toml | 1 + runtime/js/telemetry.js | 20 ++- runtime/lib.rs | 6 + runtime/ops/os/mod.rs | 4 +- runtime/ops/otel.rs | 136 +++++++++++++----- runtime/snapshot.rs | 2 +- runtime/web_worker.rs | 10 +- runtime/worker.rs | 4 +- runtime/worker_bootstrap.rs | 2 +- tests/specs/cli/otel_basic/__test__.jsonc | 32 ++++- tests/specs/cli/otel_basic/basic.out | 76 ++++++++++ .../cli/otel_basic/{child.ts => basic.ts} | 10 +- 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 | 80 +++-------- 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/util/server/src/macros.rs | 1 + 37 files changed, 411 insertions(+), 175 deletions(-) create mode 100644 tests/specs/cli/otel_basic/basic.out rename tests/specs/cli/otel_basic/{child.ts => basic.ts} (70%) 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/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 diff --git a/Cargo.toml b/Cargo.toml index 6a8855629c45ed..f384b925530933 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -141,7 +141,7 @@ jsonc-parser = { version = "=0.26.2", features = ["serde"] } lazy-regex = "3" libc = "0.2.126" libz-sys = { version = "1.1.20", default-features = false } -log = "0.4.20" +log = { version = "0.4.20", features = ["kv"] } lsp-types = "=0.97.0" # used by tower-lsp and "proposed" feature is unstable in patch releases memmem = "0.1.1" monch = "=0.5.0" diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 37f58993729b8b..720d8db3b096c2 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; @@ -967,6 +968,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. diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 5e5bae87da4f1a..50a37b3346e753 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -823,10 +823,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)); } } @@ -1131,20 +1129,7 @@ impl CliOptions { } pub fn otel_config(&self) -> Option { - if self - .flags - .unstable_config - .features - .contains(&String::from("otel")) - { - Some(OtelConfig { - runtime_name: Cow::Borrowed("deno"), - runtime_version: Cow::Borrowed(crate::version::DENO_VERSION_INFO.deno), - ..Default::default() - }) - } else { - None - } + self.flags.otel_config() } pub fn env_file_name(&self) -> Option<&String> { 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/graph_util.rs b/cli/graph_util.rs index 3f48449bc5d59d..6ed0506dd70b30 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -188,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); } } 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/main.rs b/cli/main.rs index 04daff6700ac7f..20d2cb6bff5943 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -350,18 +350,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 +379,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 +417,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 +431,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 +474,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/standalone/binary.rs b/cli/standalone/binary.rs index b48e1c97ceb63f..ebcbf3ee624b86 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -517,7 +517,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { Some(bytes) => bytes, None => { log::info!("Download could not be found, aborting"); - std::process::exit(1) + deno_runtime::exit(1); } }; diff --git a/cli/tools/lint/mod.rs b/cli/tools/lint/mod.rs index d8edf240481cf5..36f1cc04915275 100644 --- a/cli/tools/lint/mod.rs +++ b/cli/tools/lint/mod.rs @@ -191,7 +191,7 @@ pub async fn lint( linter.finish() }; if !success { - std::process::exit(1); + deno_runtime::exit(1); } } diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index fa849614fafab6..966b0d285aac6c 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); } } 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/util/file_watcher.rs b/cli/util/file_watcher.rs index 8d734af88e97dc..21ea95e067cd25 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: ") 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/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/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/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/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/js/telemetry.js b/runtime/js/telemetry.js index e9eb51f7ca23b1..195839fb158d77 100644 --- a/runtime/js/telemetry.js +++ b/runtime/js/telemetry.js @@ -22,11 +22,14 @@ const { ReflectApply, SymbolFor, Error, + NumberPrototypeToString, + StringPrototypePadStart, } = primordials; const { AsyncVariable, setAsyncContext } = core; const CURRENT = new AsyncVariable(); let TRACING_ENABLED = false; +let DETERMINISTIC = false; const SPAN_ID_BYTES = 8; const TRACE_ID_BYTES = 16; @@ -45,7 +48,19 @@ const hexSliceLookupTable = (function () { return table; })(); +let counter = 1; + +const INVALID_SPAN_ID = "0000000000000000"; +const INVALID_TRACE_ID = "00000000000000000000000000000000"; + function generateId(bytes) { + if (DETERMINISTIC) { + return StringPrototypePadStart( + NumberPrototypeToString(counter++, 16), + bytes * 2, + "0", + ); + } let out = ""; for (let i = 0; i < bytes / 4; i += 1) { const r32 = (MathRandom() * 2 ** 32) >>> 0; @@ -112,8 +127,6 @@ function submit(span) { const now = () => (performance.timeOrigin + performance.now()) / 1000; -const INVALID_SPAN_ID = "0000000000000000"; -const INVALID_TRACE_ID = "00000000000000000000000000000000"; const NO_ASYNC_CONTEXT = {}; class Span { @@ -362,9 +375,10 @@ const otelConsoleConfig = { export function bootstrap(config) { if (config.length === 0) return; - const { 0: consoleConfig } = config; + const { 0: consoleConfig, 1: deterministic } = config; TRACING_ENABLED = true; + DETERMINISTIC = deterministic === 1; switch (consoleConfig) { case otelConsoleConfig.capture: diff --git a/runtime/lib.rs b/runtime/lib.rs index 21b61e1c058595..6fb8c5f3daa76d 100644 --- a/runtime/lib.rs +++ b/runtime/lib.rs @@ -140,6 +140,12 @@ pub static UNSTABLE_GRANULAR_FLAGS: &[UnstableGranularFlag] = &[ }, ]; +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/os/mod.rs b/runtime/ops/os/mod.rs index 790962f38d11bf..b10a2939e67cdd 100644 --- a/runtime/ops/os/mod.rs +++ b/runtime/ops/os/mod.rs @@ -186,10 +186,8 @@ fn op_get_exit_code(state: &mut OpState) -> i32 { #[op2(fast)] fn op_exit(state: &mut OpState) { - crate::ops::otel::otel_drop_state(state); - let code = state.borrow::().get(); - std::process::exit(code) + crate::exit(code) } #[op2] diff --git a/runtime/ops/otel.rs b/runtime/ops/otel.rs index 6a4750acc2bd24..b32764d7f8f511 100644 --- a/runtime/ops/otel.rs +++ b/runtime/ops/otel.rs @@ -13,6 +13,9 @@ 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; @@ -58,15 +61,15 @@ type LogProcessor = BatchLogProcessor; deno_core::extension!( deno_otel, - ops = [op_otel_log, op_otel_span_start, op_otel_span_continue, op_otel_span_attribute, op_otel_span_attribute2, op_otel_span_attribute3, op_otel_span_flush], - options = { - otel_config: Option, // `None` means OpenTelemetry is disabled. - }, - state = |state, options| { - if let Some(otel_config) = options.otel_config { - otel_create_globals(otel_config, state).unwrap(); - } - } + ops = [ + op_otel_log, + op_otel_span_start, + op_otel_span_continue, + op_otel_span_attribute, + op_otel_span_attribute2, + op_otel_span_attribute3, + op_otel_span_flush, + ], ); #[derive(Debug, Clone, Serialize, Deserialize)] @@ -74,6 +77,7 @@ 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)] @@ -90,6 +94,7 @@ impl Default for OtelConfig { runtime_name: Cow::Borrowed(env!("CARGO_PKG_NAME")), runtime_version: Cow::Borrowed(env!("CARGO_PKG_VERSION")), console: OtelConsoleConfig::Capture, + deterministic: false, } } } @@ -295,10 +300,10 @@ mod hyper_client { } } -fn otel_create_globals( - config: OtelConfig, - op_state: &mut OpState, -) -> anyhow::Result<()> { +static OTEL_PROCESSORS: OnceCell<(SpanProcessor, LogProcessor)> = + 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. @@ -318,7 +323,7 @@ fn otel_create_globals( return Err(anyhow!( "Failed to read env var OTEL_EXPORTER_OTLP_PROTOCOL: {}", err - )) + )); } }; @@ -372,7 +377,6 @@ fn otel_create_globals( let mut span_processor = BatchSpanProcessor::builder(span_exporter, OtelSharedRuntime).build(); span_processor.set_resource(&resource); - op_state.put::(span_processor); let log_exporter = HttpExporterBuilder::default() .with_http_client(client) @@ -381,36 +385,92 @@ fn otel_create_globals( let log_processor = BatchLogProcessor::builder(log_exporter, OtelSharedRuntime).build(); log_processor.set_resource(&resource); - op_state.put::(log_processor); + + OTEL_PROCESSORS + .set((span_processor, log_processor)) + .map_err(|_| anyhow!("failed to init otel"))?; Ok(()) } /// This function is called by the runtime whenever it is about to call -/// `os::process::exit()`, to ensure that all OpenTelemetry logs are properly +/// `process::exit()`, to ensure that all OpenTelemetry logs are properly /// flushed before the process terminates. -pub fn otel_drop_state(state: &mut OpState) { - if let Some(processor) = state.try_take::() { - let _ = processor.force_flush(); - drop(processor); +pub fn flush() { + if let Some((span_processor, log_processor)) = OTEL_PROCESSORS.get() { + let _ = span_processor.force_flush(); + let _ = log_processor.force_flush(); } - if let Some(processor) = state.try_take::() { - let _ = processor.force_flush(); - drop(processor); +} + +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, + &InstrumentationScope::builder("deno").build(), + ); } #[op2(fast)] fn op_otel_log( - state: &mut OpState, #[string] message: String, #[smi] level: i32, #[string] trace_id: &str, #[string] span_id: &str, #[smi] trace_flags: u8, ) { - let Some(logger) = state.try_borrow::() else { - log::error!("op_otel_log: OpenTelemetry Logger not available"); + let Some((_, log_processor)) = OTEL_PROCESSORS.get() else { return; }; @@ -425,23 +485,21 @@ fn op_otel_log( let mut log_record = LogRecord::default(); - log_record.observed_timestamp = Some(SystemTime::now()); - log_record.body = Some(message.into()); - log_record.severity_number = Some(severity); - log_record.severity_text = Some(severity.name()); + 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 let (Ok(trace_id), Ok(span_id)) = (TraceId::from_hex(trace_id), SpanId::from_hex(span_id)) { - let span_context = SpanContext::new( + log_record.set_trace_context( trace_id, span_id, - TraceFlags::new(trace_flags), - false, - Default::default(), + Some(TraceFlags::new(trace_flags)), ); - log_record.trace_context = Some((&span_context).into()); } - logger.emit( + + log_processor.emit( &mut log_record, &InstrumentationScope::builder("deno").build(), ); @@ -463,7 +521,7 @@ fn op_otel_span_start<'s>( end_time: f64, ) -> Result<(), anyhow::Error> { if let Some(temporary_span) = state.try_take::() { - let Some(span_processor) = state.try_borrow::() else { + let Some((span_processor, _)) = OTEL_PROCESSORS.get() else { return Ok(()); }; span_processor.on_end(temporary_span.0); @@ -678,7 +736,7 @@ fn op_otel_span_flush(state: &mut OpState) { return; }; - let Some(span_processor) = state.try_borrow::() else { + let Some((span_processor, _)) = OTEL_PROCESSORS.get() else { return; }; diff --git a/runtime/snapshot.rs b/runtime/snapshot.rs index bb9bf9166f32ec..7f6e6b8ab6ca2c 100644 --- a/runtime/snapshot.rs +++ b/runtime/snapshot.rs @@ -312,7 +312,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(None), + 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/web_worker.rs b/runtime/web_worker.rs index e272291538cd7c..b056e01fcb6c75 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -512,9 +512,7 @@ impl WebWorker { ), ops::fs_events::deno_fs_events::init_ops_and_esm(), ops::os::deno_os_worker::init_ops_and_esm(), - ops::otel::deno_otel::init_ops_and_esm( - options.bootstrap.otel_config.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, @@ -831,13 +829,12 @@ impl WebWorker { // TODO(mmastrac): we don't want to test this w/classic workers because // WPT triggers a failure here. This is only exposed via --enable-testing-features-do-not-use. - #[allow(clippy::print_stderr)] if self.worker_type == WebWorkerType::Module { panic!( "coding error: either js is polling or the worker is terminated" ); } else { - eprintln!("classic worker terminated unexpectedly"); + log::error!("classic worker terminated unexpectedly"); Poll::Ready(Ok(())) } } @@ -905,7 +902,6 @@ impl WebWorker { } } -#[allow(clippy::print_stderr)] fn print_worker_error( error: &AnyError, name: &str, @@ -918,7 +914,7 @@ fn print_worker_error( }, None => error.to_string(), }; - eprintln!( + log::error!( "{}: Uncaught (in worker \"{}\") {}", colors::red_bold("error"), name, diff --git a/runtime/worker.rs b/runtime/worker.rs index 82df755faf8913..c7bfb1c5f36a93 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -422,9 +422,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( - options.bootstrap.otel_config.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, diff --git a/runtime/worker_bootstrap.rs b/runtime/worker_bootstrap.rs index dc989a1c0fe9f4..3f5c245a0faacd 100644 --- a/runtime/worker_bootstrap.rs +++ b/runtime/worker_bootstrap.rs @@ -226,7 +226,7 @@ impl BootstrapOptions { serve_is_main, serve_worker_count, if let Some(otel_config) = self.otel_config.as_ref() { - Box::new([otel_config.console as u8]) + Box::new([otel_config.console as u8, otel_config.deterministic as u8]) } else { Box::new([]) }, diff --git a/tests/specs/cli/otel_basic/__test__.jsonc b/tests/specs/cli/otel_basic/__test__.jsonc index a9d4fff04972e2..5a27e92625307b 100644 --- a/tests/specs/cli/otel_basic/__test__.jsonc +++ b/tests/specs/cli/otel_basic/__test__.jsonc @@ -1,4 +1,32 @@ { - "args": "run -A main.ts", - "output": "processed\n" + "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..3f0554f96ade38 --- /dev/null +++ b/tests/specs/cli/otel_basic/basic.out @@ -0,0 +1,76 @@ +{ + "spans": [ + { + "traceId": "00000000000000000000000000000002", + "spanId": "0000000000000003", + "traceState": "", + "parentSpanId": "0000000000000001", + "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": "00000000000000000000000000000002", + "spanId": "0000000000000001", + "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": "00000000000000000000000000000002", + "spanId": "0000000000000003" + }, + { + "timeUnixNano": "0", + "observedTimeUnixNano": "[WILDCARD]", + "severityNumber": 9, + "severityText": "INFO", + "body": { + "stringValue": "log 2\n" + }, + "attributes": [], + "droppedAttributesCount": 0, + "flags": 1, + "traceId": "00000000000000000000000000000002", + "spanId": "0000000000000003" + } + ] +} diff --git a/tests/specs/cli/otel_basic/child.ts b/tests/specs/cli/otel_basic/basic.ts similarity index 70% rename from tests/specs/cli/otel_basic/child.ts rename to tests/specs/cli/otel_basic/basic.ts index 72cffd9f0b7f76..5a178794a3ea58 100644 --- a/tests/specs/cli/otel_basic/child.ts +++ b/tests/specs/cli/otel_basic/basic.ts @@ -7,10 +7,14 @@ async function inner() { console.log("log 2"); } -Deno.serve({ +const server = Deno.serve({ port: 0, - onListen({ port }) { - console.log(port.toString()); + async onListen({ port }) { + try { + await fetch(`http://localhost:${port}`); + } finally { + server.shutdown(); + } }, handler: async (_req) => { using _span = new Deno.tracing.Span("outer span"); 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 index 66ef5c79ccd69a..6c49462a0bfd43 100644 --- a/tests/specs/cli/otel_basic/main.ts +++ b/tests/specs/cli/otel_basic/main.ts @@ -1,76 +1,38 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import { assert, assertEquals } from "@std/assert"; -import { TextLineStream } from "@std/streams/text-line-stream"; +const data = { + spans: [], + logs: [], +}; -const logs = []; -const spans = []; -let child: Deno.ChildProcess; - -Deno.serve( +const server = Deno.serve( { port: 0, - async onListen({ port }) { + onListen({ port }) { const command = new Deno.Command(Deno.execPath(), { - args: ["run", "-A", "--unstable-otel", "child.ts"], + args: ["run", "-A", "--unstable-otel", Deno.args[0]], env: { OTEL_EXPORTER_OTLP_PROTOCOL: "http/json", OTEL_EXPORTER_OTLP_ENDPOINT: `http://localhost:${port}`, - OTEL_BSP_SCHEDULE_DELAY: "10", - OTEL_BLRP_SCHEDULE_DELAY: "10", }, - stdin: "piped", - stdout: "piped", - stderr: "inherit", + stdout: "null", + }); + const child = command.spawn(); + child.output().then(() => { + server.shutdown(); + + console.log(JSON.stringify(data, null, 2)); }); - child = command.spawn(); - const lines = child.stdout - .pipeThrough(new TextDecoderStream()) - .pipeThrough(new TextLineStream()) - .getReader(); - const line = await lines.read(); - await fetch(`http://localhost:${line.value}/`); }, async handler(req) { - try { - const body = await req.json(); - if (body.resourceLogs) { - logs.push(...body.resourceLogs[0].scopeLogs[0].logRecords); - } - if (body.resourceSpans) { - spans.push(...body.resourceSpans[0].scopeSpans[0].spans); - } - - if (logs.length > 2 && spans.length > 1) { - child.kill(); - - const inner = spans.find((s) => s.name === "inner span"); - const outer = spans.find((s) => s.name === "outer span"); - - assertEquals(inner.traceId, outer.traceId); - assertEquals(inner.parentSpanId, outer.spanId); - - assertEquals(logs[1].body.stringValue, "log 1\n"); - assertEquals(logs[1].traceId, inner.traceId); - assertEquals(logs[1].spanId, inner.spanId); - - assertEquals(logs[2].body.stringValue, "log 2\n"); - assertEquals(logs[2].traceId, inner.traceId); - assertEquals(logs[2].spanId, inner.spanId); - - console.log("processed"); - Deno.exit(0); - } - - return Response.json({ partialSuccess: {} }, { status: 200 }); - } catch (e) { - console.error(e); - Deno.exit(1); + 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 }); }, }, ); - -setTimeout(() => { - assert(false, "test did not finish in time"); -}, 10e3); 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/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); } }); From de34c7ed29bcce8b46a65f5effe45090b8493ba5 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Thu, 14 Nov 2024 14:11:29 +0100 Subject: [PATCH 24/97] feat(cli): add `--unstable-node-globals` flag (#26617) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR adds a new `--unstable-node-globals` flag to expose Node globals by default. Fixes https://github.com/denoland/deno/issues/26611 --------- Co-authored-by: Bartek IwaƄczuk --- cli/schemas/config-file.v1.json | 1 + runtime/fmt_errors.rs | 20 +++++++++++++++---- runtime/js/90_deno_ns.js | 13 ++++++------ runtime/js/98_global_scope_shared.js | 13 ++++++++++++ runtime/lib.rs | 18 +++++++++++------ .../main.out | 3 ++- 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 ++- tests/specs/run/unstable/__test__.jsonc | 5 +++++ tests/specs/run/unstable/node_globals.out | 4 ++++ tests/specs/run/unstable/node_globals.ts | 7 +++++++ 13 files changed, 75 insertions(+), 21 deletions(-) create mode 100644 tests/specs/run/unstable/node_globals.out create mode 100644 tests/specs/run/unstable/node_globals.ts diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json index ed80eb17b12205..9f4737fa0a5464 100644 --- a/cli/schemas/config-file.v1.json +++ b/cli/schemas/config-file.v1.json @@ -534,6 +534,7 @@ "http", "kv", "net", + "node-globals", "sloppy-imports", "temporal", "unsafe-proto", diff --git a/runtime/fmt_errors.rs b/runtime/fmt_errors.rs index 28cd702966225d..6c05fbc6334fd2 100644 --- a/runtime/fmt_errors.rs +++ b/runtime/fmt_errors.rs @@ -339,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 11f618ce27cb11..079338510b802f 100644 --- a/runtime/js/90_deno_ns.js +++ b/runtime/js/90_deno_ns.js @@ -144,12 +144,13 @@ const unstableIds = { http: 5, kv: 6, net: 7, - otel: 8, - process: 9, - temporal: 10, - unsafeProto: 11, - webgpu: 12, - workerOptions: 13, + nodeGlobals: 8, + otel: 9, + process: 10, + temporal: 11, + unsafeProto: 12, + webgpu: 13, + workerOptions: 14, }; const denoNsUnstableById = { __proto__: null }; diff --git a/runtime/js/98_global_scope_shared.js b/runtime/js/98_global_scope_shared.js index 7a27238996ed58..f8e76b7ce7e981 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/lib.rs b/runtime/lib.rs index 6fb8c5f3daa76d..8a228c5b59325d 100644 --- a/runtime/lib.rs +++ b/runtime/lib.rs @@ -99,24 +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: 8, + 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: 9, + id: 10, }, UnstableGranularFlag { name: "temporal", help_text: "Enable unstable Temporal API", show_in_help: true, - id: 10, + id: 11, }, UnstableGranularFlag { name: "unsafe-proto", @@ -124,19 +130,19 @@ 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: 11, + id: 12, }, UnstableGranularFlag { name: deno_webgpu::UNSTABLE_FEATURE_NAME, help_text: "Enable unstable `WebGPU` APIs", show_in_help: true, - id: 12, + id: 13, }, UnstableGranularFlag { name: ops::worker_host::UNSTABLE_FEATURE_NAME, help_text: "Enable unstable Web Worker APIs", show_in_help: true, - id: 13, + id: 14, }, ]; 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/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/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..77045c7cbd785d --- /dev/null +++ b/tests/specs/run/unstable/node_globals.out @@ -0,0 +1,4 @@ +global: true +Buffer: true +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..706b7eb6549ed1 --- /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 === nodeBuffer.default}`); +console.log(`setImmediate: ${setImmediate === nodeTimers.setImmediate}`); +console.log(`clearImmediate: ${clearImmediate === nodeTimers.clearImmediate}`); From 617350e79c58b6e01984e3d7c7436d243d0e5cff Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 14 Nov 2024 15:24:25 -0500 Subject: [PATCH 25/97] refactor(resolver): move more resolution code into deno_resolver (#26873) Follow-up to cjs refactor. This moves most of the resolution code into the deno_resolver crate. Still pending is the npm resolution code. --- Cargo.lock | 2 + Cargo.toml | 1 + cli/Cargo.toml | 4 +- cli/factory.rs | 94 +++-- cli/lsp/analysis.rs | 5 +- cli/lsp/resolver.rs | 427 ++++++++++--------- cli/main.rs | 2 +- cli/module_loader.rs | 36 +- cli/node.rs | 13 +- cli/npm/byonm.rs | 30 +- cli/npm/managed/mod.rs | 41 +- cli/npm/mod.rs | 32 +- cli/resolver.rs | 769 +++-------------------------------- cli/standalone/mod.rs | 47 ++- cli/tsc/mod.rs | 2 +- cli/worker.rs | 2 +- ext/node/lib.rs | 4 +- ext/node/ops/require.rs | 4 +- resolvers/deno/Cargo.toml | 2 + resolvers/deno/cjs.rs | 272 +++++++++++++ resolvers/deno/fs.rs | 1 + resolvers/deno/lib.rs | 434 ++++++++++++++++++++ resolvers/deno/npm/byonm.rs | 23 +- resolvers/deno/npm/mod.rs | 250 +++++++++++- resolvers/node/analyze.rs | 6 +- resolvers/node/lib.rs | 5 +- resolvers/node/npm.rs | 9 +- resolvers/node/resolution.rs | 51 ++- 28 files changed, 1520 insertions(+), 1048 deletions(-) create mode 100644 resolvers/deno/cjs.rs diff --git a/Cargo.lock b/Cargo.lock index 2c25c0de034a86..87265c02d87fdb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2007,6 +2007,8 @@ version = "0.9.0" dependencies = [ "anyhow", "base32", + "dashmap", + "deno_config", "deno_media_type", "deno_package_json", "deno_path_util", diff --git a/Cargo.toml b/Cargo.toml index f384b925530933..4a78e7e466f2c0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,6 +49,7 @@ deno_ast = { version = "=0.43.3", features = ["transpiling"] } deno_core = { version = "0.319.0" } deno_bench_util = { version = "0.171.0", path = "./bench_util" } +deno_config = { version = "=0.38.2", features = ["workspace", "sync"] } deno_lockfile = "=0.23.1" deno_media_type = { version = "0.2.0", features = ["module_specifier"] } deno_npm = "=0.25.4" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 928259a8352ab9..374f3dae5e8631 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -69,8 +69,8 @@ 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" } diff --git a/cli/factory.rs b/cli/factory.rs index 5cb2dd7b3aedda..7949a83a55bc6a 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -42,8 +42,9 @@ use crate::npm::CliNpmResolverCreateOptions; use crate::npm::CliNpmResolverManagedSnapshotOption; use crate::npm::CreateInNpmPkgCheckerOptions; use crate::resolver::CjsTracker; +use crate::resolver::CliDenoResolver; use crate::resolver::CliDenoResolverFs; -use crate::resolver::CliNodeResolver; +use crate::resolver::CliNpmReqResolver; use crate::resolver::CliResolver; use crate::resolver::CliResolverOptions; use crate::resolver::CliSloppyImportsResolver; @@ -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,6 +201,7 @@ 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>, @@ -523,6 +528,31 @@ impl CliFactory { .await } + 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 @@ -531,17 +561,14 @@ impl CliFactory { async { let cli_options = self.cli_options()?; Ok(Arc::new(CliResolver::new(CliResolverOptions { - sloppy_imports_resolver: self.sloppy_imports_resolver()?.cloned(), - node_resolver: Some(self.cli_node_resolver().await?.clone()), 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_vendor_dir: cli_options.vendor_dir_path(), + deno_resolver: self.deno_resolver().await?.clone(), }))) } .boxed_local(), @@ -624,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(), ))) } @@ -656,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( @@ -799,23 +853,6 @@ impl CliFactory { }) } - 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.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> { @@ -880,7 +917,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() { @@ -891,6 +927,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(), @@ -918,7 +955,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(), diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index 9f26de70cb6d84..044b1573b9bb9d 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -344,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) diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs index 37f63b912cbef7..399b89638189f6 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -15,6 +15,9 @@ 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; @@ -43,6 +46,7 @@ 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; @@ -57,8 +61,9 @@ use crate::npm::CliNpmResolverCreateOptions; use crate::npm::CliNpmResolverManagedSnapshotOption; use crate::npm::CreateInNpmPkgCheckerOptions; use crate::npm::ManagedCliNpmResolver; +use crate::resolver::CliDenoResolver; use crate::resolver::CliDenoResolverFs; -use crate::resolver::CliNodeResolver; +use crate::resolver::CliNpmReqResolver; use crate::resolver::CliResolver; use crate::resolver::CliResolverOptions; use crate::resolver::IsCjsResolver; @@ -71,10 +76,12 @@ use crate::util::progress_bar::ProgressBarStyle; #[derive(Debug, Clone)] struct LspScopeResolver { 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>, package_json_deps_by_resolution: Arc>, @@ -83,12 +90,15 @@ struct LspScopeResolver { impl Default for LspScopeResolver { fn default() -> Self { + let factory = ResolverFactory::new(None); Self { - resolver: create_cli_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(), package_json_deps_by_resolution: Default::default(), @@ -103,35 +113,16 @@ impl LspScopeResolver { cache: &LspCache, http_client_provider: Option<&Arc>, ) -> Self { - let mut npm_resolver = None; - let mut node_resolver = 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); - node_resolver = Some(create_node_resolver( - 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 cli_resolver = create_cli_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()), @@ -171,7 +162,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()?; @@ -181,7 +172,7 @@ 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, @@ -201,10 +192,12 @@ impl LspScopeResolver { Arc::new(package_json_deps_by_resolution.unwrap_or_default()); Self { 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, package_json_deps_by_resolution, @@ -213,34 +206,21 @@ impl LspScopeResolver { } 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; if let Some(npm_resolver) = &npm_resolver { - let in_npm_pkg_checker = create_in_npm_pkg_checker(npm_resolver); - node_resolver = Some(create_node_resolver( - fs, - in_npm_pkg_checker, - npm_resolver, - pkg_json_resolver.clone(), - )); + factory.set_npm_resolver(npm_resolver.clone()); } - let graph_resolver = create_cli_resolver( - self.config_data.as_deref(), - npm_resolver.as_ref(), - node_resolver.as_ref(), - ); Arc::new(Self { - resolver: 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(), package_json_deps_by_resolution: self .package_json_deps_by_resolution @@ -354,12 +334,12 @@ impl LspResolver { 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,9 +409,9 @@ impl LspResolver { 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 + npm_pkg_req_resolver .resolve_req_reference( req_ref, referrer, @@ -483,10 +463,11 @@ impl LspResolver { 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, @@ -503,10 +484,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( @@ -558,131 +538,206 @@ 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(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, + 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( - 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( - 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_cli_resolver( - config_data: Option<&ConfigData>, - npm_resolver: Option<&Arc>, - node_resolver: Option<&Arc>, -) -> Arc { - Arc::new(CliResolver::new(CliResolverOptions { - 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_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)] diff --git a/cli/main.rs b/cli/main.rs index 20d2cb6bff5943..7d3ef0e6a0563a 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; diff --git a/cli/module_loader.rs b/cli/module_loader.rs index f9c974d77ee28e..b9adfe642c4ac4 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -27,7 +27,7 @@ use crate::node; use crate::node::CliNodeCodeTranslator; use crate::npm::CliNpmResolver; use crate::resolver::CjsTracker; -use crate::resolver::CliNodeResolver; +use crate::resolver::CliNpmReqResolver; use crate::resolver::CliResolver; use crate::resolver::ModuleCodeStringSource; use crate::resolver::NotSupportedKindInNpmError; @@ -70,6 +70,7 @@ 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; @@ -215,7 +216,8 @@ 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, @@ -238,7 +240,8 @@ 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, @@ -264,6 +267,7 @@ impl CliModuleLoaderFactory { module_load_preparer, node_code_translator, node_resolver, + npm_req_resolver, npm_resolver, npm_module_loader, parsed_source_cache, @@ -425,7 +429,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 @@ -470,7 +474,7 @@ impl raw_specifier: &str, referrer: &ModuleSpecifier, ) -> Result { - if self.shared.node_resolver.in_npm_package(referrer) { + if self.shared.in_npm_pkg_checker.in_npm_package(referrer) { return Ok( self .shared @@ -518,12 +522,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, - self.shared.cjs_tracker.get_referrer_kind(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); } } @@ -538,7 +546,7 @@ 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), @@ -828,7 +836,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 @@ -865,7 +873,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(()))); } diff --git a/cli/node.rs b/cli/node.rs index 8235745a9114c3..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)] diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index 45fa4cfd1f528c..eca399251b0e31 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..2e64f5f188c27b 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; @@ -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/mod.rs b/cli/npm/mod.rs index 0d434ca27fb540..0e955ac5b43396 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/resolver.rs b/cli/resolver.rs index 786e5d0dbc810a..a2dd47430f67a6 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -4,10 +4,8 @@ use async_trait::async_trait; use dashmap::DashMap; use dashmap::DashSet; use deno_ast::MediaType; -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; @@ -20,28 +18,14 @@ use deno_graph::source::UnknownBuiltInNodeModuleError; 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; @@ -56,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, @@ -77,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) } @@ -102,211 +104,6 @@ impl deno_resolver::fs::DenoResolverFs for CliDenoResolverFs { } } -#[derive(Debug)] -pub struct CliNodeResolver { - fs: Arc, - in_npm_pkg_checker: Arc, - node_resolver: Arc, - npm_resolver: Arc, -} - -impl CliNodeResolver { - pub fn new( - fs: Arc, - in_npm_pkg_checker: Arc, - node_resolver: Arc, - npm_resolver: Arc, - ) -> Self { - Self { - 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, - referrer_kind: NodeModuleKind, - mode: NodeResolutionMode, - ) -> Result, AnyError> { - let resolution_result = - self.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(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, - referrer_kind: NodeModuleKind, - mode: NodeResolutionMode, - ) -> Result { - self - .node_resolver - .resolve(specifier, referrer, referrer_kind, mode) - } - - pub fn resolve_req_reference( - &self, - req_ref: &NpmPackageReqReference, - referrer: &ModuleSpecifier, - 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: &ModuleSpecifier, - 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.resolve_package_sub_path_from_deno_module( - &package_folder, - sub_path, - Some(referrer), - referrer_kind, - 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>, - referrer_kind: NodeModuleKind, - mode: NodeResolutionMode, - ) -> Result { - self.node_resolver.resolve_package_subpath_from_deno_module( - package_folder, - sub_path, - maybe_referrer, - referrer_kind, - 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 { @@ -409,305 +206,36 @@ impl NpmModuleLoader { } } -/// 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 { - 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: &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.is_cjs_resolver.check_based_on_pkg_json(specifier)?, - }; - Ok(kind == NodeModuleKind::Cjs) - } - - pub fn get_known_kind( - &self, - specifier: &ModuleSpecifier, - media_type: MediaType, - ) -> Option { - self.get_known_kind_with_is_script(specifier, media_type, None) - } - - pub fn get_referrer_kind( - &self, - specifier: &ModuleSpecifier, - ) -> 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_with_is_script( - &self, - specifier: &ModuleSpecifier, - 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, -} - -#[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, - } - } - - pub fn get_lsp_referrer_kind( - &self, - specifier: &ModuleSpecifier, - 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: &ModuleSpecifier, - 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: &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(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) - } - } +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 CliResolver { - node_resolver: Option>, + deno_resolver: Arc, npm_resolver: Option>, - sloppy_imports_resolver: Option>, - workspace_resolver: Arc, - maybe_vendor_specifier: Option, found_package_json_dep_flag: AtomicFlag, bare_node_builtins_enabled: bool, warned_pkgs: DashSet, } -pub struct CliResolverOptions<'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_vendor_dir: Option<&'a PathBuf>, -} - 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_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(), } } + // 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(), @@ -730,223 +258,50 @@ impl CliResolver { } } - 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, referrer_kind, 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), - referrer_kind, - 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), - referrer_kind, - 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), - referrer_kind, - 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, - referrer_kind, - to_node_mode(mode), - ) - .map_err(|err| err.into()); + if self.warned_pkgs.insert(reference.req().clone()) { + log::warn!( + "{} {}\n at {}", + colors::yellow("Warning"), + diagnostic, + referrer_range + ); } } - - 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, - referrer_kind, - 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 - } - } - } - } - - Err(err) } } + + Ok(resolution.url) } } diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 15937c7aee7608..e3449c152046e9 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -29,6 +29,7 @@ use deno_core::RequestedModuleType; use deno_core::ResolutionKind; 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; @@ -79,7 +80,7 @@ use crate::npm::CliNpmResolverManagedSnapshotOption; use crate::npm::CreateInNpmPkgCheckerOptions; use crate::resolver::CjsTracker; 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; @@ -107,8 +108,9 @@ 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, } @@ -190,7 +192,7 @@ 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), @@ -204,15 +206,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 @@ -225,7 +229,7 @@ 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), @@ -240,12 +244,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" { @@ -260,14 +264,14 @@ 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, @@ -651,7 +655,7 @@ 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( @@ -664,12 +668,14 @@ pub async fn run(data: StandaloneData) -> Result { )); 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( - 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(), @@ -681,7 +687,7 @@ pub async fn run(data: StandaloneData) -> Result { 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 = { @@ -739,7 +745,7 @@ pub async fn run(data: StandaloneData) -> Result { 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(), @@ -747,6 +753,7 @@ pub async fn run(data: StandaloneData) -> Result { )), npm_resolver: npm_resolver.clone(), workspace_resolver, + npm_req_resolver, }), }; diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index a569061625a7a5..452d5c165ae37e 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -6,7 +6,6 @@ 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; @@ -34,6 +33,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; diff --git a/cli/worker.rs b/cli/worker.rs index 83e36b36c218a4..1afe37e34686bf 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -155,7 +155,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(), } } diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 702c919f47b198..84f39552c15205 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -15,7 +15,7 @@ use deno_core::url::Url; use deno_core::v8; use deno_core::v8::ExternalReference; use node_resolver::errors::ClosestPkgJsonError; -use node_resolver::NpmResolverRc; +use node_resolver::NpmPackageFolderResolverRc; use once_cell::sync::Lazy; extern crate libz_sys as zlib; @@ -183,7 +183,7 @@ fn op_node_build_os() -> String { pub struct NodeExtInitServices { pub node_require_loader: NodeRequireLoaderRc, pub node_resolver: NodeResolverRc, - pub npm_resolver: NpmResolverRc, + pub npm_resolver: NpmPackageFolderResolverRc, pub pkg_json_resolver: PackageJsonResolverRc, } diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index b7fa8feb20145c..e381ee91d408ac 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -24,7 +24,7 @@ use std::rc::Rc; use crate::NodePermissions; use crate::NodeRequireLoaderRc; use crate::NodeResolverRc; -use crate::NpmResolverRc; +use crate::NpmPackageFolderResolverRc; use crate::PackageJsonResolverRc; #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"] @@ -220,7 +220,7 @@ pub fn op_require_resolve_deno_dir( #[string] request: String, #[string] parent_filename: String, ) -> Result, AnyError> { - let resolver = state.borrow::(); + let resolver = state.borrow::(); Ok( resolver .resolve_package_folder_from_package( diff --git a/resolvers/deno/Cargo.toml b/resolvers/deno/Cargo.toml index 24d50587b3daf6..89c0232dc994d9 100644 --- a/resolvers/deno/Cargo.toml +++ b/resolvers/deno/Cargo.toml @@ -16,6 +16,8 @@ path = "lib.rs" [dependencies] anyhow.workspace = true base32.workspace = true +dashmap.workspace = true +deno_config.workspace = true deno_media_type.workspace = true deno_package_json.workspace = true deno_package_json.features = ["sync"] 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..a2b6b642fc9c91 100644 --- a/resolvers/deno/lib.rs +++ b/resolvers/deno/lib.rs @@ -1,5 +1,439 @@ // 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 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::ResolveIfForNpmPackageError; +use npm::ResolvePkgFolderFromDenoReqError; +use npm::ResolveReqWithSubPathError; +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, 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), +} + +impl DenoResolveErrorKind { + pub fn into_box(self) -> DenoResolveError { + DenoResolveError(Box::new(self)) + } +} + +#[derive(Error, Debug)] +#[error(transparent)] +pub struct DenoResolveError(pub Box); + +impl DenoResolveError { + pub fn as_kind(&self) -> &DenoResolveErrorKind { + &self.0 + } + + pub fn into_kind(self) -> DenoResolveErrorKind { + *self.0 + } +} + +impl From for DenoResolveError +where + DenoResolveErrorKind: From, +{ + fn from(err: E) -> Self { + DenoResolveError(Box::new(DenoResolveErrorKind::from(err))) + } +} + +#[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 { + ResolveReqWithSubPathError::MissingPackageNodeModulesFolder( + err, + ) => err.into(), + ResolveReqWithSubPathError::ResolvePkgFolderFromDenoReq( + err, + ) => err.into(), + ResolveReqWithSubPathError::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 { + ResolveIfForNpmPackageError::NodeResolve(e) => { + DenoResolveErrorKind::Node(e).into_box() + } + ResolveIfForNpmPackageError::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..b0aec71b08b6c1 100644 --- a/resolvers/deno/npm/mod.rs +++ b/resolvers/deno/npm/mod.rs @@ -1,10 +1,256 @@ // 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 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, Error)] +pub enum ResolveIfForNpmPackageError { + #[error(transparent)] + NodeResolve(#[from] NodeResolveError), + #[error(transparent)] + NodeModulesOutOfDate(#[from] NodeModulesOutOfDateError), +} + +#[derive(Debug, Error)] +pub enum ResolveReqWithSubPathError { + #[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(ResolveIfForNpmPackageError::NodeResolve(err.into())) + } + NodeResolveErrorKind::PackageResolve(err) => { + let err = err.into_kind(); + match err { + PackageResolveErrorKind::ClosestPkgJson(_) + | PackageResolveErrorKind::InvalidModuleSpecifier(_) + | PackageResolveErrorKind::ExportsResolve(_) + | PackageResolveErrorKind::SubpathResolve(_) => { + Err(ResolveIfForNpmPackageError::NodeResolve( + NodeResolveErrorKind::PackageResolve(err.into()).into(), + )) + } + 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(ResolveIfForNpmPackageError::NodeResolve( + NodeResolveErrorKind::PackageResolve(err.into()).into(), + )); + } + 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( + ResolveIfForNpmPackageError::NodeModulesOutOfDate( + NodeModulesOutOfDateError { + specifier: specifier.to_string(), + }, + ), + ); + } + } + Ok(None) + } + PackageFolderResolveErrorKind::ReferrerNotFound(_) => { + if self.in_npm_pkg_checker.in_npm_package(referrer) { + return Err(ResolveIfForNpmPackageError::NodeResolve( + NodeResolveErrorKind::PackageResolve(err.into()).into(), + )); + } + Ok(None) + } + } + } + } + } + } + } + } + } +} 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/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/resolution.rs b/resolvers/node/resolution.rs index fcff2924250634..673a61abe6517a 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; @@ -101,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, } @@ -109,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, } } @@ -1126,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 @@ -1412,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>( @@ -1660,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('*'); From dcc75d5685ddb1ad3c1b97721cbc24bf6fa56c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 15 Nov 2024 00:19:12 +0000 Subject: [PATCH 26/97] chore: remove some unused tests (#26878) --- tests/integration/run_tests.rs | 31 ---------- .../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 ---- tools/lint.js | 2 +- 8 files changed, 1 insertion(+), 181 deletions(-) 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 diff --git a/tests/integration/run_tests.rs b/tests/integration/run_tests.rs index e29ecc486cc4e0..549b88bac44f1d 100644 --- a/tests/integration/run_tests.rs +++ b/tests/integration/run_tests.rs @@ -2899,37 +2899,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/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/tools/lint.js b/tools/lint.js index cc595c2b133e56..21064a05bf65b1 100755 --- a/tools/lint.js +++ b/tools/lint.js @@ -219,7 +219,7 @@ async function ensureNoNewITests() { "pm_tests.rs": 0, "publish_tests.rs": 0, "repl_tests.rs": 0, - "run_tests.rs": 24, + "run_tests.rs": 20, "shared_library_tests.rs": 0, "task_tests.rs": 2, "test_tests.rs": 0, From c9baf3849fdbe161a9251a712a71e2b91eeabf3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 15 Nov 2024 09:33:03 +0000 Subject: [PATCH 27/97] perf: use available system memory for v8 isolate memory limit (#26868) Instead of using the default 1.4Gb limit (which was meant for browser tabs) configure V8 to set the heap limit to the amount of memory available in the system. Closes https://github.com/denoland/deno/issues/23424 Closes https://github.com/denoland/deno/issues/26435 Closes https://github.com/denoland/deno/issues/21226 --- cli/lsp/tsc.rs | 2 ++ cli/tsc/mod.rs | 2 ++ cli/worker.rs | 15 ++++++++++++++- runtime/lib.rs | 1 + runtime/ops/os/mod.rs | 3 +-- runtime/{ops/os => }/sys_info.rs | 0 runtime/web_worker.rs | 3 +++ 7 files changed, 23 insertions(+), 3 deletions(-) rename runtime/{ops/os => }/sys_info.rs (100%) diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index c9b24176ad2e0a..48dcb79644b5bf 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; @@ -4760,6 +4761,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() diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index 452d5c165ae37e..8f8bed20a4cb2c 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -9,6 +9,7 @@ use crate::npm::CliNpmResolver; 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; @@ -1104,6 +1105,7 @@ pub fn exec(request: Request) -> Result { root_map, remapped_specifiers, )], + create_params: create_isolate_create_params(), ..Default::default() }); diff --git a/cli/worker.rs b/cli/worker.rs index 1afe37e34686bf..c6cbf77f1bc70b 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -555,6 +555,7 @@ impl CliMainWorkerFactory { permissions, v8_code_cache: shared.code_cache.clone(), }; + let options = WorkerOptions { bootstrap: BootstrapOptions { deno_version: crate::version::DENO_VERSION_INFO.deno.to_string(), @@ -585,7 +586,7 @@ impl CliMainWorkerFactory { }, 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 @@ -786,6 +787,7 @@ fn create_web_worker_callback( }, 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 @@ -806,6 +808,17 @@ fn create_web_worker_callback( }) } +/// 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)] diff --git a/runtime/lib.rs b/runtime/lib.rs index 8a228c5b59325d..a6e60ced186cf4 100644 --- a/runtime/lib.rs +++ b/runtime/lib.rs @@ -35,6 +35,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; diff --git a/runtime/ops/os/mod.rs b/runtime/ops/os/mod.rs index b10a2939e67cdd..74c708c53295b2 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 = [ 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/web_worker.rs b/runtime/web_worker.rs index b056e01fcb6c75..8e0c870d1ad6ae 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -361,6 +361,8 @@ pub struct WebWorkerOptions { pub extensions: Vec, pub startup_snapshot: Option<&'static [u8]>, pub unsafely_ignore_certificate_errors: Option>, + /// Optional isolate creation parameters, such as heap limits. + pub create_params: Option, pub seed: Option, pub create_web_worker_cb: Arc, pub format_js_error_fn: Option>, @@ -563,6 +565,7 @@ impl WebWorker { let mut js_runtime = JsRuntime::new(RuntimeOptions { module_loader: Some(services.module_loader), startup_snapshot: options.startup_snapshot, + create_params: options.create_params, 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, From 032ae7fb19bd01c1de28515facd5c3b2ce821924 Mon Sep 17 00:00:00 2001 From: Sahand Akbarzadeh Date: Fri, 15 Nov 2024 14:14:11 +0330 Subject: [PATCH 28/97] feat(ext/fetch): allow embedders to use `hickory_dns_resolver` instead of default `GaiResolver` (#26740) Allows embedders to use `hickory-dns-resolver` instead of threaded "getaddrinfo" resolver in the `fetch()` implementation. --- Cargo.lock | 1 + Cargo.toml | 1 + cli/worker.rs | 2 + ext/fetch/Cargo.toml | 1 + ext/fetch/dns.rs | 116 +++++++++++++++++++++++++++++ ext/fetch/lib.rs | 20 ++++- ext/fetch/tests.rs | 79 ++++++++++++++++++-- ext/kv/remote.rs | 1 + ext/net/Cargo.toml | 2 +- runtime/examples/extension/main.rs | 1 + runtime/worker.rs | 2 + 11 files changed, 218 insertions(+), 8 deletions(-) create mode 100644 ext/fetch/dns.rs diff --git a/Cargo.lock b/Cargo.lock index 87265c02d87fdb..fc5834da539597 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1566,6 +1566,7 @@ dependencies = [ "dyn-clone", "error_reporter", "fast-socks5", + "hickory-resolver", "http 1.1.0", "http-body-util", "hyper 1.4.1", diff --git a/Cargo.toml b/Cargo.toml index 4a78e7e466f2c0..36e59eab2cf01e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -127,6 +127,7 @@ fs3 = "0.5.0" futures = "0.3.21" glob = "0.3.1" h2 = "0.4.4" +hickory-resolver = { version = "0.24", features = ["tokio-runtime", "serde-config"] } http = "1.0" http-body = "1.0" http-body-util = "0.1.2" diff --git a/cli/worker.rs b/cli/worker.rs index c6cbf77f1bc70b..24397b6bf0831e 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -547,6 +547,7 @@ 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(), @@ -855,6 +856,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/fetch/Cargo.toml b/ext/fetch/Cargo.toml index 56d416bbb81b8d..00c85f2aa163a0 100644 --- a/ext/fetch/Cargo.toml +++ b/ext/fetch/Cargo.toml @@ -22,6 +22,7 @@ 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.rs b/ext/fetch/lib.rs index 7ef26431c2b091..5949f9f75f5311 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)] @@ -91,6 +92,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 { @@ -114,6 +116,7 @@ impl Default for Options { unsafely_ignore_certificate_errors: None, client_cert_chain_and_key: TlsKeys::Null, file_fetch_handler: Rc::new(DefaultFileFetchHandler), + resolver: dns::Resolver::default(), } } } @@ -255,6 +258,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(), @@ -835,6 +839,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")] @@ -878,6 +884,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(), @@ -909,6 +922,7 @@ 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, @@ -923,6 +937,7 @@ 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, @@ -976,7 +991,8 @@ 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(|_| { @@ -1051,7 +1067,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..5cd1a35a5e0b28 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,25 +103,27 @@ 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, }, @@ -92,6 +145,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/kv/remote.rs b/ext/kv/remote.rs index 4930aacfe355c6..63146daf71e420 100644 --- a/ext/kv/remote.rs +++ b/ext/kv/remote.rs @@ -197,6 +197,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(), diff --git a/ext/net/Cargo.toml b/ext/net/Cargo.toml index 245deedd2da091..1febbd5338be93 100644 --- a/ext/net/Cargo.toml +++ b/ext/net/Cargo.toml @@ -18,7 +18,7 @@ deno_core.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/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/worker.rs b/runtime/worker.rs index c7bfb1c5f36a93..99123463cf15e5 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -143,6 +143,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 @@ -363,6 +364,7 @@ impl MainWorker { .unsafely_ignore_certificate_errors .clone(), file_fetch_handler: Rc::new(deno_fetch::FsFetchHandler), + resolver: services.fetch_dns_resolver, ..Default::default() }, ), From 3f26310728ef2d56ace7370a555eb9a862295983 Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Fri, 15 Nov 2024 14:40:32 +0000 Subject: [PATCH 29/97] feat(lsp): auto-imports with @deno-types directives (#26821) Co-authored-by: David Sherret --- cli/lsp/documents.rs | 120 ++++++++++++++++++++++--------- cli/lsp/language_server.rs | 31 +++++---- cli/lsp/resolver.rs | 49 +++++++++++-- cli/lsp/tsc.rs | 92 +++++++++++++++++------- tests/integration/lsp_tests.rs | 124 +++++++++++++++++++++++++++++++++ 5 files changed, 338 insertions(+), 78 deletions(-) diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index b62fa85533856a..b01544ddf98785 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -5,6 +5,7 @@ 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; @@ -38,7 +39,6 @@ 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; @@ -989,12 +989,7 @@ pub struct Documents { open_docs: HashMap>, /// Documents stored on the file system. file_system_docs: 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 { @@ -1157,17 +1152,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. @@ -1410,34 +1408,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); } } }; @@ -1448,14 +1458,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()); } } } @@ -1464,15 +1509,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; } diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index b2bd72416ac8c7..e56adafef4eaee 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -1036,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); } @@ -1082,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(); @@ -1103,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 @@ -1155,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) { @@ -1180,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(); @@ -3600,15 +3602,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()), ); @@ -3686,7 +3689,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/resolver.rs b/cli/lsp/resolver.rs index 399b89638189f6..4ede799227204f 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -7,6 +7,7 @@ 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::ResolutionMode; use deno_graph::GraphImport; @@ -84,6 +85,7 @@ struct LspScopeResolver { pkg_json_resolver: Arc, redirect_resolver: Option>, graph_imports: Arc>, + dep_info: Arc>>, package_json_deps_by_resolution: Arc>, config_data: Option>, } @@ -101,6 +103,7 @@ impl Default for LspScopeResolver { 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, } @@ -180,6 +183,15 @@ impl LspScopeResolver { 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; @@ -200,6 +212,7 @@ impl LspScopeResolver { pkg_json_resolver, redirect_resolver, graph_imports, + dep_info: Default::default(), package_json_deps_by_resolution, config_data: config_data.cloned(), } @@ -222,6 +235,7 @@ impl LspScopeResolver { redirect_resolver: self.redirect_resolver.clone(), 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(), @@ -288,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); @@ -434,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 @@ -538,6 +570,13 @@ impl LspResolver { } } +#[derive(Debug, Default, Clone)] +pub struct ScopeDepInfo { + pub deno_types_to_code_resolutions: HashMap, + pub npm_reqs: BTreeSet, + pub has_node_specifier: bool, +} + #[derive(Default)] struct ResolverFactoryServices { cli_resolver: Deferred>, diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index 48dcb79644b5bf..fc7ff57948abcc 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -3417,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 })); @@ -3578,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 + ); } } } @@ -3693,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 { @@ -3705,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, @@ -3927,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; @@ -4246,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/"); @@ -4415,6 +4455,8 @@ fn op_load<'s>( }) }; + lsp_warn!("op_load {} {}", &specifier, maybe_load_response.is_some()); + let serialized = serde_v8::to_v8(scope, maybe_load_response)?; state.performance.measure(mark); diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs index dcef6960848c95..a5b0ee24715acb 100644 --- a/tests/integration/lsp_tests.rs +++ b/tests/integration/lsp_tests.rs @@ -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(); From b8cf2599242a9d85d03b57d3649ccdf8bce1530e Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Fri, 15 Nov 2024 15:54:28 +0100 Subject: [PATCH 30/97] feat(fetch): accept async iterables for body (#26882) Reland of #24623, but with a fix for `String` objects. Co-authored-by: crowlkats --- ext/fetch/22_body.js | 14 +++ ext/fetch/lib.deno_fetch.d.ts | 2 + ext/web/06_streams.js | 63 ++++---------- ext/webidl/00_webidl.js | 126 +++++++++++++++++++++++++++ ext/webidl/internal.d.ts | 26 ++++++ tests/integration/node_unit_tests.rs | 1 + tests/unit/fetch_test.ts | 27 ++++++ tests/unit/streams_test.ts | 15 +++- tests/unit_node/fetch_test.ts | 18 ++++ tests/wpt/runner/expectation.json | 10 ++- 10 files changed, 251 insertions(+), 51 deletions(-) create mode 100644 tests/unit_node/fetch_test.ts 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/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/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/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/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/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/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/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_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/wpt/runner/expectation.json b/tests/wpt/runner/expectation.json index 3477d8d9bfb132..23cc85b498811f 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, From dee94473c435b38b2d7829731804ac96e6856d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 15 Nov 2024 17:09:19 +0000 Subject: [PATCH 31/97] fix: update message for unsupported schemes with npm and jsr (#26884) Closes https://github.com/denoland/deno/issues/26596 --- cli/file_fetcher.rs | 13 ++++++++++++- tests/specs/npm/typo_in_npm/__test__.jsonc | 5 +++++ tests/specs/npm/typo_in_npm/main.out | 8 ++++++++ .../unsupported_dynamic_import_scheme.out | 15 ++++++++------- tests/testdata/run/extension_import.ts.out | 15 ++++++++------- 5 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 tests/specs/npm/typo_in_npm/__test__.jsonc create mode 100644 tests/specs/npm/typo_in_npm/main.out 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/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/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/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 From 48b94c099526eb262287e101a75cb4571b8972b0 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 15 Nov 2024 23:22:50 -0500 Subject: [PATCH 32/97] refactor: use boxed_error in some places (#26887) --- Cargo.lock | 129 +++++++++++++++++++++----------------- Cargo.toml | 1 + ext/fs/Cargo.toml | 1 + ext/fs/lib.rs | 1 + ext/fs/ops.rs | 65 ++++++++++--------- ext/kv/Cargo.toml | 1 + ext/kv/lib.rs | 100 +++++++++++++++++------------ ext/node/Cargo.toml | 1 + ext/node/ops/require.rs | 16 +++-- resolvers/deno/Cargo.toml | 1 + resolvers/deno/lib.rs | 55 +++++----------- resolvers/deno/npm/mod.rs | 52 ++++++++++----- resolvers/node/Cargo.toml | 1 + resolvers/node/errors.rs | 70 ++++++++------------- runtime/errors.rs | 114 ++++++++++++++++----------------- 15 files changed, 323 insertions(+), 285 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fc5834da539597..eccd52fffe9573 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -267,7 +267,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -303,7 +303,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -314,7 +314,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -338,7 +338,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -499,7 +499,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -577,6 +577,16 @@ dependencies = [ "generic-array", ] +[[package]] +name = "boxed_error" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69aae56aaf59d1994b902ed5c0c79024012bdc2426741def75a635999a030e7e" +dependencies = [ + "quote", + "syn 2.0.87", +] + [[package]] name = "brotli" version = "6.0.0" @@ -1086,7 +1096,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1121,7 +1131,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1132,7 +1142,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1298,7 +1308,7 @@ checksum = "05d59a1cfd445fd86f63616127a434aabca000e03d963b01b03ce813520565b9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1613,6 +1623,7 @@ version = "0.87.0" dependencies = [ "async-trait", "base32", + "boxed_error", "deno_core", "deno_io", "deno_path_util", @@ -1725,6 +1736,7 @@ dependencies = [ "anyhow", "async-trait", "base64 0.21.7", + "boxed_error", "bytes", "chrono", "deno_core", @@ -1844,6 +1856,7 @@ dependencies = [ "async-trait", "base64 0.21.7", "blake2", + "boxed_error", "brotli", "bytes", "cbc", @@ -1955,7 +1968,7 @@ dependencies = [ "quote", "strum", "strum_macros", - "syn 2.0.72", + "syn 2.0.87", "thiserror", ] @@ -2008,6 +2021,7 @@ version = "0.9.0" dependencies = [ "anyhow", "base32", + "boxed_error", "dashmap", "deno_config", "deno_media_type", @@ -2391,7 +2405,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2411,7 +2425,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2432,7 +2446,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2442,7 +2456,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" dependencies = [ "derive_builder_core", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2527,7 +2541,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2556,7 +2570,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2855,7 +2869,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -3139,7 +3153,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -3171,7 +3185,7 @@ checksum = "fdc9cc75639b041067353b9bce2450d6847e547276c6fbe4487d7407980e07db" dependencies = [ "proc-macro2", "swc_macros_common", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -3266,7 +3280,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -4066,7 +4080,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -4256,7 +4270,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -4642,7 +4656,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -4696,6 +4710,7 @@ version = "0.16.0" dependencies = [ "anyhow", "async-trait", + "boxed_error", "deno_media_type", "deno_package_json", "deno_path_util", @@ -5204,7 +5219,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -5258,7 +5273,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -5287,7 +5302,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -5411,7 +5426,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -5455,7 +5470,7 @@ checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" dependencies = [ "proc-macro-rules-macros", "proc-macro2", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -5467,7 +5482,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -5512,7 +5527,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.72", + "syn 2.0.87", "tempfile", ] @@ -5526,7 +5541,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -5656,9 +5671,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -5703,7 +5718,7 @@ checksum = "4fdb50eb5bf734fa5a770680a61876a6ec77b99c1e0e52d1f18ad6ebfa85759f" dependencies = [ "heck 0.5.0", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -5805,7 +5820,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6350,7 +6365,7 @@ checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6374,7 +6389,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6703,7 +6718,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6740,7 +6755,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6868,7 +6883,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6917,7 +6932,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7002,7 +7017,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7133,7 +7148,7 @@ checksum = "63db0adcff29d220c3d151c5b25c0eabe7e32dd936212b84cdaa1392e3130497" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7169,7 +7184,7 @@ checksum = "f486687bfb7b5c560868f69ed2d458b880cebc9babebcb67e49f31b55c5bf847" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7192,7 +7207,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7208,9 +7223,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -7243,7 +7258,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7414,7 +7429,7 @@ checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7515,7 +7530,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7693,7 +7708,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -8062,7 +8077,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", "wasm-bindgen-shared", ] @@ -8096,7 +8111,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -8605,7 +8620,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", "synstructure 0.13.1", ] @@ -8627,7 +8642,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -8647,7 +8662,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", "synstructure 0.13.1", ] @@ -8668,7 +8683,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 36e59eab2cf01e..ad63355d21793f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,6 +100,7 @@ async-trait = "0.1.73" base32 = "=0.5.1" base64 = "0.21.7" bencher = "0.1" +boxed_error = "0.2.2" brotli = "6.0.0" bytes = "1.4.0" cache_control = "=0.2.0" diff --git a/ext/fs/Cargo.toml b/ext/fs/Cargo.toml index e85f349b155ae9..ace1b89f3a03dc 100644 --- a/ext/fs/Cargo.toml +++ b/ext/fs/Cargo.toml @@ -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/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 3d0d96ce6621a0..e3a511f8e7ff80 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -16,6 +16,7 @@ use crate::interface::FsDirEntry; use crate::interface::FsFileType; use crate::FsPermissions; use crate::OpenOptions; +use boxed_error::Boxed; use deno_core::op2; use deno_core::CancelFuture; use deno_core::CancelHandle; @@ -32,8 +33,11 @@ use rand::thread_rng; use rand::Rng; use serde::Serialize; +#[derive(Debug, Boxed)] +pub struct FsOpsError(pub Box); + #[derive(Debug, thiserror::Error)] -pub enum FsOpsError { +pub enum FsOpsErrorKind { #[error("{0}")] Io(#[source] std::io::Error), #[error("{0}")] @@ -73,15 +77,16 @@ pub enum FsOpsError { impl From for FsOpsError { fn from(err: FsError) -> Self { match err { - FsError::Io(err) => FsOpsError::Io(err), + FsError::Io(err) => FsOpsErrorKind::Io(err), FsError::FileBusy => { - FsOpsError::Other(deno_core::error::resource_unavailable()) + FsOpsErrorKind::Other(deno_core::error::resource_unavailable()) } FsError::NotSupported => { - FsOpsError::Other(deno_core::error::not_supported()) + FsOpsErrorKind::Other(deno_core::error::not_supported()) } - FsError::NotCapable(err) => FsOpsError::NotCapable(err), + FsError::NotCapable(err) => FsOpsErrorKind::NotCapable(err), } + .into_box() } } @@ -127,11 +132,12 @@ fn map_permission_error( (path.as_str(), "") }; - FsOpsError::NotCapableAccess { + FsOpsErrorKind::NotCapableAccess { standalone: deno_permissions::is_standalone(), err, path: format!("{path}{truncated}"), } + .into_box() } err => Err::<(), _>(err) .context_path(operation, path) @@ -1176,7 +1182,9 @@ fn validate_temporary_filename_component( ) -> Result<(), FsOpsError> { // Ban ASCII and Unicode control characters: these will often fail if let Some(c) = component.matches(|c: char| c.is_control()).next() { - return Err(FsOpsError::InvalidControlCharacter(c.to_string())); + return Err( + FsOpsErrorKind::InvalidControlCharacter(c.to_string()).into_box(), + ); } // Windows has the most restrictive filenames. As temp files aren't normal files, we just // use this set of banned characters for all platforms because wildcard-like files can also @@ -1192,13 +1200,13 @@ fn validate_temporary_filename_component( .matches(|c: char| "<>:\"/\\|?*".contains(c)) .next() { - return Err(FsOpsError::InvalidCharacter(c.to_string())); + return Err(FsOpsErrorKind::InvalidCharacter(c.to_string()).into_box()); } // This check is only for Windows #[cfg(windows)] if suffix && component.ends_with(|c: char| ". ".contains(c)) { - return Err(FsOpsError::InvalidTrailingCharacter); + return Err(FsOpsErrorKind::InvalidTrailingCharacter.into_box()); } Ok(()) @@ -1440,7 +1448,7 @@ fn to_seek_from(offset: i64, whence: i32) -> Result { 1 => SeekFrom::Current(offset), 2 => SeekFrom::End(offset), _ => { - return Err(FsOpsError::InvalidSeekMode(whence)); + return Err(FsOpsErrorKind::InvalidSeekMode(whence).into_box()); } }; Ok(seek_from) @@ -1456,7 +1464,7 @@ pub fn op_fs_seek_sync( ) -> Result { let pos = to_seek_from(offset, whence)?; let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + FileResource::get_file(state, rid).map_err(FsOpsErrorKind::Resource)?; let cursor = file.seek_sync(pos)?; Ok(cursor) } @@ -1471,7 +1479,7 @@ pub async fn op_fs_seek_async( ) -> Result { let pos = to_seek_from(offset, whence)?; let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + .map_err(FsOpsErrorKind::Resource)?; let cursor = file.seek_async(pos).await?; Ok(cursor) } @@ -1482,7 +1490,7 @@ pub fn op_fs_file_sync_data_sync( #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + FileResource::get_file(state, rid).map_err(FsOpsErrorKind::Resource)?; file.datasync_sync()?; Ok(()) } @@ -1493,7 +1501,7 @@ pub async fn op_fs_file_sync_data_async( #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + .map_err(FsOpsErrorKind::Resource)?; file.datasync_async().await?; Ok(()) } @@ -1504,7 +1512,7 @@ pub fn op_fs_file_sync_sync( #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + FileResource::get_file(state, rid).map_err(FsOpsErrorKind::Resource)?; file.sync_sync()?; Ok(()) } @@ -1515,7 +1523,7 @@ pub async fn op_fs_file_sync_async( #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + .map_err(FsOpsErrorKind::Resource)?; file.sync_async().await?; Ok(()) } @@ -1527,7 +1535,7 @@ pub fn op_fs_file_stat_sync( #[buffer] stat_out_buf: &mut [u32], ) -> Result<(), FsOpsError> { let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + FileResource::get_file(state, rid).map_err(FsOpsErrorKind::Resource)?; let stat = file.stat_sync()?; let serializable_stat = SerializableStat::from(stat); serializable_stat.write(stat_out_buf); @@ -1541,7 +1549,7 @@ pub async fn op_fs_file_stat_async( #[smi] rid: ResourceId, ) -> Result { let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + .map_err(FsOpsErrorKind::Resource)?; let stat = file.stat_async().await?; Ok(stat.into()) } @@ -1553,7 +1561,7 @@ pub fn op_fs_flock_sync( exclusive: bool, ) -> Result<(), FsOpsError> { let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + FileResource::get_file(state, rid).map_err(FsOpsErrorKind::Resource)?; file.lock_sync(exclusive)?; Ok(()) } @@ -1565,7 +1573,7 @@ pub async fn op_fs_flock_async( exclusive: bool, ) -> Result<(), FsOpsError> { let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + .map_err(FsOpsErrorKind::Resource)?; file.lock_async(exclusive).await?; Ok(()) } @@ -1576,7 +1584,7 @@ pub fn op_fs_funlock_sync( #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + FileResource::get_file(state, rid).map_err(FsOpsErrorKind::Resource)?; file.unlock_sync()?; Ok(()) } @@ -1587,7 +1595,7 @@ pub async fn op_fs_funlock_async( #[smi] rid: ResourceId, ) -> Result<(), FsOpsError> { let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + .map_err(FsOpsErrorKind::Resource)?; file.unlock_async().await?; Ok(()) } @@ -1599,7 +1607,7 @@ pub fn op_fs_ftruncate_sync( #[number] len: u64, ) -> Result<(), FsOpsError> { let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + FileResource::get_file(state, rid).map_err(FsOpsErrorKind::Resource)?; file.truncate_sync(len)?; Ok(()) } @@ -1611,7 +1619,7 @@ pub async fn op_fs_file_truncate_async( #[number] len: u64, ) -> Result<(), FsOpsError> { let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + .map_err(FsOpsErrorKind::Resource)?; file.truncate_async(len).await?; Ok(()) } @@ -1626,7 +1634,7 @@ pub fn op_fs_futime_sync( #[smi] mtime_nanos: u32, ) -> Result<(), FsOpsError> { let file = - FileResource::get_file(state, rid).map_err(FsOpsError::Resource)?; + FileResource::get_file(state, rid).map_err(FsOpsErrorKind::Resource)?; file.utime_sync(atime_secs, atime_nanos, mtime_secs, mtime_nanos)?; Ok(()) } @@ -1641,7 +1649,7 @@ pub async fn op_fs_futime_async( #[smi] mtime_nanos: u32, ) -> Result<(), FsOpsError> { let file = FileResource::get_file(&state.borrow(), rid) - .map_err(FsOpsError::Resource)?; + .map_err(FsOpsErrorKind::Resource)?; file .utime_async(atime_secs, atime_nanos, mtime_secs, mtime_nanos) .await?; @@ -1717,7 +1725,7 @@ impl MapErrContext for Result { where F: FnOnce(FsError) -> OperationError, { - self.map_err(|err| FsOpsError::OperationError(f(err))) + self.map_err(|err| FsOpsErrorKind::OperationError(f(err)).into_box()) } fn context(self, operation: &'static str) -> Self::R { @@ -1754,7 +1762,8 @@ impl MapErrContext for Result { } fn path_into_string(s: std::ffi::OsString) -> Result { - s.into_string().map_err(FsOpsError::InvalidUtf8) + s.into_string() + .map_err(|e| FsOpsErrorKind::InvalidUtf8(e).into_box()) } macro_rules! create_struct_writer { diff --git a/ext/kv/Cargo.toml b/ext/kv/Cargo.toml index 1d7b91770fad33..aa7381766740ac 100644 --- a/ext/kv/Cargo.toml +++ b/ext/kv/Cargo.toml @@ -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/lib.rs b/ext/kv/lib.rs index a4ccfe3d63f5c9..5392b97210d92d 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -14,6 +14,7 @@ use std::time::Duration; use base64::prelude::BASE64_URL_SAFE; use base64::Engine; +use boxed_error::Boxed; use chrono::DateTime; use chrono::Utc; use deno_core::error::get_custom_error_class; @@ -114,8 +115,11 @@ impl Resource for DatabaseWatcherResource { } } +#[derive(Debug, Boxed)] +pub struct KvError(pub Box); + #[derive(Debug, thiserror::Error)] -pub enum KvError { +pub enum KvErrorKind { #[error(transparent)] DatabaseHandler(deno_core::error::AnyError), #[error(transparent)] @@ -193,7 +197,7 @@ where let db = handler .open(state.clone(), path) .await - .map_err(KvError::DatabaseHandler)?; + .map_err(KvErrorKind::DatabaseHandler)?; let rid = state.borrow_mut().resource_table.add(DatabaseResource { db, cancel_handle: CancelHandle::new_rc(), @@ -329,7 +333,7 @@ where let resource = state .resource_table .get::>(rid) - .map_err(KvError::Resource)?; + .map_err(KvErrorKind::Resource)?; resource.db.clone() }; @@ -339,7 +343,7 @@ where }; if ranges.len() > config.max_read_ranges { - return Err(KvError::TooManyRanges(config.max_read_ranges)); + return Err(KvErrorKind::TooManyRanges(config.max_read_ranges).into_box()); } let mut total_entries = 0usize; @@ -358,14 +362,16 @@ where Ok(ReadRange { start, end, - limit: NonZeroU32::new(limit).ok_or(KvError::InvalidLimit)?, + limit: NonZeroU32::new(limit).ok_or(KvErrorKind::InvalidLimit)?, reverse, }) }) .collect::, KvError>>()?; if total_entries > config.max_read_entries { - return Err(KvError::TooManyEntries(config.max_read_entries)); + return Err( + KvErrorKind::TooManyEntries(config.max_read_entries).into_box(), + ); } let opts = SnapshotReadOptions { @@ -374,7 +380,7 @@ where let output_ranges = db .snapshot_read(read_ranges, opts) .await - .map_err(KvError::Kv)?; + .map_err(KvErrorKind::Kv)?; let output_ranges = output_ranges .into_iter() .map(|x| { @@ -415,7 +421,7 @@ where if get_custom_error_class(&err) == Some("BadResource") { return Ok(None); } else { - return Err(KvError::Resource(err)); + return Err(KvErrorKind::Resource(err).into_box()); } } }; @@ -423,11 +429,11 @@ where }; let Some(mut handle) = - db.dequeue_next_message().await.map_err(KvError::Kv)? + db.dequeue_next_message().await.map_err(KvErrorKind::Kv)? else { return Ok(None); }; - let payload = handle.take_payload().await.map_err(KvError::Kv)?.into(); + let payload = handle.take_payload().await.map_err(KvErrorKind::Kv)?.into(); let handle_rid = { let mut state = state.borrow_mut(); state.resource_table.add(QueueMessageResource { handle }) @@ -448,11 +454,11 @@ where let resource = state .resource_table .get::>(rid) - .map_err(KvError::Resource)?; + .map_err(KvErrorKind::Resource)?; let config = state.borrow::>().clone(); if keys.len() > config.max_watched_keys { - return Err(KvError::TooManyKeys(config.max_watched_keys)); + return Err(KvErrorKind::TooManyKeys(config.max_watched_keys).into_box()); } let keys: Vec> = keys @@ -493,7 +499,7 @@ async fn op_kv_watch_next( let resource = state .resource_table .get::(rid) - .map_err(KvError::Resource)?; + .map_err(KvErrorKind::Resource)?; resource.clone() }; @@ -519,7 +525,7 @@ async fn op_kv_watch_next( return Ok(None); }; - let entries = res.map_err(KvError::Kv)?; + let entries = res.map_err(KvErrorKind::Kv)?; let entries = entries .into_iter() .map(|entry| { @@ -549,9 +555,9 @@ where let handle = state .resource_table .take::::DB as Database>::QMH>>(handle_rid) - .map_err(|_| KvError::QueueMessageNotFound)?; + .map_err(|_| KvErrorKind::QueueMessageNotFound)?; Rc::try_unwrap(handle) - .map_err(|_| KvError::QueueMessageNotFound)? + .map_err(|_| KvErrorKind::QueueMessageNotFound)? .handle }; // if we fail to finish the message, there is not much we can do and the @@ -692,7 +698,7 @@ impl RawSelector { }), (Some(prefix), Some(start), None) => { if !start.starts_with(&prefix) || start.len() == prefix.len() { - return Err(KvError::StartKeyNotInKeyspace); + return Err(KvErrorKind::StartKeyNotInKeyspace.into_box()); } Ok(Self::Prefixed { prefix, @@ -702,7 +708,7 @@ impl RawSelector { } (Some(prefix), None, Some(end)) => { if !end.starts_with(&prefix) || end.len() == prefix.len() { - return Err(KvError::EndKeyNotInKeyspace); + return Err(KvErrorKind::EndKeyNotInKeyspace.into_box()); } Ok(Self::Prefixed { prefix, @@ -712,7 +718,7 @@ impl RawSelector { } (None, Some(start), Some(end)) => { if start > end { - return Err(KvError::StartKeyGreaterThanEndKey); + return Err(KvErrorKind::StartKeyGreaterThanEndKey.into_box()); } Ok(Self::Range { start, end }) } @@ -720,7 +726,7 @@ impl RawSelector { let end = start.iter().copied().chain(Some(0)).collect(); Ok(Self::Range { start, end }) } - _ => Err(KvError::InvalidRange), + _ => Err(KvErrorKind::InvalidRange.into_box()), } } @@ -782,7 +788,7 @@ fn encode_cursor( ) -> Result { let common_prefix = selector.common_prefix(); if !boundary_key.starts_with(common_prefix) { - return Err(KvError::InvalidBoundaryKey); + return Err(KvErrorKind::InvalidBoundaryKey.into_box()); } Ok(BASE64_URL_SAFE.encode(&boundary_key[common_prefix.len()..])) } @@ -799,7 +805,7 @@ fn decode_selector_and_cursor( let common_prefix = selector.common_prefix(); let cursor = BASE64_URL_SAFE .decode(cursor) - .map_err(|_| KvError::InvalidCursor)?; + .map_err(|_| KvErrorKind::InvalidCursor)?; let first_key: Vec; let last_key: Vec; @@ -824,13 +830,13 @@ fn decode_selector_and_cursor( // Defend against out-of-bounds reading if let Some(start) = selector.start() { if &first_key[..] < start { - return Err(KvError::CursorOutOfBounds); + return Err(KvErrorKind::CursorOutOfBounds.into_box()); } } if let Some(end) = selector.end() { if &last_key[..] > end { - return Err(KvError::CursorOutOfBounds); + return Err(KvErrorKind::CursorOutOfBounds.into_box()); } } @@ -855,7 +861,7 @@ where let resource = state .resource_table .get::>(rid) - .map_err(KvError::Resource)?; + .map_err(KvErrorKind::Resource)?; resource.db.clone() }; @@ -865,28 +871,28 @@ where }; if checks.len() > config.max_checks { - return Err(KvError::TooManyChecks(config.max_checks)); + return Err(KvErrorKind::TooManyChecks(config.max_checks).into_box()); } if mutations.len() + enqueues.len() > config.max_mutations { - return Err(KvError::TooManyMutations(config.max_mutations)); + return Err(KvErrorKind::TooManyMutations(config.max_mutations).into_box()); } let checks = checks .into_iter() .map(check_from_v8) .collect::, KvCheckError>>() - .map_err(KvError::InvalidCheck)?; + .map_err(KvErrorKind::InvalidCheck)?; let mutations = mutations .into_iter() .map(|mutation| mutation_from_v8((mutation, current_timestamp))) .collect::, KvMutationError>>() - .map_err(KvError::InvalidMutation)?; + .map_err(KvErrorKind::InvalidMutation)?; let enqueues = enqueues .into_iter() .map(|e| enqueue_from_v8(e, current_timestamp)) .collect::, std::io::Error>>() - .map_err(KvError::InvalidEnqueue)?; + .map_err(KvErrorKind::InvalidEnqueue)?; let mut total_payload_size = 0usize; let mut total_key_size = 0usize; @@ -897,7 +903,7 @@ where .chain(mutations.iter().map(|m| &m.key)) { if key.is_empty() { - return Err(KvError::EmptyKey); + return Err(KvErrorKind::EmptyKey.into_box()); } total_payload_size += check_write_key_size(key, &config)?; @@ -921,13 +927,16 @@ where } if total_payload_size > config.max_total_mutation_size_bytes { - return Err(KvError::TotalMutationTooLarge( - config.max_total_mutation_size_bytes, - )); + return Err( + KvErrorKind::TotalMutationTooLarge(config.max_total_mutation_size_bytes) + .into_box(), + ); } if total_key_size > config.max_total_key_size_bytes { - return Err(KvError::TotalKeyTooLarge(config.max_total_key_size_bytes)); + return Err( + KvErrorKind::TotalKeyTooLarge(config.max_total_key_size_bytes).into_box(), + ); } let atomic_write = AtomicWrite { @@ -936,7 +945,10 @@ where enqueues, }; - let result = db.atomic_write(atomic_write).await.map_err(KvError::Kv)?; + let result = db + .atomic_write(atomic_write) + .await + .map_err(KvErrorKind::Kv)?; Ok(result.map(|res| faster_hex::hex_string(&res.versionstamp))) } @@ -958,7 +970,9 @@ fn op_kv_encode_cursor( fn check_read_key_size(key: &[u8], config: &KvConfig) -> Result<(), KvError> { if key.len() > config.max_read_key_size_bytes { - Err(KvError::KeyTooLargeToRead(config.max_read_key_size_bytes)) + Err( + KvErrorKind::KeyTooLargeToRead(config.max_read_key_size_bytes).into_box(), + ) } else { Ok(()) } @@ -969,7 +983,10 @@ fn check_write_key_size( config: &KvConfig, ) -> Result { if key.len() > config.max_write_key_size_bytes { - Err(KvError::KeyTooLargeToWrite(config.max_write_key_size_bytes)) + Err( + KvErrorKind::KeyTooLargeToWrite(config.max_write_key_size_bytes) + .into_box(), + ) } else { Ok(key.len()) } @@ -986,7 +1003,7 @@ fn check_value_size( }; if payload.len() > config.max_value_size_bytes { - Err(KvError::ValueTooLarge(config.max_value_size_bytes)) + Err(KvErrorKind::ValueTooLarge(config.max_value_size_bytes).into_box()) } else { Ok(payload.len()) } @@ -997,7 +1014,10 @@ fn check_enqueue_payload_size( config: &KvConfig, ) -> Result { if payload.len() > config.max_value_size_bytes { - Err(KvError::EnqueuePayloadTooLarge(config.max_value_size_bytes)) + Err( + KvErrorKind::EnqueuePayloadTooLarge(config.max_value_size_bytes) + .into_box(), + ) } else { Ok(payload.len()) } diff --git a/ext/node/Cargo.toml b/ext/node/Cargo.toml index 9e1a3495b555fd..c4ee86a9574234 100644 --- a/ext/node/Cargo.toml +++ b/ext/node/Cargo.toml @@ -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 diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index e381ee91d408ac..06c034fd507104 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -1,5 +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; @@ -40,8 +41,11 @@ where loader.ensure_read_permission(permissions, file_path) } +#[derive(Debug, Boxed)] +pub struct RequireError(pub Box); + #[derive(Debug, thiserror::Error)] -pub enum RequireError { +pub enum RequireErrorKind { #[error(transparent)] UrlParse(#[from] url::ParseError), #[error(transparent)] @@ -135,7 +139,7 @@ where let from = if from.starts_with("file:///") { url_to_file_path(&Url::parse(&from)?)? } else { - let current_dir = &fs.cwd().map_err(RequireError::UnableToGetCwd)?; + let current_dir = &fs.cwd().map_err(RequireErrorKind::UnableToGetCwd)?; normalize_path(current_dir.join(from)) }; @@ -324,7 +328,7 @@ where { let path = PathBuf::from(request); let path = ensure_read_permission::

(state, &path) - .map_err(RequireError::Permission)?; + .map_err(RequireErrorKind::Permission)?; let fs = state.borrow::(); let canonicalized_path = deno_path_util::strip_unc_prefix(fs.realpath_sync(&path)?); @@ -484,11 +488,11 @@ 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)?; + .map_err(RequireErrorKind::Permission)?; let loader = state.borrow::(); loader .load_text_file_lossy(&file_path) - .map_err(RequireError::ReadModule) + .map_err(|e| RequireErrorKind::ReadModule(e).into_box()) } #[op2] @@ -612,7 +616,7 @@ where { let referrer_path = PathBuf::from(&referrer_filename); let referrer_path = ensure_read_permission::

(state, &referrer_path) - .map_err(RequireError::Permission)?; + .map_err(RequireErrorKind::Permission)?; let pkg_json_resolver = state.borrow::(); let Some(pkg) = pkg_json_resolver.get_closest_package_json_from_path(&referrer_path)? diff --git a/resolvers/deno/Cargo.toml b/resolvers/deno/Cargo.toml index 89c0232dc994d9..c2d4a3bc29af51 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 +boxed_error.workspace = true dashmap.workspace = true deno_config.workspace = true deno_media_type.workspace = true diff --git a/resolvers/deno/lib.rs b/resolvers/deno/lib.rs index a2b6b642fc9c91..303a8271026816 100644 --- a/resolvers/deno/lib.rs +++ b/resolvers/deno/lib.rs @@ -6,6 +6,7 @@ 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; @@ -26,9 +27,9 @@ use node_resolver::NodeResolver; use npm::MissingPackageNodeModulesFolderError; use npm::NodeModulesOutOfDateError; use npm::NpmReqResolver; -use npm::ResolveIfForNpmPackageError; +use npm::ResolveIfForNpmPackageErrorKind; use npm::ResolvePkgFolderFromDenoReqError; -use npm::ResolveReqWithSubPathError; +use npm::ResolveReqWithSubPathErrorKind; use sloppy_imports::SloppyImportResolverFs; use sloppy_imports::SloppyImportsResolutionMode; use sloppy_imports::SloppyImportsResolver; @@ -47,6 +48,9 @@ pub struct DenoResolution { 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.")] @@ -71,35 +75,6 @@ pub enum DenoResolveErrorKind { WorkspaceResolvePkgJsonFolder(#[from] WorkspaceResolvePkgJsonFolderError), } -impl DenoResolveErrorKind { - pub fn into_box(self) -> DenoResolveError { - DenoResolveError(Box::new(self)) - } -} - -#[derive(Error, Debug)] -#[error(transparent)] -pub struct DenoResolveError(pub Box); - -impl DenoResolveError { - pub fn as_kind(&self) -> &DenoResolveErrorKind { - &self.0 - } - - pub fn into_kind(self) -> DenoResolveErrorKind { - *self.0 - } -} - -impl From for DenoResolveError -where - DenoResolveErrorKind: From, -{ - fn from(err: E) -> Self { - DenoResolveError(Box::new(DenoResolveErrorKind::from(err))) - } -} - #[derive(Debug)] pub struct NodeAndNpmReqResolver< Fs: DenoResolverFs, @@ -378,16 +353,18 @@ impl< maybe_diagnostic, found_package_json_dep, }) - .map_err(|err| match err { - ResolveReqWithSubPathError::MissingPackageNodeModulesFolder( + .map_err(|err| { + match err.into_kind() { + ResolveReqWithSubPathErrorKind::MissingPackageNodeModulesFolder( err, ) => err.into(), - ResolveReqWithSubPathError::ResolvePkgFolderFromDenoReq( + ResolveReqWithSubPathErrorKind::ResolvePkgFolderFromDenoReq( err, ) => err.into(), - ResolveReqWithSubPathError::PackageSubpathResolve(err) => { + ResolveReqWithSubPathErrorKind::PackageSubpathResolve(err) => { err.into() } + } }); } } @@ -410,11 +387,13 @@ impl< referrer_kind, mode, ) - .map_err(|e| match e { - ResolveIfForNpmPackageError::NodeResolve(e) => { + .map_err(|e| match e.into_kind() { + ResolveIfForNpmPackageErrorKind::NodeResolve(e) => { DenoResolveErrorKind::Node(e).into_box() } - ResolveIfForNpmPackageError::NodeModulesOutOfDate(e) => e.into(), + ResolveIfForNpmPackageErrorKind::NodeModulesOutOfDate(e) => { + e.into() + } })?; if let Some(res) = maybe_resolution { match res { diff --git a/resolvers/deno/npm/mod.rs b/resolvers/deno/npm/mod.rs index b0aec71b08b6c1..09e35b15c352cc 100644 --- a/resolvers/deno/npm/mod.rs +++ b/resolvers/deno/npm/mod.rs @@ -4,6 +4,7 @@ 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; @@ -45,16 +46,24 @@ pub struct MissingPackageNodeModulesFolderError { pub package_json_path: PathBuf, } +#[derive(Debug, Boxed)] +pub struct ResolveIfForNpmPackageError( + pub Box, +); + #[derive(Debug, Error)] -pub enum ResolveIfForNpmPackageError { +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 ResolveReqWithSubPathError { +pub enum ResolveReqWithSubPathErrorKind { #[error(transparent)] MissingPackageNodeModulesFolder(#[from] MissingPackageNodeModulesFolderError), #[error(transparent)] @@ -191,20 +200,21 @@ impl | NodeResolveErrorKind::UnsupportedEsmUrlScheme(_) | NodeResolveErrorKind::DataUrlReferrer(_) | NodeResolveErrorKind::TypesNotFound(_) - | NodeResolveErrorKind::FinalizeResolution(_) => { - Err(ResolveIfForNpmPackageError::NodeResolve(err.into())) - } + | 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(ResolveIfForNpmPackageError::NodeResolve( + | PackageResolveErrorKind::SubpathResolve(_) => Err( + ResolveIfForNpmPackageErrorKind::NodeResolve( NodeResolveErrorKind::PackageResolve(err.into()).into(), - )) - } + ) + .into_box(), + ), PackageResolveErrorKind::PackageFolderResolve(err) => { match err.as_kind() { PackageFolderResolveErrorKind::Io( @@ -214,9 +224,13 @@ impl PackageNotFoundError { package_name, .. }, ) => { if self.in_npm_pkg_checker.in_npm_package(referrer) { - return Err(ResolveIfForNpmPackageError::NodeResolve( - NodeResolveErrorKind::PackageResolve(err.into()).into(), - )); + return Err( + ResolveIfForNpmPackageErrorKind::NodeResolve( + NodeResolveErrorKind::PackageResolve(err.into()) + .into(), + ) + .into_box(), + ); } if let Some(byonm_npm_resolver) = &self.byonm_resolver { if byonm_npm_resolver @@ -227,11 +241,11 @@ impl .is_some() { return Err( - ResolveIfForNpmPackageError::NodeModulesOutOfDate( + ResolveIfForNpmPackageErrorKind::NodeModulesOutOfDate( NodeModulesOutOfDateError { specifier: specifier.to_string(), }, - ), + ).into_box(), ); } } @@ -239,9 +253,13 @@ impl } PackageFolderResolveErrorKind::ReferrerNotFound(_) => { if self.in_npm_pkg_checker.in_npm_package(referrer) { - return Err(ResolveIfForNpmPackageError::NodeResolve( - NodeResolveErrorKind::PackageResolve(err.into()).into(), - )); + 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..eeac79c2566b9c 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 +boxed_error.workspace = true deno_media_type.workspace = true deno_package_json.workspace = true deno_path_util.workspace = true 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/runtime/errors.rs b/runtime/errors.rs index 0c26e0e47acf66..4268fbd502df13 100644 --- a/runtime/errors.rs +++ b/runtime/errors.rs @@ -41,12 +41,14 @@ use deno_ffi::IRError; use deno_ffi::ReprError; use deno_ffi::StaticError; use deno_fs::FsOpsError; +use deno_fs::FsOpsErrorKind; 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::KvErrorKind; use deno_kv::KvMutationError; use deno_napi::NApiError; use deno_net::ops::NetError; @@ -760,67 +762,67 @@ fn get_websocket_handshake_error(error: &HandshakeError) -> &'static str { } 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) => { + use FsOpsErrorKind::*; + match error.as_kind() { + Io(e) => get_io_error_class(e), + OperationError(e) => get_fs_error(&e.err), + Permission(e) => get_permission_check_error_class(e), + Resource(e) | Other(e) => get_error_class_name(e).unwrap_or("Error"), + InvalidUtf8(_) => "InvalidData", + StripPrefix(_) => "Error", + 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", + InvalidSeekMode(_) => "TypeError", + InvalidControlCharacter(_) => "Error", + InvalidCharacter(_) => "Error", #[cfg(windows)] - FsOpsError::InvalidTrailingCharacter => "Error", - FsOpsError::NotCapableAccess { .. } => "NotCapable", - FsOpsError::NotCapable(_) => "NotCapable", + InvalidTrailingCharacter => "Error", + NotCapableAccess { .. } => "NotCapable", + NotCapable(_) => "NotCapable", } } fn get_kv_error(error: &KvError) -> &'static str { - match error { - KvError::DatabaseHandler(e) | KvError::Resource(e) | KvError::Kv(e) => { + use KvErrorKind::*; + match error.as_kind() { + DatabaseHandler(e) | Resource(e) | 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 { + TooManyRanges(_) => "TypeError", + TooManyEntries(_) => "TypeError", + TooManyChecks(_) => "TypeError", + TooManyMutations(_) => "TypeError", + TooManyKeys(_) => "TypeError", + InvalidLimit => "TypeError", + InvalidBoundaryKey => "TypeError", + KeyTooLargeToRead(_) => "TypeError", + KeyTooLargeToWrite(_) => "TypeError", + TotalMutationTooLarge(_) => "TypeError", + TotalKeyTooLarge(_) => "TypeError", + Io(e) => get_io_error_class(e), + QueueMessageNotFound => "TypeError", + StartKeyNotInKeyspace => "TypeError", + EndKeyNotInKeyspace => "TypeError", + StartKeyGreaterThanEndKey => "TypeError", + InvalidCheck(e) => match e { KvCheckError::InvalidVersionstamp => "TypeError", KvCheckError::Io(e) => get_io_error_class(e), }, - KvError::InvalidMutation(e) => match e { + 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", + InvalidEnqueue(e) => get_io_error_class(e), + EmptyKey => "TypeError", + ValueTooLarge(_) => "TypeError", + EnqueuePayloadTooLarge(_) => "TypeError", + InvalidCursor => "TypeError", + CursorOutOfBounds => "TypeError", + InvalidRange => "TypeError", } } @@ -1087,6 +1089,7 @@ mod node { use deno_node::ops::os::priority::PriorityError; pub use deno_node::ops::os::OsError; pub use deno_node::ops::require::RequireError; + use deno_node::ops::require::RequireErrorKind; pub use deno_node::ops::worker_threads::WorkerThreadsFilenameError; pub use deno_node::ops::zlib::brotli::BrotliError; pub use deno_node::ops::zlib::mode::ModeError; @@ -1158,19 +1161,18 @@ mod node { } 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) - } + use RequireErrorKind::*; + match error.as_kind() { + UrlParse(e) => get_url_parse_error_class(e), + Permission(e) => get_error_class_name(e).unwrap_or("Error"), + PackageExportsResolve(_) + | PackageJsonLoad(_) + | ClosestPkgJson(_) + | FilePathConversion(_) + | UrlConversion(_) + | ReadModule(_) + | PackageImportsResolve(_) => "Error", + Fs(e) | UnableToGetCwd(e) => super::get_fs_error(e), } } From 84e12386480d76e97ad85d9c5314168e7ab03e04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 16 Nov 2024 11:18:17 +0000 Subject: [PATCH 33/97] feat(task): support object notation, remove support for JSDocs (#26886) This commit changes three aspects of `deno task`: 1. Tasks can now be written using object notation like so: ```jsonc { "tasks": { "foo": "deno run foo.js", "bar": { "command": "deno run bar.js" } } ``` 2. Support for comments for tasks is now removed. Comments above tasks will no longer be printed when running `deno task`. 3. Tasks written using object notation can have "description" field that replaces support for comments above tasks: ```jsonc { "tasks": { "bar": { "description": "This is a bar task" "command": "deno run bar.js" } } ``` ``` $ deno task Available tasks: - bar // This is a bar task deno run bar.js ``` Pulled most of the changes from https://github.com/denoland/deno/pull/26467 to support "dependencies" in tasks. Additionally some cleanup was performed to make code easier to read. --------- Co-authored-by: David Sherret --- Cargo.lock | 4 +- Cargo.toml | 2 +- cli/args/mod.rs | 8 +- cli/lsp/language_server.rs | 5 +- cli/schemas/config-file.v1.json | 23 +- cli/tools/task.rs | 428 ++++++++++-------- 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 - 15 files changed, 280 insertions(+), 250 deletions(-) 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 diff --git a/Cargo.lock b/Cargo.lock index eccd52fffe9573..56d2417419e8e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1421,9 +1421,9 @@ dependencies = [ [[package]] name = "deno_config" -version = "0.38.2" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "966825073480a6ac7e01977a3879d13edc8d6ea2d65ea164b37156a5fb206e9a" +checksum = "0a91aa99751ebe305a7edad12a3ad751f3b3b9f5ecddbfe4a0459e3cdc8493b6" dependencies = [ "anyhow", "deno_package_json", diff --git a/Cargo.toml b/Cargo.toml index ad63355d21793f..9d625f082a7a23 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ deno_ast = { version = "=0.43.3", features = ["transpiling"] } deno_core = { version = "0.319.0" } deno_bench_util = { version = "0.171.0", path = "./bench_util" } -deno_config = { version = "=0.38.2", features = ["workspace", "sync"] } +deno_config = { version = "=0.39.1", features = ["workspace", "sync"] } deno_lockfile = "=0.23.1" deno_media_type = { version = "0.2.0", features = ["module_specifier"] } deno_npm = "=0.25.4" diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 50a37b3346e753..318a6ca76b1068 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -868,12 +868,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"); diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index e56adafef4eaee..c93628555b511c 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -3632,9 +3632,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 { diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json index 9f4737fa0a5464..56a8090f9bb997 100644 --- a/cli/schemas/config-file.v1.json +++ b/cli/schemas/config-file.v1.json @@ -431,8 +431,27 @@ "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" + } + } + } + ] } }, "additionalProperties": false diff --git a/cli/tools/task.rs b/cli/tools/task.rs index 502b09d2c2ca76..a13efbaf455964 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -1,6 +1,5 @@ // 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::path::Path; @@ -8,7 +7,7 @@ use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; -use deno_config::deno_json::Task; +use deno_config::workspace::TaskDefinition; use deno_config::workspace::TaskOrScript; use deno_config::workspace::WorkspaceDirectory; use deno_config::workspace::WorkspaceTasksConfig; @@ -16,8 +15,11 @@ use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::AnyError; +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 crate::args::CliOptions; use crate::args::Flags; @@ -48,155 +50,188 @@ 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() - } 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 => { - print_available_tasks( - &mut std::io::stdout(), - &cli_options.start_dir, - &tasks_config, - )?; - return Ok(0); - } + let Some(task_name) = &task_flags.task else { + print_available_tasks( + &mut std::io::stdout(), + &cli_options.start_dir, + &tasks_config, + )?; + return Ok(0); }; 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 task_runner = TaskRunner { + tasks_config, + task_flags: &task_flags, + npm_resolver: npm_resolver.as_ref(), + node_resolver: node_resolver.as_ref(), + env_vars, + cli_options, + }; + task_runner.run_task(task_name).await +} - 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); - } - } - } +struct RunSingleOptions<'a> { + task_name: &'a str, + script: &'a str, + cwd: &'a Path, + custom_commands: HashMap>, +} - Ok(0) - } - }, - None => { - if task_flags.is_run { +struct TaskRunner<'a> { + tasks_config: WorkspaceTasksConfig, + task_flags: &'a TaskFlags, + npm_resolver: &'a dyn CliNpmResolver, + node_resolver: &'a NodeResolver, + env_vars: HashMap, + cli_options: &'a CliOptions, +} + +impl<'a> TaskRunner<'a> { + async fn run_task( + &self, + task_name: &String, + ) -> Result { + let Some((dir_url, task_or_script)) = self.tasks_config.task(task_name) + else { + if self.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, + &self.cli_options.start_dir, + &self.tasks_config, )?; } - Ok(1) + return Ok(1); + }; + + match task_or_script { + TaskOrScript::Task(_tasks, definition) => { + self.run_deno_task(dir_url, task_name, definition).await + } + TaskOrScript::Script(scripts, _script) => { + self.run_npm_script(dir_url, task_name, scripts).await + } } } -} -struct RunTaskOptions<'a> { - task_name: &'a str, - script: &'a str, - cwd: &'a Path, - env_vars: HashMap, - custom_commands: HashMap>, - npm_resolver: &'a dyn CliNpmResolver, - cli_options: &'a CliOptions, -} + async fn run_deno_task( + &self, + dir_url: &Url, + task_name: &String, + 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()), + }; -async fn run_task(opts: RunTaskOptions<'_>) -> Result { - let RunTaskOptions { - task_name, - script, - cwd, - env_vars, - custom_commands, - npm_resolver, - cli_options, - } = opts; + 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 + } - output_task( - opts.task_name, - &task_runner::get_script_with_args(script, cli_options.argv()), - ); + async fn run_npm_script( + &self, + dir_url: &Url, + task_name: &String, + 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.clone(), + 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) + } - Ok( - task_runner::run_task(task_runner::RunTaskOptions { + 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, + ) + } } fn output_task(task_name: &str, script: &str) { @@ -222,79 +257,88 @@ 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)?; } Ok(()) 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 From 99d5c6e423fe67f7f062296ffd38b38f92b7ab70 Mon Sep 17 00:00:00 2001 From: Miguel Rodrigues <64497525+mbrdg@users.noreply.github.com> Date: Sat, 16 Nov 2024 13:57:14 +0000 Subject: [PATCH 34/97] fix(cli): show prefix hint when installing a package globally (#26629) Closes #26545 Shows a hint when a package is installed globally, otherwise fallbacks to the existing implementation. --- cli/tools/installer.rs | 45 ++++++++++++++++++++++- cli/tools/registry/mod.rs | 1 + cli/tools/registry/pm.rs | 2 +- tests/integration/install_tests.rs | 57 ++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 2 deletions(-) diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs index 1655f0a322eaff..fe477a8e6cc540 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,51 @@ async fn install_global( ) -> Result<(), AnyError> { // ensure the module is cached let factory = CliFactory::from_flags(flags.clone()); + + 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(); + let req = super::registry::AddRmPackageReq::parse(entry_text); + + // found a package requirement but missing the prefix + if let Ok(Err(package_req)) = req { + 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 diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index 4098d62e37da64..12289c581b1372 100644 --- a/cli/tools/registry/mod.rs +++ b/cli/tools/registry/mod.rs @@ -69,6 +69,7 @@ pub use pm::add; pub use pm::cache_top_level_deps; pub use pm::remove; pub use pm::AddCommandName; +pub use pm::AddRmPackageReq; use publish_order::PublishOrderGraph; use unfurl::SpecifierUnfurler; diff --git a/cli/tools/registry/pm.rs b/cli/tools/registry/pm.rs index 68913e25910a29..c1ea2c75ea52b7 100644 --- a/cli/tools/registry/pm.rs +++ b/cli/tools/registry/pm.rs @@ -679,7 +679,7 @@ enum AddRmPackageReqValue { } #[derive(Debug, PartialEq, Eq)] -struct AddRmPackageReq { +pub struct AddRmPackageReq { alias: String, value: AddRmPackageReqValue, } 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"); +} From 768c5ea2bb2a927455577a29f0761425593aea98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 16 Nov 2024 14:29:36 +0000 Subject: [PATCH 35/97] fix(ext/cache): gracefully error when cache creation failed (#26895) Removes panic reported in https://github.com/denoland/deno/issues/26893 --- ext/cache/sqlite.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ext/cache/sqlite.rs b/ext/cache/sqlite.rs index 6efceda11eaf42..469e3e51d6f313 100644 --- a/ext/cache/sqlite.rs +++ b/ext/cache/sqlite.rs @@ -8,6 +8,7 @@ use std::time::SystemTime; use std::time::UNIX_EPOCH; use async_trait::async_trait; +use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::futures::future::poll_fn; use deno_core::parking_lot::Mutex; @@ -45,7 +46,13 @@ impl SqliteBackedCache { pub fn new(cache_storage_dir: PathBuf) -> Result { { std::fs::create_dir_all(&cache_storage_dir) - .expect("failed to create cache dir"); + .with_context(|| { + format!( + "Failed to create cache storage directory {}", + cache_storage_dir.display() + ) + }) + .map_err(CacheError::Other)?; 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()) From abf06eb87f10ebed93b39948213dccfe086bd0fa Mon Sep 17 00:00:00 2001 From: HasanAlrimawi <141642411+HasanAlrimawi@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:59:31 +0200 Subject: [PATCH 36/97] feat(watch): log which file changed on HMR or watch change (#25801) Closes #25504 --- cli/tools/bench/mod.rs | 1 + cli/tools/fmt.rs | 1 + cli/tools/lint/mod.rs | 1 + cli/tools/run/mod.rs | 3 ++- cli/tools/serve.rs | 3 ++- cli/tools/test/mod.rs | 1 + cli/util/file_watcher.rs | 21 +++++++++++---------- tests/integration/watcher_tests.rs | 2 +- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs index 272d06335512a6..1d49fa061d2012 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/fmt.rs b/cli/tools/fmt.rs index 56b1632cfb7274..2221c0da975049 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()?; diff --git a/cli/tools/lint/mod.rs b/cli/tools/lint/mod.rs index 36f1cc04915275..a9c2d01528832e 100644 --- a/cli/tools/lint/mod.rs +++ b/cli/tools/lint/mod.rs @@ -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()?; 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/test/mod.rs b/cli/tools/test/mod.rs index 966b0d285aac6c..6357ebcae24a14 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -1661,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/util/file_watcher.rs b/cli/util/file_watcher.rs index 21ea95e067cd25..eb3fb8c6029c21 100644 --- a/cli/util/file_watcher.rs +++ b/cli/util/file_watcher.rs @@ -127,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), - ); } } @@ -187,7 +180,15 @@ 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 { + self.print( + format!("Restarting! File change detected: {:?}", paths[0]).to_string(), + ) + } } } @@ -263,7 +264,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/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") { From 8d2960d7ccb756de4260a642d960cd01eaaa2478 Mon Sep 17 00:00:00 2001 From: /usr/bin/cat <109351887+cu8code@users.noreply.github.com> Date: Sat, 16 Nov 2024 20:31:19 +0530 Subject: [PATCH 37/97] fix(ext/node): New async setInterval function to improve the nodejs compatibility (#26703) Closes #26499 --- ext/node/polyfills/timers.ts | 88 ++++++++++++++++++- tests/unit_node/timers_test.ts | 151 +++++++++++++++++++++++++++++++++ 2 files changed, 237 insertions(+), 2 deletions(-) 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/tests/unit_node/timers_test.ts b/tests/unit_node/timers_test.ts index 868ba21d64b2c3..c7dc30bbb7054a 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: 10, + }; + + 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`, + ); + }); + }, +}); From a1bcdf17a53fb98c476aae9e205817c4a80a363d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 16 Nov 2024 15:13:50 +0000 Subject: [PATCH 38/97] feat(jupyter): Add `Deno.jupyter.image` API (#26284) This commit adds `Deno.jupyter.image` API to display PNG and JPG images: ``` const data = Deno.readFileSync("./my-image.jpg"); Deno.jupyter.image(data); Deno.jupyter.image("./my-image.jpg"); ``` --- cli/js/40_jupyter.js | 79 ++++++++++++++++++++++++++++++ cli/tsc/dts/lib.deno.unstable.d.ts | 26 ++++++++++ runtime/js/99_main.js | 2 + tests/unit/ops_test.ts | 2 +- 4 files changed, 108 insertions(+), 1 deletion(-) 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/tsc/dts/lib.deno.unstable.d.ts b/cli/tsc/dts/lib.deno.unstable.d.ts index 6234268c39cc67..f8043f9325b1f9 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 * diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index 2da5c5398c76d1..b21575b8fbb579 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -471,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", 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 From f2cd5655c6012202c634cad5b3c136006bf1f0bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 16 Nov 2024 16:31:55 +0000 Subject: [PATCH 39/97] fix(ext/node): increase tolerance for interval test (#26899) Fixes tests added in https://github.com/denoland/deno/pull/26703 by increasing tolerance due to noisy CI machines. --- tests/unit_node/timers_test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit_node/timers_test.ts b/tests/unit_node/timers_test.ts index c7dc30bbb7054a..ddc6dc0d85dd45 100644 --- a/tests/unit_node/timers_test.ts +++ b/tests/unit_node/timers_test.ts @@ -118,7 +118,7 @@ Deno.test({ expectedValue: 42, intervalMs: 100, iterations: 3, - tolerancePercent: 10, + tolerancePercent: 50, }; const { setInterval } = timersPromises; From 56df61677e9709ec8370ba6f3a0f8b08eb913a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 16 Nov 2024 18:15:42 +0000 Subject: [PATCH 40/97] chore: reenable some tests disabled during Deno 1->2 migration (#26898) --- .../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 +- .../__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 + 10 files changed, 39 insertions(+), 27 deletions(-) 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 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/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 From 80098bfeabcd2f681f1854c6294ad0fb71c2dd06 Mon Sep 17 00:00:00 2001 From: reczkok <66403540+reczkok@users.noreply.github.com> Date: Sun, 17 Nov 2024 04:14:36 +0100 Subject: [PATCH 41/97] fix(ext/webgpu): Create GPUQuerySet converter before usage (#26883) Converter for `GPUComputePassTimestampWrites` uses converter for `GPUQuerySet` before it is defined making it impossible to use. This PR simply reorders converter creation to resolve this issue. Logging the `GPUQuerySet` still fails (as mentioned in #26769) but it is now usable inside pass descriptors and works when used. --- ext/webgpu/01_webgpu.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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( From 73411bb98a677727799122ebc397d825bf95b812 Mon Sep 17 00:00:00 2001 From: Benjamin Swerdlow Date: Sun, 17 Nov 2024 04:36:55 -0800 Subject: [PATCH 42/97] chore: Make ext/net/tcp.rs public (#26891) --- ext/net/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/net/lib.rs b/ext/net/lib.rs index bf8f58aa272396..f482750b38f7cf 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::error::AnyError; use deno_core::OpState; From cff6e280c77afb0bc42a10348eeef5360db8f361 Mon Sep 17 00:00:00 2001 From: Bhuwan Pandit Date: Sun, 17 Nov 2024 22:49:35 +0000 Subject: [PATCH 43/97] feat(cli): support multiple env file argument (#26527) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #26425 ## Overview This PR adds support for specifying multiple environment files as arguments when using the Deno CLI. Subsequent files override pre-existing variables defined in previous files. If the same variable is defined in the environment and in the file, the value from the environment takes precedence. ## Example Usage ```bash deno run --allow-env --env-file --env-file=".env.one" --env-file=".env.two" script.ts ``` --------- Co-authored-by: Bartek IwaƄczuk --- cli/args/flags.rs | 48 ++++++++++++++----- cli/args/mod.rs | 17 ++++--- cli/standalone/binary.rs | 12 +++-- tests/integration/run_tests.rs | 10 ---- 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 -- tools/lint.js | 2 +- 18 files changed, 93 insertions(+), 44 deletions(-) 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 diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 720d8db3b096c2..bd6b30e417b5c2 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -613,7 +613,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, @@ -3775,12 +3775,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 { @@ -5487,7 +5489,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( @@ -7423,7 +7427,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() } ); @@ -7517,7 +7521,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() } @@ -8165,7 +8169,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() } @@ -8181,7 +8185,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() } @@ -8214,7 +8218,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() } @@ -8235,7 +8239,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() } @@ -8378,7 +8404,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() } ); @@ -10053,7 +10079,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() } ); diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 318a6ca76b1068..ec75d7a100b157 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1128,7 +1128,7 @@ impl CliOptions { self.flags.otel_config() } - pub fn env_file_name(&self) -> Option<&String> { + pub fn env_file_name(&self) -> Option<&Vec> { self.flags.env_file.as_ref() } @@ -1935,19 +1935,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/standalone/binary.rs b/cli/standalone/binary.rs index ebcbf3ee624b86..3efd8ee1411b67 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -659,9 +659,15 @@ 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())? + 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(), }; diff --git a/tests/integration/run_tests.rs b/tests/integration/run_tests.rs index 549b88bac44f1d..c97b700c5ddedc 100644 --- a/tests/integration/run_tests.rs +++ b/tests/integration/run_tests.rs @@ -418,16 +418,6 @@ fn permissions_cache() { }); } -itest!(env_file { - args: "run --env=env --allow-env run/env_file.ts", - output: "run/env_file.out", -}); - -itest!(env_file_missing { - args: "run --env=missing --allow-env run/env_file.ts", - output: "run/env_file_missing.out", -}); - itest!(lock_write_fetch { args: "run --quiet --allow-import --allow-read --allow-write --allow-env --allow-run run/lock_write_fetch/main.ts", 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/tools/lint.js b/tools/lint.js index 21064a05bf65b1..604dee9b308989 100755 --- a/tools/lint.js +++ b/tools/lint.js @@ -219,7 +219,7 @@ async function ensureNoNewITests() { "pm_tests.rs": 0, "publish_tests.rs": 0, "repl_tests.rs": 0, - "run_tests.rs": 20, + "run_tests.rs": 18, "shared_library_tests.rs": 0, "task_tests.rs": 2, "test_tests.rs": 0, From 3ba464dbc40dd2d6bd3f7a1912aa8f0fad95058f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 18 Nov 2024 19:27:44 +0000 Subject: [PATCH 44/97] chore: temporarily disable dns tests for Node compat (#26915) These tests are hitting a remote server which sometimes starts failing randomly on CI. They need to be rewritten to use a local server and have `/etc/hosts` setup that remaps relevants URLs. --- tests/node_compat/config.jsonc | 18 +- tests/node_compat/runner/TODO.md | 4 + .../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 ------------------ 6 files changed, 14 insertions(+), 1475 deletions(-) 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 diff --git a/tests/node_compat/config.jsonc b/tests/node_compat/config.jsonc index 664adaedfa0c49..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", @@ -149,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": [ diff --git a/tests/node_compat/runner/TODO.md b/tests/node_compat/runner/TODO.md index 27c2ef3e789059..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) 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()); From dd4570ed85888d9659a2eec98437dbd6de4a5799 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 18 Nov 2024 15:09:28 -0500 Subject: [PATCH 45/97] perf(compile): code cache (#26528) Adds a lazily created code cache to `deno compile` by default. The code cache is created on first run to a single file in the temp directory and is only written once. After it's been written, the code cache becomes read only on subsequent runs. Only the modules loaded during startup are cached (dynamic imports are not code cached). The code cache can be disabled by compiling with `--no-code-cache`. --- cli/args/flags.rs | 7 +- cli/cache/code_cache.rs | 10 + cli/standalone/binary.rs | 14 + cli/standalone/code_cache.rs | 514 ++++++++++++++++++ cli/standalone/mod.rs | 89 ++- cli/worker.rs | 15 +- runtime/code_cache.rs | 11 +- 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 + .../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 + 14 files changed, 703 insertions(+), 20 deletions(-) create mode 100644 cli/standalone/code_cache.rs 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 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 diff --git a/cli/args/flags.rs b/cli/args/flags.rs index bd6b30e417b5c2..39db12b5f1b855 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -1939,6 +1939,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") @@ -4431,6 +4432,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, @@ -10040,6 +10043,7 @@ mod tests { include: vec![] }), type_check_mode: TypeCheckMode::Local, + code_cache_enabled: true, ..Flags::default() } ); @@ -10048,7 +10052,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 { @@ -10064,6 +10068,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, 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/standalone/binary.rs b/cli/standalone/binary.rs index 3efd8ee1411b67..37753bafc8659b 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -64,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; @@ -174,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, @@ -604,10 +606,21 @@ impl<'a> DenoCompileBinaryWriter<'a> { VfsBuilder::new(root_path.clone())? }; let mut remote_modules_store = RemoteModulesStoreBuilder::default(); + let mut code_cache_key_hasher = if 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() { @@ -675,6 +688,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { let metadata = Metadata { argv: compile_flags.args.clone(), seed: cli_options.seed(), + code_cache_key: code_cache_key_hasher.map(|h| h.finish()), location: cli_options.location_flag().clone(), permissions: cli_options.permission_flags().clone(), v8_flags: cli_options.v8_flags().clone(), diff --git a/cli/standalone/code_cache.rs b/cli/standalone/code_cache.rs new file mode 100644 index 00000000000000..25b490544cf1d7 --- /dev/null +++ b/cli/standalone/code_cache.rs @@ -0,0 +1,514 @@ +// 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", data.len()); + Self { + strategy: CodeCacheStrategy::SubsequentRun( + SubsequentRunCodeCacheStrategy { + is_finished: AtomicFlag::lowered(), + data: Mutex::new(data), + }, + ), + } + } + Err(err) => { + log::debug!("Failed to deserialize code cache: {:#}", 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); + } 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 e3449c152046e9..b9f0b1d5be0825 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,6 +29,7 @@ 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; @@ -64,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; @@ -86,12 +90,14 @@ 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; @@ -113,6 +119,35 @@ struct SharedModuleLoaderState { 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)] @@ -329,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, @@ -345,7 +385,7 @@ impl ModuleLoader for EmbeddedModuleLoader { code_source.code, &original_specifier, &code_source.found_url, - None, + code_cache_entry, )) } .boxed_local(), @@ -398,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, ), )) } @@ -429,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 { @@ -739,6 +801,19 @@ 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(), @@ -751,6 +826,7 @@ pub async fn run(data: StandaloneData) -> Result { fs.clone(), node_code_translator, )), + code_cache: code_cache.clone(), npm_resolver: npm_resolver.clone(), workspace_resolver, npm_req_resolver, @@ -792,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, diff --git a/cli/worker.rs b/cli/worker.rs index 24397b6bf0831e..3b09714d59fb3e 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -83,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>; @@ -127,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, @@ -393,7 +402,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>, @@ -554,7 +563,7 @@ impl CliMainWorkerFactory { ), 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 { 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/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/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); From 19bbf83e47e4f98a45fe1c735dd2cdab80b99eca Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 18 Nov 2024 15:44:17 -0500 Subject: [PATCH 46/97] perf(windows): delay load webgpu and some other dlls (#26917) Before: ~100ms, After: ~40ms for a hello world Closes https://github.com/denoland/deno/issues/26914 --- cli/build.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cli/build.rs b/cli/build.rs index 2678a8dbb027e0..3d986612841584 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -400,6 +400,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()); From c36f877f8d98f9756154e26809c614d6749b3fd1 Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Mon, 18 Nov 2024 21:45:34 +0000 Subject: [PATCH 47/97] fix(lsp): ignore editor indent settings if deno.json is present (#26912) --- cli/lsp/language_server.rs | 6 ++++-- tests/integration/lsp_tests.rs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index c93628555b511c..2ce26c1f2e4100 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -1396,9 +1396,11 @@ 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")) diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs index a5b0ee24715acb..8eaccb54877546 100644 --- a/tests/integration/lsp_tests.rs +++ b/tests/integration/lsp_tests.rs @@ -11680,7 +11680,7 @@ fn lsp_format_with_config() { }, "options": { "tabSize": 2, - "insertSpaces": false + "insertSpaces": true, } }), ); From 106d47a0136c04ca219a81c3f91505116e13855e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 18 Nov 2024 22:54:28 +0000 Subject: [PATCH 48/97] feat: fmt and lint respect .gitignore file (#26897) Closes https://github.com/denoland/deno/issues/26573 --- cli/tools/fmt.rs | 1 + cli/tools/lint/mod.rs | 1 + 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/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 ++++++ 12 files changed, 55 insertions(+) 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/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 diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index 2221c0da975049..d40abd5f50f55c 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -228,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) } diff --git a/cli/tools/lint/mod.rs b/cli/tools/lint/mod.rs index a9c2d01528832e..fcefb458746f03 100644 --- a/cli/tools/lint/mod.rs +++ b/cli/tools/lint/mod.rs @@ -436,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/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/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 {} From 594a99817cbe44553b2c288578fbba8e1e9c1907 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Tue, 19 Nov 2024 00:55:22 +0100 Subject: [PATCH 49/97] feat(runtime): remove public OTEL trace API (#26854) This PR removes the public Deno.tracing.Span API. We are not confident we can ship an API that is better than the `@opentelemetry/api` API, because V8 CPED does not support us using `using` to manage span context. If this changes, we can revisit this decision. For now, users wanting custom spans can instrument their code using the `@opentelemetry/api` API and `@deno/otel`. This PR also speeds up the OTEL trace generation by a 30% by using Uint8Array instead of strings for the trace ID and span ID. --- cli/tsc/dts/lib.deno.unstable.d.ts | 123 ++- ext/console/internal.d.ts | 3 + runtime/js/90_deno_ns.js | 5 +- runtime/js/99_main.js | 2 +- runtime/js/telemetry.js | 409 ---------- runtime/js/telemetry.ts | 720 ++++++++++++++++++ runtime/ops/otel.rs | 297 +++++--- runtime/shared.rs | 2 +- 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 + .../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/specs/cli/otel_basic/basic.out | 18 +- tests/specs/cli/otel_basic/basic.ts | 24 +- tests/specs/cli/otel_basic/main.ts | 2 +- tools/core_import_map.json | 2 +- 22 files changed, 1079 insertions(+), 604 deletions(-) delete mode 100644 runtime/js/telemetry.js create mode 100644 runtime/js/telemetry.ts 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/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 diff --git a/cli/tsc/dts/lib.deno.unstable.d.ts b/cli/tsc/dts/lib.deno.unstable.d.ts index f8043f9325b1f9..6759856e6add49 100644 --- a/cli/tsc/dts/lib.deno.unstable.d.ts +++ b/cli/tsc/dts/lib.deno.unstable.d.ts @@ -1252,80 +1252,53 @@ declare namespace Deno { } /** + * **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 tracing { - /** - * Whether tracing is enabled. - * @category Telemetry - * @experimental - */ - export const enabled: boolean; - - /** - * Allowed attribute type. - * @category Telemetry - * @experimental - */ - export type AttributeValue = string | number | boolean | bigint; - - /** - * A tracing span. - * @category Telemetry - * @experimental - */ - export class Span implements Disposable { - readonly traceId: string; - readonly spanId: string; - readonly parentSpanId: string; - readonly kind: string; - readonly name: string; - readonly startTime: number; - readonly endTime: number; - readonly status: null | { code: 1 } | { code: 2; message: string }; - readonly attributes: Record; - readonly traceFlags: number; - - /** - * Construct a new Span and enter it as the "current" span. - */ - constructor( - name: string, - kind?: "internal" | "server" | "client" | "producer" | "consumer", - ); - - /** - * Set an attribute on this span. - */ - setAttribute( - name: string, - value: AttributeValue, - ): void; - - /** - * Enter this span as the "current" span. - */ - enter(): void; - - /** - * Exit this span as the "current" span and restore the previous one. - */ - exit(): void; - - /** - * End this span, and exit it as the "current" span. - */ - end(): void; - - [Symbol.dispose](): void; - - /** - * Get the "current" span, if one exists. - */ - static current(): Span | undefined | null; - } - + export namespace telemetry { /** * A SpanExporter compatible with OpenTelemetry.js * https://open-telemetry.github.io/opentelemetry-js/interfaces/_opentelemetry_sdk_trace_base.SpanExporter.html @@ -1345,14 +1318,6 @@ declare namespace Deno { export {}; // only export exports } - /** - * @category Telemetry - * @experimental - */ - export namespace metrics { - export {}; // only export exports - } - export {}; // only export exports } 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/runtime/js/90_deno_ns.js b/runtime/js/90_deno_ns.js index 079338510b802f..6300f599d90e16 100644 --- a/runtime/js/90_deno_ns.js +++ b/runtime/js/90_deno_ns.js @@ -29,7 +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.js"; +import * as telemetry from "ext:runtime/telemetry.ts"; const denoNs = { Process: process.Process, @@ -185,8 +185,7 @@ denoNsUnstableById[unstableIds.webgpu] = { // denoNsUnstableById[unstableIds.workerOptions] = { __proto__: null } denoNsUnstableById[unstableIds.otel] = { - tracing: telemetry.tracing, - metrics: telemetry.metrics, + telemetry: telemetry.telemetry, }; export { denoNs, denoNsUnstableById, unstableIds }; diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index b21575b8fbb579..eedca3396ec3be 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -86,7 +86,7 @@ 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.js"; +import { bootstrap as bootstrapOtel } from "ext:runtime/telemetry.ts"; // deno-lint-ignore prefer-primordials if (Symbol.metadata) { diff --git a/runtime/js/telemetry.js b/runtime/js/telemetry.js deleted file mode 100644 index 195839fb158d77..00000000000000 --- a/runtime/js/telemetry.js +++ /dev/null @@ -1,409 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { core, primordials } from "ext:core/mod.js"; -import { - 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_start, -} from "ext:core/ops"; -import { Console } from "ext:deno_console/01_console.js"; -import { performance } from "ext:deno_web/15_performance.js"; - -const { - SymbolDispose, - MathRandom, - Array, - ObjectEntries, - SafeMap, - ReflectApply, - SymbolFor, - Error, - NumberPrototypeToString, - StringPrototypePadStart, -} = primordials; -const { AsyncVariable, setAsyncContext } = core; - -const CURRENT = new AsyncVariable(); -let TRACING_ENABLED = false; -let DETERMINISTIC = false; - -const SPAN_ID_BYTES = 8; -const TRACE_ID_BYTES = 16; - -const TRACE_FLAG_SAMPLED = 1 << 0; - -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; -})(); - -let counter = 1; - -const INVALID_SPAN_ID = "0000000000000000"; -const INVALID_TRACE_ID = "00000000000000000000000000000000"; - -function generateId(bytes) { - if (DETERMINISTIC) { - return StringPrototypePadStart( - NumberPrototypeToString(counter++, 16), - bytes * 2, - "0", - ); - } - let out = ""; - for (let i = 0; i < bytes / 4; i += 1) { - const r32 = (MathRandom() * 2 ** 32) >>> 0; - out += hexSliceLookupTable[(r32 >> 24) & 0xff]; - out += hexSliceLookupTable[(r32 >> 16) & 0xff]; - out += hexSliceLookupTable[(r32 >> 8) & 0xff]; - out += hexSliceLookupTable[r32 & 0xff]; - } - return out; -} - -function submit(span) { - if (!(span.traceFlags & TRACE_FLAG_SAMPLED)) return; - - op_otel_span_start( - span.traceId, - span.spanId, - span.parentSpanId ?? "", - span.kind, - span.name, - span.startTime, - span.endTime, - ); - - if (span.status !== null && span.status.code !== 0) { - op_otel_span_continue(span.code, span.message ?? ""); - } - - const attributes = ObjectEntries(span.attributes); - let i = 0; - while (i < attributes.length) { - if (i + 2 < attributes.length) { - op_otel_span_attribute3( - attributes.length, - attributes[i][0], - attributes[i][1], - attributes[i + 1][0], - attributes[i + 1][1], - attributes[i + 2][0], - attributes[i + 2][1], - ); - i += 3; - } else if (i + 1 < attributes.length) { - op_otel_span_attribute2( - attributes.length, - attributes[i][0], - attributes[i][1], - attributes[i + 1][0], - attributes[i + 1][1], - ); - i += 2; - } else { - op_otel_span_attribute( - attributes.length, - attributes[i][0], - attributes[i][1], - ); - i += 1; - } - } - - op_otel_span_flush(); -} - -const now = () => (performance.timeOrigin + performance.now()) / 1000; - -const NO_ASYNC_CONTEXT = {}; - -class Span { - traceId; - spanId; - parentSpanId; - kind; - name; - startTime; - endTime; - status = null; - attributes = { __proto__: null }; - traceFlags = TRACE_FLAG_SAMPLED; - - enabled = TRACING_ENABLED; - #asyncContext = NO_ASYNC_CONTEXT; - - constructor(name, kind = "internal") { - if (!this.enabled) { - this.traceId = INVALID_TRACE_ID; - this.spanId = INVALID_SPAN_ID; - this.parentSpanId = INVALID_SPAN_ID; - return; - } - - this.startTime = now(); - - this.spanId = generateId(SPAN_ID_BYTES); - - let traceId; - let parentSpanId; - const parent = Span.current(); - if (parent) { - if (parent.spanId !== undefined) { - parentSpanId = parent.spanId; - traceId = parent.traceId; - } else { - const context = parent.spanContext(); - parentSpanId = context.spanId; - traceId = context.traceId; - } - } - if ( - traceId && traceId !== INVALID_TRACE_ID && parentSpanId && - parentSpanId !== INVALID_SPAN_ID - ) { - this.traceId = traceId; - this.parentSpanId = parentSpanId; - } else { - this.traceId = generateId(TRACE_ID_BYTES); - this.parentSpanId = INVALID_SPAN_ID; - } - - this.name = name; - - switch (kind) { - case "internal": - this.kind = 0; - break; - case "server": - this.kind = 1; - break; - case "client": - this.kind = 2; - break; - case "producer": - this.kind = 3; - break; - case "consumer": - this.kind = 4; - break; - default: - throw new Error(`Invalid span kind: ${kind}`); - } - - this.enter(); - } - - // helper function to match otel js api - spanContext() { - return { - traceId: this.traceId, - spanId: this.spanId, - traceFlags: this.traceFlags, - }; - } - - setAttribute(name, value) { - if (!this.enabled) return; - this.attributes[name] = value; - } - - enter() { - if (!this.enabled) return; - const context = (CURRENT.get() || ROOT_CONTEXT).setValue(SPAN_KEY, this); - this.#asyncContext = CURRENT.enter(context); - } - - exit() { - if (!this.enabled || this.#asyncContext === NO_ASYNC_CONTEXT) return; - setAsyncContext(this.#asyncContext); - this.#asyncContext = NO_ASYNC_CONTEXT; - } - - end() { - if (!this.enabled || this.endTime !== undefined) return; - this.exit(); - this.endTime = now(); - submit(this); - } - - [SymbolDispose]() { - this.end(); - } - - static current() { - return CURRENT.get()?.getValue(SPAN_KEY); - } -} - -function hrToSecs(hr) { - return ((hr[0] * 1e3 + hr[1] / 1e6) / 1000); -} - -// Exporter compatible with opentelemetry js library -class SpanExporter { - export(spans, resultCallback) { - try { - for (let i = 0; i < spans.length; i += 1) { - const span = spans[i]; - const context = span.spanContext(); - submit({ - spanId: context.spanId, - traceId: context.traceId, - traceFlags: context.traceFlags, - name: span.name, - kind: span.kind, - parentSpanId: span.parentSpanId, - startTime: hrToSecs(span.startTime), - endTime: hrToSecs(span.endTime), - status: span.status, - attributes: span.attributes, - }); - } - resultCallback({ code: 0 }); - } catch (error) { - resultCallback({ code: 1, error }); - } - } - - async shutdown() {} - - async forceFlush() {} -} - -// SPAN_KEY matches symbol in otel-js library -const SPAN_KEY = SymbolFor("OpenTelemetry Context Key SPAN"); - -// Context tracker compatible with otel-js api -class Context { - #data = new SafeMap(); - - constructor(data) { - this.#data = data ? new SafeMap(data) : new SafeMap(); - } - - getValue(key) { - return this.#data.get(key); - } - - setValue(key, value) { - const c = new Context(this.#data); - c.#data.set(key, value); - return c; - } - - deleteValue(key) { - const c = new Context(this.#data); - c.#data.delete(key); - return c; - } -} - -const ROOT_CONTEXT = new Context(); - -// Context manager for opentelemetry js library -class ContextManager { - active() { - return CURRENT.get() ?? ROOT_CONTEXT; - } - - with(context, fn, thisArg, ...args) { - const ctx = CURRENT.enter(context); - try { - return ReflectApply(fn, thisArg, args); - } finally { - setAsyncContext(ctx); - } - } - - bind(context, f) { - return (...args) => { - const ctx = CURRENT.enter(context); - try { - return ReflectApply(f, thisArg, args); - } finally { - setAsyncContext(ctx); - } - }; - } - - enable() { - return this; - } - - disable() { - return this; - } -} - -function otelLog(message, level) { - let traceId = ""; - let spanId = ""; - let traceFlags = 0; - const span = Span.current(); - if (span) { - if (span.spanId !== undefined) { - spanId = span.spanId; - traceId = span.traceId; - traceFlags = span.traceFlags; - } else { - const context = span.spanContext(); - spanId = context.spanId; - traceId = context.traceId; - traceFlags = context.traceFlags; - } - } - return op_otel_log(message, level, traceId, spanId, traceFlags); -} - -const otelConsoleConfig = { - ignore: 0, - capture: 1, - replace: 2, -}; - -export function bootstrap(config) { - 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 tracing = { - get enabled() { - return TRACING_ENABLED; - }, - Span, - SpanExporter, - ContextManager, -}; - -// TODO(devsnek): implement metrics -export const metrics = {}; 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/ops/otel.rs b/runtime/ops/otel.rs index b32764d7f8f511..61a7b0ef0dff8f 100644 --- a/runtime/ops/otel.rs +++ b/runtime/ops/otel.rs @@ -1,8 +1,8 @@ // 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::anyhow::{self}; use deno_core::futures::channel::mpsc; use deno_core::futures::channel::mpsc::UnboundedSender; use deno_core::futures::future::BoxFuture; @@ -23,7 +23,6 @@ use opentelemetry::trace::SpanKind; use opentelemetry::trace::Status as SpanStatus; use opentelemetry::trace::TraceFlags; use opentelemetry::trace::TraceId; -use opentelemetry::InstrumentationScope; use opentelemetry::Key; use opentelemetry::KeyValue; use opentelemetry::StringValue; @@ -63,11 +62,15 @@ 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, ], ); @@ -303,6 +306,10 @@ mod hyper_client { 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. @@ -390,6 +397,14 @@ pub fn init(config: OtelConfig) -> anyhow::Result<()> { .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(()) } @@ -458,16 +473,160 @@ pub fn handle_log(record: &log::Record) { log_processor.emit( &mut log_record, - &InstrumentationScope::builder("deno").build(), + 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, - #[string] trace_id: &str, - #[string] span_id: &str, + trace_id: v8::Local<'_, v8::Value>, + span_id: v8::Local<'_, v8::Value>, #[smi] trace_flags: u8, ) { let Some((_, log_processor)) = OTEL_PROCESSORS.get() else { @@ -483,15 +642,16 @@ fn op_otel_log( 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 let (Ok(trace_id), Ok(span_id)) = - (TraceId::from_hex(trace_id), SpanId::from_hex(span_id)) - { + if trace_id != TraceId::INVALID && span_id != SpanId::INVALID { log_record.set_trace_context( trace_id, span_id, @@ -501,7 +661,7 @@ fn op_otel_log( log_processor.emit( &mut log_record, - &InstrumentationScope::builder("deno").build(), + BUILT_IN_INSTRUMENTATION_SCOPE.get().unwrap(), ); } @@ -527,40 +687,23 @@ fn op_otel_span_start<'s>( span_processor.on_end(temporary_span.0); }; - let trace_id = { - let x = v8::ValueView::new(scope, trace_id.try_cast()?); - match x.data() { - v8::ValueViewData::OneByte(bytes) => { - TraceId::from_hex(&String::from_utf8_lossy(bytes))? - } - _ => return Err(anyhow!("invalid trace_id")), - } + let Some(InstrumentationScope(instrumentation_scope)) = + state.try_borrow::() + else { + return Err(anyhow!("instrumentation scope not available")); }; - let span_id = { - let x = v8::ValueView::new(scope, span_id.try_cast()?); - match x.data() { - v8::ValueViewData::OneByte(bytes) => { - SpanId::from_hex(&String::from_utf8_lossy(bytes))? - } - _ => return Err(anyhow!("invalid span_id")), - } - }; + let trace_id = parse_trace_id(scope, trace_id); + if trace_id == TraceId::INVALID { + return Err(anyhow!("invalid trace_id")); + } - let parent_span_id = { - let x = v8::ValueView::new(scope, parent_span_id.try_cast()?); - match x.data() { - v8::ValueViewData::OneByte(bytes) => { - let s = String::from_utf8_lossy(bytes); - if s.is_empty() { - SpanId::INVALID - } else { - SpanId::from_hex(&s)? - } - } - _ => return Err(anyhow!("invalid parent_span_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()?); @@ -601,7 +744,7 @@ fn op_otel_span_start<'s>( events: Default::default(), links: Default::default(), status: SpanStatus::Unset, - instrumentation_scope: InstrumentationScope::builder("deno").build(), + instrumentation_scope: instrumentation_scope.clone(), }); state.put(temporary_span); @@ -626,52 +769,6 @@ fn op_otel_span_continue( } } -macro_rules! attr { - ($scope:ident, $temporary_span:ident, $name:ident, $value:ident) => { - 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) { - $temporary_span - .0 - .attributes - .push(KeyValue::new(name, value)); - } else { - $temporary_span.0.dropped_attributes_count += 1; - } - }; -} - #[op2(fast)] fn op_otel_span_attribute<'s>( scope: &mut v8::HandleScope<'s>, @@ -684,7 +781,7 @@ fn op_otel_span_attribute<'s>( temporary_span.0.attributes.reserve_exact( (capacity as usize) - temporary_span.0.attributes.capacity(), ); - attr!(scope, temporary_span, key, value); + attr!(scope, temporary_span.0.attributes => temporary_span.0.dropped_attributes_count, key, value); } } @@ -702,8 +799,8 @@ fn op_otel_span_attribute2<'s>( temporary_span.0.attributes.reserve_exact( (capacity as usize) - temporary_span.0.attributes.capacity(), ); - attr!(scope, temporary_span, key1, value1); - attr!(scope, temporary_span, key2, value2); + 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); } } @@ -724,9 +821,23 @@ fn op_otel_span_attribute3<'s>( temporary_span.0.attributes.reserve_exact( (capacity as usize) - temporary_span.0.attributes.capacity(), ); - attr!(scope, temporary_span, key1, value1); - attr!(scope, temporary_span, key2, value2); - attr!(scope, temporary_span, key3, value3); + 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; } } diff --git a/runtime/shared.rs b/runtime/shared.rs index c05f352f1c3ef6..b1f383b03d4d6c 100644 --- a/runtime/shared.rs +++ b/runtime/shared.rs @@ -47,7 +47,7 @@ extension!(runtime, "40_signals.js", "40_tty.js", "41_prompt.js", - "telemetry.js", + "telemetry.ts", "90_deno_ns.js", "98_global_scope_shared.js", "98_global_scope_window.js", 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/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/specs/cli/otel_basic/basic.out b/tests/specs/cli/otel_basic/basic.out index 3f0554f96ade38..3745cb7f359929 100644 --- a/tests/specs/cli/otel_basic/basic.out +++ b/tests/specs/cli/otel_basic/basic.out @@ -1,10 +1,10 @@ { "spans": [ { - "traceId": "00000000000000000000000000000002", - "spanId": "0000000000000003", + "traceId": "10000000000000000000000000000002", + "spanId": "1000000000000003", "traceState": "", - "parentSpanId": "0000000000000001", + "parentSpanId": "1000000000000001", "flags": 1, "name": "inner span", "kind": 1, @@ -22,8 +22,8 @@ } }, { - "traceId": "00000000000000000000000000000002", - "spanId": "0000000000000001", + "traceId": "10000000000000000000000000000002", + "spanId": "1000000000000001", "traceState": "", "parentSpanId": "", "flags": 1, @@ -55,8 +55,8 @@ "attributes": [], "droppedAttributesCount": 0, "flags": 1, - "traceId": "00000000000000000000000000000002", - "spanId": "0000000000000003" + "traceId": "10000000000000000000000000000002", + "spanId": "1000000000000003" }, { "timeUnixNano": "0", @@ -69,8 +69,8 @@ "attributes": [], "droppedAttributesCount": 0, "flags": 1, - "traceId": "00000000000000000000000000000002", - "spanId": "0000000000000003" + "traceId": "10000000000000000000000000000002", + "spanId": "1000000000000003" } ] } diff --git a/tests/specs/cli/otel_basic/basic.ts b/tests/specs/cli/otel_basic/basic.ts index 5a178794a3ea58..5c4ae43cd8298e 100644 --- a/tests/specs/cli/otel_basic/basic.ts +++ b/tests/specs/cli/otel_basic/basic.ts @@ -1,10 +1,17 @@ // 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() { - using _span = new Deno.tracing.Span("inner span"); - console.log("log 1"); - await 1; - console.log("log 2"); + await tracer.startActiveSpan("inner span", async (span) => { + console.log("log 1"); + await 1; + console.log("log 2"); + span.end(); + }); } const server = Deno.serve({ @@ -17,8 +24,11 @@ const server = Deno.serve({ } }, handler: async (_req) => { - using _span = new Deno.tracing.Span("outer span"); - await inner(); - return new Response(null, { status: 200 }); + 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/main.ts b/tests/specs/cli/otel_basic/main.ts index 6c49462a0bfd43..5415a7437d1054 100644 --- a/tests/specs/cli/otel_basic/main.ts +++ b/tests/specs/cli/otel_basic/main.ts @@ -10,7 +10,7 @@ const server = Deno.serve( port: 0, onListen({ port }) { const command = new Deno.Command(Deno.execPath(), { - args: ["run", "-A", "--unstable-otel", Deno.args[0]], + args: ["run", "-A", "-q", "--unstable-otel", Deno.args[0]], env: { OTEL_EXPORTER_OTLP_PROTOCOL: "http/json", OTEL_EXPORTER_OTLP_ENDPOINT: `http://localhost:${port}`, diff --git a/tools/core_import_map.json b/tools/core_import_map.json index 0811672b16f63d..38ffe55858d932 100644 --- a/tools/core_import_map.json +++ b/tools/core_import_map.json @@ -247,7 +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.js": "../runtime/js/telemetry.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", From df1d36324ffd4f687c406e412f9255bf7a9d8a61 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Tue, 19 Nov 2024 01:39:40 +0100 Subject: [PATCH 50/97] fix(node/crypto): support promisify on generateKeyPair (#26913) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Calling `promisify(generateKeyPair)` didn't work as expected. It requires a custom promisify implementation. This was easy to fix thanks to the excellent debugging investigation in https://github.com/denoland/deno/issues/26910 Fixes https://github.com/denoland/deno/issues/26910 Co-authored-by: Bartek IwaƄczuk --- ext/node/polyfills/internal/crypto/keygen.ts | 20 +++++++++++++---- tests/unit_node/crypto/crypto_key_test.ts | 23 ++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) 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/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-----")); +}); From 9f26ca450936da66e57dad2206d0d11363e7b35c Mon Sep 17 00:00:00 2001 From: Yusuke Tanaka Date: Tue, 19 Nov 2024 10:46:24 +0900 Subject: [PATCH 51/97] feat(ext/http): Make http server parameters configurable (#26785) This commit makes http server parameters configurable on the extension initialization via two callbacks users can provide. The main motivation behind this change is to allow `deno_http` users to tune the HTTP/2 server to suit their needs, although Deno CLI users will not benefit from it as no JavaScript interface is exposed to set these parameters currently. It is up to users whether to provide hook functions. If not provided, the default configuration from hyper crate will be used. --- ext/http/http_next.rs | 79 ++++++++++++++++++++++++++++++++----------- ext/http/lib.rs | 29 +++++++++++++++- runtime/snapshot.rs | 4 ++- runtime/web_worker.rs | 4 ++- runtime/worker.rs | 4 ++- 5 files changed, 97 insertions(+), 23 deletions(-) diff --git a/ext/http/http_next.rs b/ext/http/http_next.rs index 1251f00cc065ae..7dbac6021ae306 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; @@ -821,10 +822,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(); @@ -843,9 +850,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) => { @@ -861,15 +876,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) } @@ -880,6 +896,7 @@ fn serve_https( request_info: HttpConnectionProperties, lifetime: HttpLifetime, tx: tokio::sync::mpsc::Sender>, + options: Options, ) -> JoinHandle> { let HttpLifetime { server_state, @@ -891,21 +908,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), @@ -917,6 +944,7 @@ fn serve_http( request_info: HttpConnectionProperties, lifetime: HttpLifetime, tx: tokio::sync::mpsc::Sender>, + options: Options, ) -> JoinHandle> { let HttpLifetime { server_state, @@ -928,7 +956,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), ) } @@ -938,6 +966,7 @@ fn serve_http_on( listen_properties: &HttpListenProperties, lifetime: HttpLifetime, tx: tokio::sync::mpsc::Sender>, + options: Options, ) -> JoinHandle> where HTTP: HttpPropertyExtractor, @@ -949,14 +978,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 +1074,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 { @@ -1057,6 +1091,7 @@ where &listen_properties_clone, lifetime.clone(), tx.clone(), + options, ); } #[allow(unreachable_code)] @@ -1093,11 +1128,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 49893b1b921f21..39b0bbc2af9691 100644 --- a/ext/http/lib.rs +++ b/ext/http/lib.rs @@ -39,6 +39,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; @@ -96,6 +98,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], @@ -135,6 +156,12 @@ 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)] @@ -1117,7 +1144,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/runtime/snapshot.rs b/runtime/snapshot.rs index 7f6e6b8ab6ca2c..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()), diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index 8e0c870d1ad6ae..a282d11b9a02a2 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -497,7 +497,9 @@ impl WebWorker { ), 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(), diff --git a/runtime/worker.rs b/runtime/worker.rs index 99123463cf15e5..909147df9ba1c2 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -407,7 +407,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(), From 0e2f6e38e7b93e42099f546ef2c01629964d095a Mon Sep 17 00:00:00 2001 From: Yusuke Tanaka Date: Tue, 19 Nov 2024 10:48:57 +0900 Subject: [PATCH 52/97] feat(ext/fetch): Make fetch client parameters configurable (#26909) This commit makes HTTP client parameters used in `fetch` API configurable on the extension initialization via a callback `client_builder_hook` that users can provide. The main motivation behind this change is to allow `deno_fetch` users to tune the HTTP/2 client to suit their needs, although Deno CLI users will not benefit from it as no JavaScript interface is exposed to set these parameters currently. It is up to users whether to provide a hook function. If not provided, the default configuration from hyper crate will be used. Ref #26785 --- ext/fetch/lib.rs | 23 +++++++++++++++++++++-- ext/fetch/tests.rs | 1 + ext/kv/remote.rs | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index 5949f9f75f5311..c8e93b9feaf3b4 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -67,6 +67,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 +86,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<(), deno_core::error::AnyError>, @@ -112,6 +123,7 @@ 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, @@ -271,6 +283,7 @@ pub fn create_client_from_options( pool_idle_timeout: None, http1: true, http2: true, + client_builder_hook: options.client_builder_hook, }, ) } @@ -908,6 +921,7 @@ where ), http1: args.http1, http2: args.http2, + client_builder_hook: options.client_builder_hook, }, )?; @@ -929,6 +943,7 @@ pub struct CreateHttpClientOptions { pub pool_idle_timeout: Option>, pub http1: bool, pub http2: bool, + pub client_builder_hook: Option HyperClientBuilder>, } impl Default for CreateHttpClientOptions { @@ -944,6 +959,7 @@ impl Default for CreateHttpClientOptions { pool_idle_timeout: None, http1: true, http2: true, + client_builder_hook: None, } } } @@ -999,11 +1015,14 @@ pub fn create_http_client( 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) diff --git a/ext/fetch/tests.rs b/ext/fetch/tests.rs index 5cd1a35a5e0b28..e053c6b1cfec5f 100644 --- a/ext/fetch/tests.rs +++ b/ext/fetch/tests.rs @@ -126,6 +126,7 @@ async fn rust_test_client_with_resolver( dns_resolver: resolver, http1: true, http2: true, + client_builder_hook: None, }, ) .unwrap(); diff --git a/ext/kv/remote.rs b/ext/kv/remote.rs index 63146daf71e420..1830aa67ee6df3 100644 --- a/ext/kv/remote.rs +++ b/ext/kv/remote.rs @@ -210,6 +210,7 @@ impl DatabaseHandler pool_idle_timeout: None, http1: false, http2: true, + client_builder_hook: None, }, )?; let fetch_client = FetchClient(client); From 069bc15030225393f7d05521505316066464bdbd Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Tue, 19 Nov 2024 16:49:25 +0530 Subject: [PATCH 53/97] feat(ext/node): perf_hooks.monitorEventLoopDelay() (#26905) Fixes https://github.com/denoland/deno/issues/20961 Depends on https://github.com/denoland/deno_core/pull/965 and https://github.com/denoland/deno_core/pull/966 --- Cargo.lock | 44 ++++++++-- Cargo.toml | 2 +- ext/ffi/dlfcn.rs | 11 ++- ext/node/Cargo.toml | 1 + ext/node/lib.rs | 3 + ext/node/ops/mod.rs | 1 + ext/node/ops/perf_hooks.rs | 135 +++++++++++++++++++++++++++++ ext/node/polyfills/perf_hooks.ts | 10 ++- tests/unit_node/perf_hooks_test.ts | 19 ++-- 9 files changed, 205 insertions(+), 21 deletions(-) create mode 100644 ext/node/ops/perf_hooks.rs diff --git a/Cargo.lock b/Cargo.lock index 56d2417419e8e6..13495855c91e7b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1452,9 +1452,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.319.0" +version = "0.320.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9dbb841f9850534320d8927dce53ca8d64bafbab5576c2a98f03f9e08534215" +checksum = "f285eed7b072749f9c3a9c4cf2c9ebb06462a2c22afec94892a6684c38f32696" dependencies = [ "anyhow", "bincode", @@ -1929,6 +1929,7 @@ dependencies = [ "stable_deref_trait", "thiserror", "tokio", + "tokio-eld", "url", "webpki-root-certs", "winapi", @@ -1959,13 +1960,14 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.195.0" +version = "0.196.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "797f348c38c07a5398bf790b280077c698e13fb49252f61ca6f6c5c616060292" +checksum = "d35c75ae05062f37ec2ae5fd1d99b2dcdfa0aef70844d3706759b8775056c5f6" dependencies = [ "proc-macro-rules", "proc-macro2", "quote", + "stringcase", "strum", "strum_macros", "syn 2.0.87", @@ -3560,6 +3562,20 @@ dependencies = [ "hashbrown 0.14.5", ] +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "base64 0.21.7", + "byteorder", + "crossbeam-channel", + "flate2", + "nom 7.1.3", + "num-traits", +] + [[package]] name = "heck" version = "0.4.1" @@ -6406,9 +6422,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.228.0" +version = "0.229.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe23e75c9a167f4e9d67a90d9fcaa622d1eec9aecad526c270e99a92f6915ff" +checksum = "4e1dbbda82d67a393ea96f75d8383bc41fcd0bba43164aeaab599e1c2c2d46d7" dependencies = [ "num-bigint", "serde", @@ -6721,6 +6737,12 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "stringcase" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04028eeb851ed08af6aba5caa29f2d59a13ed168cee4d6bd753aeefcf1d636b0" + [[package]] name = "strip-ansi-escapes" version = "0.2.0" @@ -7522,6 +7544,16 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "tokio-eld" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9166030f05d6bc5642bdb8f8c2be31eb3c02cd465d662bcdc2df82d4aa41a584" +dependencies = [ + "hdrhistogram", + "tokio", +] + [[package]] name = "tokio-macros" version = "2.2.0" diff --git a/Cargo.toml b/Cargo.toml index 9d625f082a7a23..cfe67ba6920292 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.319.0" } +deno_core = { version = "0.320.0" } deno_bench_util = { version = "0.171.0", path = "./bench_util" } deno_config = { version = "=0.39.1", features = ["workspace", "sync"] } diff --git a/ext/ffi/dlfcn.rs b/ext/ffi/dlfcn.rs index 55909468f81044..26d1b71e9f7e38 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -15,6 +15,7 @@ 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; @@ -126,14 +127,17 @@ pub struct FfiLoadArgs { #[op2] 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( @@ -215,6 +219,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/node/Cargo.toml b/ext/node/Cargo.toml index c4ee86a9574234..36910a844690c2 100644 --- a/ext/node/Cargo.toml +++ b/ext/node/Cargo.toml @@ -95,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/lib.rs b/ext/node/lib.rs index 84f39552c15205..63f5794b7d0800 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -427,6 +427,9 @@ deno_core::extension!(deno_node, ops::inspector::op_inspector_emit_protocol_event, ops::inspector::op_inspector_enabled, ], + objects = [ + ops::perf_hooks::EldHistogram + ], esm_entry_point = "ext:deno_node/02_init.js", esm = [ dir "polyfills", 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/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/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/tests/unit_node/perf_hooks_test.ts b/tests/unit_node/perf_hooks_test.ts index 8247f9fd3aa561..83d0062228ee4d 100644 --- a/tests/unit_node/perf_hooks_test.ts +++ b/tests/unit_node/perf_hooks_test.ts @@ -5,7 +5,7 @@ import { performance, PerformanceObserver, } from "node:perf_hooks"; -import { assertEquals, assertThrows } from "@std/assert"; +import { assert, assertEquals, assertThrows } from "@std/assert"; Deno.test({ name: "[perf_hooks] performance", @@ -73,11 +73,16 @@ Deno.test("[perf_hooks]: eventLoopUtilization", () => { assertEquals(typeof obj.utilization, "number"); }); -Deno.test("[perf_hooks]: monitorEventLoopDelay", () => { - const e = assertThrows(() => { - monitorEventLoopDelay({ resolution: 1 }); - }); +Deno.test("[perf_hooks]: monitorEventLoopDelay", async () => { + const e = monitorEventLoopDelay(); + assertEquals(e.count, 0); + e.enable(); - // deno-lint-ignore no-explicit-any - assertEquals((e as any).code, "ERR_NOT_IMPLEMENTED"); + await new Promise((resolve) => setTimeout(resolve, 100)); + + assert(e.min > 0); + assert(e.minBigInt > 0n); + assert(e.count > 0); + + e.disable(); }); From 661aa22c03f829489e2d9289dee0a8292a95227a Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 19 Nov 2024 07:45:09 -0500 Subject: [PATCH 54/97] feat(task): dependencies (#26467) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds support for "dependencies" in `deno task` subcommand: ```jsonc { "tasks": { "build": "deno run -RW build.ts", "generate": "deno run -RW generate.ts", "serve": { "command": "deno run -RN server.ts", "dependencies": ["build", "generate"] } } } ``` Executing `deno task serve` will first execute `build` and `generate` tasks (in parallel) and once both complete the `serve` task will be executed. Number of tasks run in parallel is equal to the no of cores on the machine, and respects `DENO_JOBS` env var if one is specified. Part of https://github.com/denoland/deno/issues/26462 --------- Co-authored-by: Bartek IwaƄczuk Co-authored-by: Marvin Hagemeister --- cli/schemas/config-file.v1.json | 7 + cli/tools/task.rs | 229 ++++++++++++++++-- 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 + 36 files changed, 506 insertions(+), 14 deletions(-) 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 diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json index 56a8090f9bb997..3ba803ef8c1a16 100644 --- a/cli/schemas/config-file.v1.json +++ b/cli/schemas/config-file.v1.json @@ -448,6 +448,13 @@ "type": "string", "required": true, "description": "The task to execute" + }, + "dependencies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Tasks that should be executed before this task" } } } diff --git a/cli/tools/task.rs b/cli/tools/task.rs index a13efbaf455964..682dbf814d384c 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -2,6 +2,7 @@ use std::collections::HashMap; use std::collections::HashSet; +use std::num::NonZeroUsize; use std::path::Path; use std::path::PathBuf; use std::rc::Rc; @@ -15,6 +16,10 @@ 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; @@ -68,6 +73,13 @@ pub async fn execute_script( let node_resolver = factory.node_resolver().await?; let env_vars = task_runner::real_env_vars(); + 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 task_runner = TaskRunner { tasks_config, task_flags: &task_flags, @@ -75,7 +87,9 @@ pub async fn execute_script( node_resolver: node_resolver.as_ref(), env_vars, cli_options, + concurrency: no_of_concurrent_tasks.into(), }; + task_runner.run_task(task_name).await } @@ -93,30 +107,156 @@ struct TaskRunner<'a> { node_resolver: &'a NodeResolver, env_vars: HashMap, cli_options: &'a CliOptions, + concurrency: usize, } impl<'a> TaskRunner<'a> { - async fn run_task( + pub async fn run_task( &self, - task_name: &String, + task_name: &str, ) -> Result { - let Some((dir_url, task_or_script)) = self.tasks_config.task(task_name) - else { - if self.task_flags.is_run { - return Err(anyhow!("Task not found: {}", task_name)); + match sort_tasks_topo(task_name, &self.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)); + } + + log::error!("Task not found: {}", name); + if log::log_enabled!(log::Level::Error) { + self.print_available_tasks()?; + } + Ok(1) + } + TaskError::TaskDepCycle { path } => { + log::error!("Task cycle detected: {}", path.join(" -> ")); + Ok(1) + } + }, + } + } + + pub fn print_available_tasks(&self) -> Result<(), std::io::Error> { + print_available_tasks( + &mut std::io::stderr(), + &self.cli_options.start_dir, + &self.tasks_config, + ) + } + + async fn run_tasks_in_parallel( + &self, + task_names: Vec, + ) -> Result { + struct PendingTasksContext { + completed: HashSet, + running: HashSet, + task_names: Vec, + } + + impl PendingTasksContext { + fn has_remaining_tasks(&self) -> bool { + self.completed.len() < self.task_names.len() } - log::error!("Task not found: {}", task_name); - if log::log_enabled!(log::Level::Error) { - print_available_tasks( - &mut std::io::stderr(), - &self.cli_options.start_dir, - &self.tasks_config, - )?; + fn mark_complete(&mut self, task_name: String) { + self.running.remove(&task_name); + self.completed.insert(task_name); } - return Ok(1); + + fn get_next_task<'a>( + &mut self, + runner: &'a TaskRunner<'a>, + ) -> Option>> { + for name in &self.task_names { + if self.completed.contains(name) || self.running.contains(name) { + continue; + } + + let should_run = if let Ok((_, def)) = runner.get_task(name) { + match def { + TaskOrScript::Task(_, def) => def + .dependencies + .iter() + .all(|dep| self.completed.contains(dep)), + TaskOrScript::Script(_, _) => true, + } + } else { + false + }; + + if !should_run { + continue; + } + + self.running.insert(name.clone()); + let name = name.clone(); + return Some( + async move { + runner + .run_task_no_dependencies(&name) + .await + .map(|exit_code| (exit_code, name)) + } + .boxed_local(), + ); + } + None + } + } + + let mut context = PendingTasksContext { + completed: HashSet::with_capacity(task_names.len()), + running: HashSet::with_capacity(self.concurrency), + task_names, + }; + + 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.task_names.len(), 0); + break; + }; + + let (exit_code, name) = result?; + if exit_code > 0 { + return Ok(exit_code); + } + + context.mark_complete(name); + } + + Ok(0) + } + + fn get_task( + &self, + task_name: &str, + ) -> Result<(&Url, TaskOrScript), TaskError> { + let Some(result) = self.tasks_config.task(task_name) else { + return Err(TaskError::NotFound(task_name.to_string())); }; + Ok(result) + } + + async fn run_task_no_dependencies( + &self, + task_name: &String, + ) -> Result { + let (dir_url, task_or_script) = self.get_task(task_name.as_str()).unwrap(); + match task_or_script { TaskOrScript::Task(_tasks, definition) => { self.run_deno_task(dir_url, task_name, definition).await @@ -234,6 +374,59 @@ impl<'a> TaskRunner<'a> { } } +#[derive(Debug)] +enum TaskError { + NotFound(String), + TaskDepCycle { path: Vec }, +} + +fn sort_tasks_topo( + name: &str, + task_config: &WorkspaceTasksConfig, +) -> Result, TaskError> { + fn sort_visit<'a>( + name: &'a str, + sorted: &mut Vec, + mut path: Vec<&'a str>, + tasks_config: &'a WorkspaceTasksConfig, + ) -> Result<(), TaskError> { + // Already sorted + if sorted.iter().any(|sorted_name| sorted_name == name) { + return Ok(()); + } + + // Graph has a cycle + if path.contains(&name) { + path.push(name); + return Err(TaskError::TaskDepCycle { + path: path.iter().map(|s| s.to_string()).collect(), + }); + } + + let Some(def) = tasks_config.task(name) else { + return Err(TaskError::NotFound(name.to_string())); + }; + + if let TaskOrScript::Task(_, actual_def) = def.1 { + for dep in &actual_def.dependencies { + let mut path = path.clone(); + path.push(name); + sort_visit(dep, sorted, path, tasks_config)? + } + } + + sorted.push(name.to_string()); + + Ok(()) + } + + let mut sorted: Vec = vec![]; + + sort_visit(name, &mut sorted, Vec::new(), task_config)?; + + Ok(sorted) +} + fn output_task(task_name: &str, script: &str) { log::info!( "{} {} {}", @@ -339,6 +532,14 @@ fn print_available_tasks( )?; } 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/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)); +} From 186b52731c6bb326c4d32905c5e732d082e83465 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 19 Nov 2024 09:57:12 -0500 Subject: [PATCH 55/97] fix(node): handle resolving ".//" in npm packages (#26920) The issue was this package had an import like: `".//index.js"` and we resolved that as specified, but node normalizes it to `"./index.js"` so we have to copy node. --- cli/module_loader.rs | 15 --------------- resolvers/node/resolution.rs | 13 ++++++++++++- .../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/specifier_two_slashes/__test__.jsonc | 4 ++++ tests/specs/npm/specifier_two_slashes/main.ts | 3 +++ 7 files changed, 30 insertions(+), 16 deletions(-) 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/specs/npm/specifier_two_slashes/__test__.jsonc create mode 100644 tests/specs/npm/specifier_two_slashes/main.ts diff --git a/cli/module_loader.rs b/cli/module_loader.rs index b9adfe642c4ac4..60de808b2d00cc 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -474,21 +474,6 @@ impl raw_specifier: &str, referrer: &ModuleSpecifier, ) -> Result { - if self.shared.in_npm_pkg_checker.in_npm_package(referrer) { - return Ok( - self - .shared - .node_resolver - .resolve( - raw_specifier, - referrer, - self.shared.cjs_tracker.get_referrer_kind(referrer), - NodeResolutionMode::Execution, - )? - .into_url(), - ); - } - let graph = self.graph_container.graph(); let resolution = match graph.get(referrer) { Some(Module::Js(module)) => module diff --git a/resolvers/node/resolution.rs b/resolvers/node/resolution.rs index 673a61abe6517a..c2ec25aca4968f 100644 --- a/resolvers/node/resolution.rs +++ b/resolvers/node/resolution.rs @@ -202,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(), @@ -1763,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/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/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)); From 628816448ea45807762fd8eb0c59302c9f2aac9a Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Tue, 19 Nov 2024 08:56:04 -0800 Subject: [PATCH 56/97] refactor: update deno_doc, use prismjs, remove internal reference html generation logic (#26885) --- .dprint.json | 2 + Cargo.lock | 226 ++++++++++++++---- cli/Cargo.toml | 4 +- cli/errors.rs | 1 + cli/module_loader.rs | 2 + cli/standalone/binary.rs | 1 + cli/tools/check.rs | 2 + cli/tools/doc.rs | 196 ++++++--------- cli/tools/doc/prism.css | 3 + cli/tools/doc/prism.js | 15 ++ cli/tools/info.rs | 4 + cli/tools/registry/mod.rs | 2 + cli/tsc/dts/lib.deno.ns.d.ts | 6 +- cli/tsc/mod.rs | 2 + .../lint_html_success/lint_success_html.out | 2 +- tools/copyright_checker.js | 2 + tools/lint.js | 2 + 17 files changed, 289 insertions(+), 183 deletions(-) create mode 100644 cli/tools/doc/prism.css create mode 100644 cli/tools/doc/prism.js 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/Cargo.lock b/Cargo.lock index 13495855c91e7b..5705acccc63d59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -128,6 +128,19 @@ 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" @@ -882,9 +895,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comrak" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c93ab3577cca16b4a1d80a88c2e0cd8b6e969e51696f0bbb0d1dcb0157109832" +checksum = "d8c32ff8b21372fab0e9ecc4e42536055702dc5faa418362bffd1544f9d12637" dependencies = [ "caseless", "derive_builder", @@ -1540,27 +1553,33 @@ dependencies = [ [[package]] name = "deno_doc" -version = "0.156.0" +version = "0.160.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2585b98d6ad76dae30bf2d7b6d71b8363cae041158b8780d14a2f4fe17590a61" +checksum = "db2baa33e5d1ed235209c2990f5fe9644bac6b9e7bcb789dd92894f907b09ad7" dependencies = [ + "ammonia", "anyhow", "cfg-if", "comrak", "deno_ast", "deno_graph", + "deno_path_util", "futures", "handlebars", "html-escape", "import_map", "indexmap 2.3.0", "itoa", + "js-sys", "lazy_static", + "percent-encoding", "regex", "serde", + "serde-wasm-bindgen", "serde_json", - "syntect", "termcolor", + "url", + "wasm-bindgen", ] [[package]] @@ -1642,9 +1661,9 @@ dependencies = [ [[package]] name = "deno_graph" -version = "0.84.1" +version = "0.85.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd4f4a14aa069087be41c2998077b0453f0191747898f96e6343f700abfc2c18" +checksum = "9d097305aba3f119781fe82b4d5a85a1ad10c586a388ee4d754e5bf82901cc5c" dependencies = [ "anyhow", "async-trait", @@ -1667,6 +1686,7 @@ dependencies = [ "thiserror", "twox-hash", "url", + "wasm_dep_analyzer", ] [[package]] @@ -3226,6 +3246,16 @@ 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" @@ -3753,6 +3783,20 @@ 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" @@ -4465,6 +4509,12 @@ 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" @@ -4487,6 +4537,26 @@ 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.15.0" @@ -4899,28 +4969,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "onig" -version = "6.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" -dependencies = [ - "bitflags 1.3.2", - "libc", - "once_cell", - "onig_sys", -] - -[[package]] -name = "onig_sys" -version = "69.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" -dependencies = [ - "cc", - "pkg-config", -] - [[package]] name = "opaque-debug" version = "0.3.1" @@ -5266,7 +5314,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ "phf_macros", - "phf_shared", + "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", ] [[package]] @@ -5275,7 +5343,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ - "phf_shared", + "phf_shared 0.11.2", "rand", ] @@ -5285,13 +5353,22 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "phf_generator", - "phf_shared", + "phf_generator 0.11.2", + "phf_shared 0.11.2", "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" @@ -5414,6 +5491,12 @@ 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" @@ -6364,6 +6447,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde-wasm-bindgen" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + [[package]] name = "serde_bytes" version = "0.11.14" @@ -6725,6 +6819,32 @@ 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" @@ -7283,26 +7403,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "syntect" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1" -dependencies = [ - "bincode", - "bitflags 1.3.2", - "flate2", - "fnv", - "once_cell", - "onig", - "regex-syntax", - "serde", - "serde_derive", - "serde_json", - "thiserror", - "walkdir", -] - [[package]] name = "tap" version = "1.0.1" @@ -7332,6 +7432,17 @@ 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" @@ -8167,6 +8278,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", +] + [[package]] name = "web-sys" version = "0.3.69" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 374f3dae5e8631..dd1d44a8ef1e1a 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -72,8 +72,8 @@ 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.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 diff --git a/cli/errors.rs b/cli/errors.rs index b1808f733908b4..cf23ccd0e0a446 100644 --- a/cli/errors.rs +++ b/cli/errors.rs @@ -71,6 +71,7 @@ fn get_module_graph_error_class(err: &ModuleGraphError) -> &'static str { | JsrLoadError::UnknownExport { .. } => "NotFound", }, }, + ModuleError::WasmParseErr(_, _) => "SyntaxError", }, } } diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 60de808b2d00cc..f985286d69bfa8 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -552,6 +552,7 @@ impl ) } None => specifier.into_owned(), + Some(Module::Wasm(_)) => todo!("@dsherret"), }; Ok(specifier) } @@ -722,6 +723,7 @@ impl | deno_graph::Module::Npm(_), ) | None => Ok(None), + Some(deno_graph::Module::Wasm(_)) => todo!("@dsherret"), } } diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index 37753bafc8659b..d18d7756412457 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -651,6 +651,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { deno_graph::Module::Npm(_) | deno_graph::Module::Node(_) | deno_graph::Module::External(_) => (None, MediaType::Unknown), + deno_graph::Module::Wasm(_) => todo!("@dsherret"), }; if module.specifier().scheme() == "file" { let file_path = deno_path_util::url_to_file_path(module.specifier())?; diff --git a/cli/tools/check.rs b/cli/tools/check.rs index d880278884457c..f7a488bb459285 100644 --- a/cli/tools/check.rs +++ b/cli/tools/check.rs @@ -383,6 +383,7 @@ fn get_check_hash( Module::External(module) => { hasher.write_str(module.specifier.as_str()); } + Module::Wasm(_) => todo!("@dsherret"), } } @@ -441,6 +442,7 @@ fn get_tsc_roots( | Module::Node(_) | Module::Npm(_) | Module::Json(_) => None, + Module::Wasm(_) => todo!("@dsherret"), } } 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/info.rs b/cli/tools/info.rs index c2f5a8cb8d560c..a417a60179c80d 100644 --- a/cli/tools/info.rs +++ b/cli/tools/info.rs @@ -447,6 +447,7 @@ impl<'a> GraphDisplayContext<'a> { Module::Js(module) => module.maybe_cache_info.as_ref(), Module::Json(module) => module.maybe_cache_info.as_ref(), Module::Node(_) | Module::Npm(_) | Module::External(_) => None, + Module::Wasm(_) => todo!("@dsherret"), }; if let Some(cache_info) = maybe_cache_info { if let Some(local) = &cache_info.local { @@ -469,6 +470,7 @@ impl<'a> GraphDisplayContext<'a> { Module::Js(module) => module.size(), Module::Json(module) => module.size(), Module::Node(_) | Module::Npm(_) | Module::External(_) => 0, + Module::Wasm(_) => todo!("@dsherret"), }; size as f64 }) @@ -568,6 +570,7 @@ impl<'a> GraphDisplayContext<'a> { Module::Js(module) => Some(module.size() as u64), Module::Json(module) => Some(module.size() as u64), Module::Node(_) | Module::Npm(_) | Module::External(_) => None, + Module::Wasm(_) => todo!("@dsherret"), }, }; format!("{} {}", header_text, maybe_size_to_text(maybe_size)) @@ -670,6 +673,7 @@ impl<'a> GraphDisplayContext<'a> { ModuleError::Missing(_, _) | ModuleError::MissingDynamic(_, _) => { self.build_error_msg(specifier, "(missing)") } + ModuleError::WasmParseErr(_, _) => todo!("@dsherret"), } } diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index 12289c581b1372..35317e12da4674 100644 --- a/cli/tools/registry/mod.rs +++ b/cli/tools/registry/mod.rs @@ -26,6 +26,7 @@ use deno_core::serde_json; use deno_core::serde_json::json; use deno_core::serde_json::Value; use deno_core::url::Url; +use deno_graph::Module; use deno_terminal::colors; use http_body_util::BodyExt; use serde::Deserialize; @@ -1113,6 +1114,7 @@ fn collect_excluded_module_diagnostics( deno_graph::Module::Npm(_) | deno_graph::Module::Node(_) | deno_graph::Module::External(_) => None, + Module::Wasm(_) => todo!("@dsherret"), }) .filter(|s| s.as_str().starts_with(root.as_str())); for specifier in graph_specifiers { diff --git a/cli/tsc/dts/lib.deno.ns.d.ts b/cli/tsc/dts/lib.deno.ns.d.ts index 8179e4223c264e..d9f66f11a7802d 100644 --- a/cli/tsc/dts/lib.deno.ns.d.ts +++ b/cli/tsc/dts/lib.deno.ns.d.ts @@ -4535,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 @@ -4549,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 @@ -4597,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/mod.rs b/cli/tsc/mod.rs index 8f8bed20a4cb2c..c9f726ca28105c 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -664,6 +664,7 @@ fn op_load_inner( &mut is_cjs, )?)) } + Module::Wasm(_) => todo!("@dsherret"), } } else if let Some(npm) = state .maybe_npm @@ -928,6 +929,7 @@ fn resolve_graph_specifier_types( })) } Some(Module::Node(_)) | None => Ok(None), + Some(Module::Wasm(_)) => todo!("@dsherret"), } } 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/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/lint.js b/tools/lint.js index 604dee9b308989..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", From c55e936be03a3a023330789f903e2fbd12f4a308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Baptista?= <15786310+M4RC3L05@users.noreply.github.com> Date: Tue, 19 Nov 2024 21:01:16 +0000 Subject: [PATCH 57/97] feat(fmt): support SQL (#26750) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds support for .sql files in "deno fmt" subcommand. Closes: https://github.com/denoland/deno/issues/25024 --------- Signed-off-by: m4rc3l05 <15786310+M4RC3L05@users.noreply.github.com> Co-authored-by: Bartek IwaƄczuk --- Cargo.lock | 12 ++++ cli/Cargo.toml | 2 + cli/args/flags.rs | 27 ++++++++- cli/args/mod.rs | 4 ++ cli/lsp/language_server.rs | 3 + cli/schemas/config-file.v1.json | 1 + cli/tools/fmt.rs | 64 +++++++++++++++++++- tests/integration/fmt_tests.rs | 18 +++++- tests/specs/fmt/sql/__test__.jsonc | 25 ++++++++ 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/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 +++++++ 20 files changed, 247 insertions(+), 5 deletions(-) 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/testdata/fmt/badly_formatted.sql create mode 100644 tests/testdata/fmt/badly_formatted_fixed.sql diff --git a/Cargo.lock b/Cargo.lock index 5705acccc63d59..1a16714bba7dd6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1291,6 +1291,7 @@ dependencies = [ "sha2", "shell-escape", "spki", + "sqlformat", "strsim", "tar", "tempfile", @@ -6794,6 +6795,17 @@ dependencies = [ "der", ] +[[package]] +name = "sqlformat" +version = "0.3.1" +source = "git+https://github.com/shssoichiro/sqlformat-rs.git?rev=827d639#827d639bef94d8e5a5a0e29b41185c8d572f24e6" +dependencies = [ + "nom 7.1.3", + "once_cell", + "regex", + "unicode_categories", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index dd1d44a8ef1e1a..16f39e9d481dbf 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -151,6 +151,8 @@ serde_repr.workspace = true sha2.workspace = true shell-escape = "=0.1.5" spki = { version = "0.7", features = ["pem"] } +# NOTE(bartlomieju): for now using github URL, because 0.3.2 with important fixes hasn't been released yet. +sqlformat = { git = "https://github.com/shssoichiro/sqlformat-rs.git", rev = "827d639" } strsim = "0.11.1" tar.workspace = true tempfile.workspace = true diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 39db12b5f1b855..262bc04682ec5d 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -210,6 +210,7 @@ pub struct FmtFlags { pub no_semicolons: Option, pub watch: Option, pub unstable_component: bool, + pub unstable_sql: bool, } impl FmtFlags { @@ -2291,7 +2292,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"), ) @@ -2410,6 +2411,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), + ) }) } @@ -4634,6 +4643,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"), @@ -4646,6 +4656,7 @@ fn fmt_parse( no_semicolons, watch: watch_arg_parse(matches)?, unstable_component, + unstable_sql, }); Ok(()) } @@ -6565,6 +6576,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6588,6 +6600,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6611,6 +6624,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6634,6 +6648,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Some(Default::default()), }), ..Flags::default() @@ -6648,7 +6663,8 @@ mod tests { "--unstable-css", "--unstable-html", "--unstable-component", - "--unstable-yaml" + "--unstable-yaml", + "--unstable-sql" ]); assert_eq!( r.unwrap(), @@ -6666,6 +6682,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: true, + unstable_sql: true, watch: Some(WatchFlags { hmr: false, no_clear_screen: true, @@ -6700,6 +6717,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Some(Default::default()), }), ..Flags::default() @@ -6723,6 +6741,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()), @@ -6754,6 +6773,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()), @@ -6790,6 +6810,7 @@ mod tests { prose_wrap: Some("never".to_string()), no_semicolons: Some(true), unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6820,6 +6841,7 @@ mod tests { prose_wrap: None, no_semicolons: Some(false), unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ..Flags::default() @@ -6845,6 +6867,7 @@ mod tests { prose_wrap: None, no_semicolons: None, unstable_component: false, + unstable_sql: false, watch: Default::default(), }), ext: Some("html".to_string()), diff --git a/cli/args/mod.rs b/cli/args/mod.rs index ec75d7a100b157..61e1443a75eff7 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -289,6 +289,7 @@ impl BenchOptions { #[derive(Clone, Debug, Default, PartialEq, Eq, Hash)] pub struct UnstableFmtOptions { pub component: bool, + pub sql: bool, } #[derive(Clone, Debug)] @@ -322,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, } @@ -1319,6 +1321,7 @@ impl CliOptions { let workspace = self.workspace(); UnstableFmtOptions { component: workspace.has_unstable("fmt-component"), + sql: workspace.has_unstable("fmt-sql"), } } @@ -1667,6 +1670,7 @@ impl CliOptions { "byonm", "bare-node-builtins", "fmt-component", + "fmt-sql", ]) .collect(); diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 2ce26c1f2e4100..cbe194e14e6950 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -1405,6 +1405,9 @@ impl Inner { 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 || { diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json index 3ba803ef8c1a16..ccd773efbfdfd9 100644 --- a/cli/schemas/config-file.v1.json +++ b/cli/schemas/config-file.v1.json @@ -557,6 +557,7 @@ "ffi", "fs", "fmt-component", + "fmt-sql", "http", "kv", "net", diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index d40abd5f50f55c..9c2c7091294125 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -272,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. @@ -301,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); @@ -503,7 +511,48 @@ 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(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, @@ -538,6 +587,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( @@ -1209,6 +1265,7 @@ fn is_supported_ext_fmt(path: &Path) -> bool { | "yml" | "yaml" | "ipynb" + | "sql" ) }) } @@ -1269,6 +1326,11 @@ 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] 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/specs/fmt/sql/__test__.jsonc b/tests/specs/fmt/sql/__test__.jsonc new file mode 100644 index 00000000000000..a335e79c24d971 --- /dev/null +++ b/tests/specs/fmt/sql/__test__.jsonc @@ -0,0 +1,25 @@ +{ + "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]well_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]well_formatted.sql\n[WILDLINE]wrong_file_ignore.sql\n[UNORDERED_END]\nChecked 8 files\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/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'); From 46b6037644c761369e689704f8e7b857959da155 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 19 Nov 2024 16:19:35 -0500 Subject: [PATCH 58/97] feat(compile): ability to embed local data files (#26934) ``` > deno compile --allow-read=. --include data-file.txt main.js ``` This only applies to files on the filesystem. For remote modules, that's going to have to wait for `import ... from "./data.txt" with { "type": "bytes" }` or whatever it will be. --- cli/args/flags.rs | 6 +- cli/factory.rs | 1 + cli/standalone/binary.rs | 168 ++++++++++-------- cli/standalone/virtual_fs.rs | 3 +- cli/tools/compile.rs | 80 +++++++-- .../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 + 10 files changed, 213 insertions(+), 95 deletions(-) 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 diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 262bc04682ec5d..85b8abefe1b0da 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -1909,10 +1909,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 local data file 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 in the executable. This flag can + be passed multiple times, to include multiple additional modules.", )) .action(ArgAction::Append) .value_hint(ValueHint::FilePath) diff --git a/cli/factory.rs b/cli/factory.rs index 7949a83a55bc6a..98149982f04edf 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -884,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()?, diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index d18d7756412457..81539931376a7d 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -201,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") { @@ -364,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, @@ -377,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, @@ -387,6 +390,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { ) -> Self { Self { cjs_tracker, + cli_options, deno_dir, emitter, file_fetcher, @@ -403,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?; @@ -417,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(); @@ -435,7 +440,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { graph, root_dir_url, entrypoint, - cli_options, + include_files, compile_flags, ) .await @@ -478,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", @@ -490,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) } @@ -518,15 +527,19 @@ impl<'a> DenoCompileBinaryWriter<'a> { let bytes = match maybe_bytes { Some(bytes) => bytes, None => { - log::info!("Download could not be found, aborting"); - deno_runtime::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(()) } @@ -540,73 +553,79 @@ 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)?; + 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 cli_options.code_cache_enabled() { + let mut code_cache_key_hasher = if self.cli_options.code_cache_enabled() { Some(FastInsecureHasher::new_deno_versioned()) } else { None @@ -672,7 +691,7 @@ impl<'a> DenoCompileBinaryWriter<'a> { } remote_modules_store.add_redirects(&graph.redirects); - let env_vars_from_env_file = match cli_options.env_file_name() { + 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() { @@ -688,16 +707,17 @@ impl<'a> DenoCompileBinaryWriter<'a> { let metadata = Metadata { argv: compile_flags.args.clone(), - seed: cli_options.seed(), + seed: self.cli_options.seed(), code_cache_key: code_cache_key_hasher.map(|h| h.finish()), - 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 + 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(), @@ -740,11 +760,11 @@ impl<'a> DenoCompileBinaryWriter<'a> { node_modules, unstable_config: UnstableConfig { legacy_flag_enabled: false, - bare_node_builtins: cli_options.unstable_bare_node_builtins(), - 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: cli_options.otel_config(), + otel_config: self.cli_options.otel_config(), }; write_binary_bytes( @@ -756,13 +776,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")); @@ -839,13 +856,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/virtual_fs.rs b/cli/standalone/virtual_fs.rs index 26bb0db75f1d8d..d1084f016c9608 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 { 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/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 From 6b478cd0a3fdff15d5d9d8849a3019652b919921 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 19 Nov 2024 18:20:14 -0500 Subject: [PATCH 59/97] feat(compile): ability to embed directory in executable (#26939) --- cli/args/flags.rs | 6 ++--- cli/standalone/binary.rs | 14 ++++++++--- .../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 ++ 7 files changed, 50 insertions(+), 6 deletions(-) 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 diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 85b8abefe1b0da..f40d5aed4116ae 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -1909,10 +1909,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 or local data file in the compiled executable. + 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 or to embed a file 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) diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index 81539931376a7d..39e508dc3b9520 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -620,9 +620,17 @@ impl<'a> DenoCompileBinaryWriter<'a> { }; for include_file in include_files { let path = deno_path_util::url_to_file_path(include_file)?; - vfs - .add_file_at_path(&path) - .with_context(|| format!("Including {}", path.display()))?; + 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() { 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 From 8be2bbf074c7b32647a56d97f1c340fcab52c4aa Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 19 Nov 2024 18:59:23 -0500 Subject: [PATCH 60/97] feat: Wasm module support (#26668) Support for Wasm modules. Note this implements the standard where the default export is the instance (not the module). The module will come later with source phase imports. ```ts import { add } from "./math.wasm"; console.log(add(1, 2)); ``` --- Cargo.lock | 14 ++--- Cargo.toml | 2 +- cli/args/mod.rs | 4 ++ cli/errors.rs | 2 +- cli/lsp/documents.rs | 38 +++++++++++-- cli/lsp/tsc.rs | 2 +- cli/module_loader.rs | 16 ++++-- cli/standalone/binary.rs | 4 +- cli/tools/check.rs | 8 ++- cli/tools/info.rs | 24 ++++++--- cli/tools/registry/mod.rs | 8 ++- cli/tsc/99_main_compiler.js | 6 +++ cli/tsc/mod.rs | 11 ++-- ext/node/polyfills/01_require.js | 10 ++-- runtime/worker.rs | 2 +- tests/integration/lsp_tests.rs | 50 ++++++++++++++++-- tests/specs/check/wasm/__test__.jsonc | 5 ++ tests/specs/check/wasm/check.out | 6 +++ tests/specs/check/wasm/main.ts | 3 ++ tests/specs/doc/wasm/__test__.jsonc | 4 ++ tests/specs/doc/wasm/doc.out | 21 ++++++++ tests/specs/info/wasm_module/__test__.jsonc | 4 ++ tests/specs/info/wasm_module/main.js | 7 +++ tests/specs/info/wasm_module/main.out | 10 ++++ .../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 ++ 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 tests/util/server/src/lib.rs | 5 ++ 60 files changed, 401 insertions(+), 46 deletions(-) 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/doc/wasm/__test__.jsonc create mode 100644 tests/specs/doc/wasm/doc.out 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/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/testdata/wasm/math.ts create mode 100644 tests/testdata/wasm/math.wasm create mode 100644 tests/testdata/wasm/math_with_import.wasm diff --git a/Cargo.lock b/Cargo.lock index 1a16714bba7dd6..52bb39ee8309de 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1466,9 +1466,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.320.0" +version = "0.321.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f285eed7b072749f9c3a9c4cf2c9ebb06462a2c22afec94892a6684c38f32696" +checksum = "cd2a54cda74cdc187d5fc2d23370a45cf09f912caf566dd1cd24a50157d809c7" dependencies = [ "anyhow", "bincode", @@ -1480,6 +1480,7 @@ dependencies = [ "deno_ops", "deno_unsync", "futures", + "indexmap 2.3.0", "libc", "memoffset", "parking_lot", @@ -1494,6 +1495,7 @@ dependencies = [ "tokio", "url", "v8", + "wasm_dep_analyzer", ] [[package]] @@ -1981,9 +1983,9 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.196.0" +version = "0.197.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d35c75ae05062f37ec2ae5fd1d99b2dcdfa0aef70844d3706759b8775056c5f6" +checksum = "37a8825d92301cf445727c43f17fee2a20fcdf4370004339965156ae7c56c97e" dependencies = [ "proc-macro-rules", "proc-macro2", @@ -6517,9 +6519,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.229.0" +version = "0.230.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1dbbda82d67a393ea96f75d8383bc41fcd0bba43164aeaab599e1c2c2d46d7" +checksum = "b5a783242d2af51d6955cc04bf2b64adb643ab588b61e9573c908a69dabf8c2f" dependencies = [ "num-bigint", "serde", diff --git a/Cargo.toml b/Cargo.toml index cfe67ba6920292..cf7e2610bbf774 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.320.0" } +deno_core = { version = "0.321.0" } deno_bench_util = { version = "0.171.0", path = "./bench_util" } deno_config = { version = "=0.39.1", features = ["workspace", "sync"] } diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 61e1443a75eff7..21df6cf115ae8a 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1548,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(); diff --git a/cli/errors.rs b/cli/errors.rs index cf23ccd0e0a446..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(_, _) => { @@ -71,7 +72,6 @@ fn get_module_graph_error_class(err: &ModuleGraphError) -> &'static str { | JsrLoadError::UnknownExport { .. } => "NotFound", }, }, - ModuleError::WasmParseErr(_, _) => "SyntaxError", }, } } diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index b01544ddf98785..cdc25f3ac32656 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -883,8 +883,13 @@ 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(), @@ -923,19 +928,24 @@ 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(), @@ -1706,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/tsc.rs b/cli/lsp/tsc.rs index fc7ff57948abcc..c221a6097b92cd 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -5609,7 +5609,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/module_loader.rs b/cli/module_loader.rs index f985286d69bfa8..035ae4264b173c 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -66,6 +66,7 @@ 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; @@ -368,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 @@ -378,6 +381,7 @@ impl }; let module_type = match code_source.media_type { MediaType::Json => ModuleType::Json, + MediaType::Wasm => ModuleType::Wasm, _ => ModuleType::JavaScript, }; @@ -545,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, @@ -552,7 +557,6 @@ impl ) } None => specifier.into_owned(), - Some(Module::Wasm(_)) => todo!("@dsherret"), }; Ok(specifier) } @@ -717,13 +721,19 @@ 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(_) | deno_graph::Module::Npm(_), ) | None => Ok(None), - Some(deno_graph::Module::Wasm(_)) => todo!("@dsherret"), } } diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index 39e508dc3b9520..e35119e0aa7dfa 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -675,10 +675,12 @@ 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), - deno_graph::Module::Wasm(_) => todo!("@dsherret"), }; if module.specifier().scheme() == "file" { let file_path = deno_path_util::url_to_file_path(module.specifier())?; diff --git a/cli/tools/check.rs b/cli/tools/check.rs index f7a488bb459285..ad5c7c3ab17726 100644 --- a/cli/tools/check.rs +++ b/cli/tools/check.rs @@ -380,10 +380,14 @@ 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()); } - Module::Wasm(_) => todo!("@dsherret"), } } @@ -438,11 +442,11 @@ fn get_tsc_roots( | MediaType::SourceMap | MediaType::Unknown => None, }, + Module::Wasm(module) => Some((module.specifier.clone(), MediaType::Dmts)), Module::External(_) | Module::Node(_) | Module::Npm(_) | Module::Json(_) => None, - Module::Wasm(_) => todo!("@dsherret"), } } diff --git a/cli/tools/info.rs b/cli/tools/info.rs index a417a60179c80d..6cddf9699518ae 100644 --- a/cli/tools/info.rs +++ b/cli/tools/info.rs @@ -446,8 +446,8 @@ 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, - Module::Wasm(_) => todo!("@dsherret"), }; if let Some(cache_info) = maybe_cache_info { if let Some(local) = &cache_info.local { @@ -469,8 +469,8 @@ 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, - Module::Wasm(_) => todo!("@dsherret"), }; size as f64 }) @@ -569,8 +569,8 @@ 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, - Module::Wasm(_) => todo!("@dsherret"), }, }; format!("{} {}", header_text, maybe_size_to_text(maybe_size)) @@ -583,8 +583,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) @@ -596,7 +596,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 @@ -661,7 +670,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 { .. } => { @@ -673,7 +682,6 @@ impl<'a> GraphDisplayContext<'a> { ModuleError::Missing(_, _) | ModuleError::MissingDynamic(_, _) => { self.build_error_msg(specifier, "(missing)") } - ModuleError::WasmParseErr(_, _) => todo!("@dsherret"), } } diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index 35317e12da4674..dec3c1afeba4bf 100644 --- a/cli/tools/registry/mod.rs +++ b/cli/tools/registry/mod.rs @@ -26,7 +26,6 @@ use deno_core::serde_json; use deno_core::serde_json::json; use deno_core::serde_json::Value; use deno_core::url::Url; -use deno_graph::Module; use deno_terminal::colors; use http_body_util::BodyExt; use serde::Deserialize; @@ -1108,13 +1107,12 @@ 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, - Module::Wasm(_) => todo!("@dsherret"), }) .filter(|s| s.as_str().starts_with(root.as_str())); for specifier in graph_specifiers { diff --git a/cli/tsc/99_main_compiler.js b/cli/tsc/99_main_compiler.js index 68d099253a5f4e..93b9e92d899d76 100644 --- a/cli/tsc/99_main_compiler.js +++ b/cli/tsc/99_main_compiler.js @@ -450,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. diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index c9f726ca28105c..976d407c150b4e 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -650,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 @@ -664,7 +668,6 @@ fn op_load_inner( &mut is_cjs, )?)) } - Module::Wasm(_) => todo!("@dsherret"), } } else if let Some(npm) = state .maybe_npm @@ -890,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 @@ -929,7 +935,6 @@ fn resolve_graph_specifier_types( })) } Some(Module::Node(_)) | None => Ok(None), - Some(Module::Wasm(_)) => todo!("@dsherret"), } } @@ -1198,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/ext/node/polyfills/01_require.js b/ext/node/polyfills/01_require.js index 083d4e49bef08c..db032014c2d07b 100644 --- a/ext/node/polyfills/01_require.js +++ b/ext/node/polyfills/01_require.js @@ -1086,12 +1086,10 @@ function loadESMFromCJS(module, filename, code) { module.exports = namespace; } -Module._extensions[".mjs"] = Module._extensions[".mts"] = function ( - module, - filename, -) { - loadESMFromCJS(module, filename); -}; +Module._extensions[".mjs"] = + Module._extensions[".mts"] = + Module._extensions[".wasm"] = + loadESMFromCJS; function stripBOM(content) { if (StringPrototypeCharCodeAt(content, 0) === 0xfeff) { diff --git a/runtime/worker.rs b/runtime/worker.rs index 909147df9ba1c2..97cbb6428f0e87 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -78,7 +78,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 diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs index 8eaccb54877546..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!([{ @@ -16516,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/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/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/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/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/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/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))); From 9956731ddb09a478504632175e8db4aacbd1e6db Mon Sep 17 00:00:00 2001 From: Cornelius Krassow <58032399+ckrassow@users.noreply.github.com> Date: Wed, 20 Nov 2024 01:00:47 +0100 Subject: [PATCH 61/97] feat(publish): add `--set-version ` flag (#26141) --- cli/args/flags.rs | 54 ++++++++++++------- cli/tools/registry/mod.rs | 33 ++++++++---- .../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 +++ 16 files changed, 127 insertions(+), 27 deletions(-) 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 diff --git a/cli/args/flags.rs b/cli/args/flags.rs index f40d5aed4116ae..b31bfcecf7cb8d 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -428,6 +428,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)] @@ -1391,7 +1392,7 @@ pub fn flags_from_vec(args: Vec) -> clap::error::Result { "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 { @@ -3225,12 +3226,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( @@ -3238,29 +3239,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()) }) @@ -5229,7 +5239,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); @@ -5242,7 +5255,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( @@ -10769,6 +10785,7 @@ mod tests { "--allow-slow-types", "--allow-dirty", "--token=asdf", + "--set-version=1.0.1", ]); assert_eq!( r.unwrap(), @@ -10779,6 +10796,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() diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index dec3c1afeba4bf..f121c4623c13dd 100644 --- a/cli/tools/registry/mod.rs +++ b/cli/tools/registry/mod.rs @@ -90,7 +90,7 @@ 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) => { @@ -108,6 +108,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( @@ -410,9 +422,12 @@ impl PublishPreparer { 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); - }; + let version = deno_json.json.version.clone().ok_or_else(|| { + deno_core::anyhow::anyhow!( + "{} is missing 'version' field", + deno_json.specifier + ) + })?; if deno_json.json.exports.is_none() { let mut suggested_entrypoint = None; @@ -435,11 +450,11 @@ impl PublishPreparer { ); 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 - ); + "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 Some(name_no_at) = package.name.strip_prefix('@') else { bail!("Invalid package name, use '@/ format"); 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 From fadda6a8fb00602e85b7aa415747c56815d1efac Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 19 Nov 2024 19:49:19 -0500 Subject: [PATCH 62/97] fix(lockfile): track dependencies specified in TypeScript compiler options (#26551) We should track dependencies in `jsxImportSource`, `jsxImportSourceTypes`, and `types`. That way, for example, if someone removes or changes the `jsxImportSource` then we can remove those items from the lockfile. --- cli/args/deno_json.rs | 52 +++++++++++++++++-- cli/args/lockfile.rs | 6 +-- .../__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 + 7 files changed, 109 insertions(+), 10 deletions(-) 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 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/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/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); From 429f3929fae7446d720e21f94f8d7da251458bf3 Mon Sep 17 00:00:00 2001 From: haturau <135221985+haturatu@users.noreply.github.com> Date: Wed, 20 Nov 2024 10:04:48 +0900 Subject: [PATCH 63/97] feat(info): show location for Web Cache (#26205) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #26181 --------- Co-authored-by: Bartek IwaƄczuk --- cli/tools/info.rs | 7 +++++++ cli/worker.rs | 17 +++++++++-------- 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 ++- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/cli/tools/info.rs b/cli/tools/info.rs index 6cddf9699518ae..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!( "{} {}", diff --git a/cli/worker.rs b/cli/worker.rs index 3b09714d59fb3e..0b07bb4bf3d9fe 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -393,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, @@ -529,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 @@ -729,10 +733,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 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" } From dabb6775f351a163d3e55e15fef957db8aa28b72 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 19 Nov 2024 20:14:49 -0500 Subject: [PATCH 64/97] fix(publish): improve error message when missing exports (#26945) --- cli/tools/registry/mod.rs | 65 ++++++++++--------- 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 +++ 6 files changed, 56 insertions(+), 32 deletions(-) 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 diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index f121c4623c13dd..89447f04f9d5fa 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; @@ -95,8 +96,9 @@ pub async fn publish( 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 ); } @@ -416,9 +418,6 @@ 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(); @@ -428,34 +427,6 @@ impl PublishPreparer { 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 Some(name_no_at) = package.name.strip_prefix('@') else { bail!("Invalid package name, use '@/ format"); }; @@ -1287,6 +1258,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/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" +} From 318dd3cbc36f3acc9fcc2eb246c9093a565a2556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 20 Nov 2024 01:23:20 +0000 Subject: [PATCH 65/97] feat(task): add --eval flag (#26943) This commit adds `--eval` flag to `deno task` subcommand. This flag allows to evaluate provided "task name" as a task itself, effectively allowing to use `deno_task_shell` from the command line. Also fixes shebang parsing for `node_modules/.bin/` entries to handle `#!/usr/bin/node -S node` in addition to `#!/usr/bin/node node`. Closes https://github.com/denoland/deno/issues/26918 --- cli/args/flags.rs | 57 ++++++++++++++++++++++++++-- cli/main.rs | 1 + cli/task_runner.rs | 48 ++++++++++++++++------- cli/tools/task.rs | 15 +++++++- 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 ++ 10 files changed, 160 insertions(+), 17 deletions(-) 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 diff --git a/cli/args/flags.rs b/cli/args/flags.rs index b31bfcecf7cb8d..5d85f2861cd9e8 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -380,6 +380,7 @@ pub struct TaskFlags { pub cwd: Option, pub task: Option, pub is_run: bool, + pub eval: bool, } #[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] @@ -1386,7 +1387,7 @@ pub fn flags_from_vec(args: Vec) -> clap::error::Result { "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), @@ -2931,7 +2932,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, ) @@ -2947,6 +2951,13 @@ List all available tasks: .help("Specify the directory to run the task in") .value_hint(ValueHint::DirPath), ) + .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()) }) } @@ -5066,7 +5077,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) @@ -5079,6 +5094,7 @@ fn task_parse(flags: &mut Flags, matches: &mut ArgMatches) { cwd: matches.remove_one::("cwd"), task: None, is_run: false, + eval: matches.get_flag("eval"), }; if let Some((task, mut matches)) = matches.remove_subcommand() { @@ -5091,9 +5107,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 { @@ -10274,6 +10296,7 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + eval: false, }), argv: svec!["hello", "world"], ..Flags::default() @@ -10288,6 +10311,7 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + eval: false, }), ..Flags::default() } @@ -10301,10 +10325,28 @@ mod tests { cwd: Some("foo".to_string()), task: Some("build".to_string()), is_run: false, + 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, + eval: true, + }), + ..Flags::default() + } + ); + + let r = flags_from_vec(svec!["deno", "task", "--eval"]); + assert!(r.is_err()); } #[test] @@ -10326,6 +10368,7 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + eval: false, }), argv: svec!["--", "hello", "world"], config_flag: ConfigFlag::Path("deno.json".to_owned()), @@ -10343,6 +10386,7 @@ mod tests { cwd: Some("foo".to_string()), task: Some("build".to_string()), is_run: false, + eval: false, }), argv: svec!["--", "hello", "world"], ..Flags::default() @@ -10361,6 +10405,7 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + eval: false, }), argv: svec!["--"], ..Flags::default() @@ -10378,6 +10423,7 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + eval: false, }), argv: svec!["-1", "--test"], ..Flags::default() @@ -10395,6 +10441,7 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + eval: false, }), argv: svec!["--test"], ..Flags::default() @@ -10413,6 +10460,7 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + eval: false, }), log_level: Some(log::Level::Error), ..Flags::default() @@ -10430,6 +10478,7 @@ mod tests { cwd: None, task: None, is_run: false, + eval: false, }), ..Flags::default() } @@ -10446,6 +10495,7 @@ mod tests { cwd: None, task: None, is_run: false, + eval: false, }), config_flag: ConfigFlag::Path("deno.jsonc".to_string()), ..Flags::default() @@ -10463,6 +10513,7 @@ mod tests { cwd: None, task: None, is_run: false, + eval: false, }), config_flag: ConfigFlag::Path("deno.jsonc".to_string()), ..Flags::default() diff --git a/cli/main.rs b/cli/main.rs index 7d3ef0e6a0563a..3dd2692f053739 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -238,6 +238,7 @@ async fn run_subcommand(flags: Arc) -> Result { cwd: None, task: Some(run_flags.script.clone()), is_run: true, + eval: false, }; new_flags.subcommand = DenoSubcommand::Task(task_flags.clone()); let result = tools::task::execute_script(Arc::new(new_flags), task_flags.clone()).await; 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/task.rs b/cli/tools/task.rs index 682dbf814d384c..85145c7af78eff 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -42,7 +42,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 = @@ -90,6 +90,19 @@ pub async fn execute_script( concurrency: no_of_concurrent_tasks.into(), }; + if task_flags.eval { + return task_runner + .run_deno_task( + &Url::from_directory_path(cli_options.initial_cwd()).unwrap(), + &"".to_string(), + &TaskDefinition { + command: task_flags.task.as_ref().unwrap().to_string(), + dependencies: vec![], + description: None, + }, + ) + .await; + } task_runner.run_task(task_name).await } 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 ] From 03f47e6cf05cb1237bc13733a0c13496f84064b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 20 Nov 2024 18:01:56 +0000 Subject: [PATCH 66/97] fix(fmt): formatting of .svelte files (#26948) Closes https://github.com/denoland/deno/issues/26690 Closes https://github.com/denoland/deno/issues/26324 --- Cargo.lock | 4 ++-- cli/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 52bb39ee8309de..bc386c9571267c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4562,9 +4562,9 @@ dependencies = [ [[package]] name = "markup_fmt" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebae65c91eab3d42231232bf48107f351e5a8d511454927218c53aeb68bbdb6f" +checksum = "f303c36143671ac6c54112eb5aa95649b169dae783fdb6ead2c0e88b408c425c" dependencies = [ "aho-corasick", "css_dataset", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 16f39e9d481dbf..ae573827b1c229 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -129,7 +129,7 @@ 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 From 8f7279862249d8274dbef2cf5f48d13f0c0ab53a Mon Sep 17 00:00:00 2001 From: Keith Tan Date: Wed, 20 Nov 2024 20:59:43 +0100 Subject: [PATCH 67/97] feat(lint): Add checked files list to the JSON output(#26936) Fixes #26930 --- cli/tools/lint/reporters.rs | 18 ++++++++++++++++++ tests/specs/lint/json/expected_json.out | 5 +++++ .../stdin_json/expected_from_stdin_json.out | 5 ++++- .../with_report_config_override.out | 5 ++++- 4 files changed, 31 insertions(+), 2 deletions(-) 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/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/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" + ] } From cf49599359d480b0716b34a8f0a27f37e2f51e48 Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Wed, 20 Nov 2024 13:24:04 -0800 Subject: [PATCH 68/97] feat: permission stack traces in ops (#26938) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit improves permission prompts by adding an option to print a full trace of where the permissions is being requested. Due to big performance hint of stack trace collection, this is only enabled when `DENO_TRACE_PERMISSIONS` env var is present. Closes https://github.com/denoland/deno/issues/20756 --------- Co-authored-by: Bartek IwaƄczuk --- cli/args/flags.rs | 41 ++++++------ cli/args/mod.rs | 4 ++ cli/ops/bench.rs | 2 +- cli/ops/testing.rs | 2 +- cli/worker.rs | 4 ++ ext/fetch/lib.rs | 4 +- ext/ffi/call.rs | 4 +- ext/ffi/callback.rs | 2 +- ext/ffi/dlfcn.rs | 2 +- ext/ffi/repr.rs | 42 ++++++------ ext/fs/ops.rs | 88 ++++++++++++------------- ext/kv/lib.rs | 2 +- ext/napi/lib.rs | 2 +- ext/net/ops.rs | 12 ++-- ext/net/ops_tls.rs | 6 +- ext/net/ops_unix.rs | 12 ++-- ext/node/ops/fs.rs | 18 ++--- ext/node/ops/http.rs | 2 +- ext/node/ops/inspector.rs | 4 +- ext/node/ops/os/mod.rs | 14 ++-- ext/node/ops/process.rs | 2 +- ext/node/ops/require.rs | 18 ++--- ext/node/ops/worker_threads.rs | 2 +- ext/websocket/lib.rs | 4 +- runtime/ops/fs_events.rs | 2 +- runtime/ops/os/mod.rs | 30 ++++----- runtime/ops/permissions.rs | 2 +- runtime/ops/process.rs | 8 +-- runtime/ops/worker_host.rs | 2 +- runtime/permissions/prompter.rs | 62 ++++++++++++----- runtime/web_worker.rs | 8 +++ runtime/worker.rs | 7 ++ tests/integration/run_tests.rs | 52 ++++++++++++++- tests/testdata/run/permissions_trace.ts | 9 +++ 34 files changed, 294 insertions(+), 181 deletions(-) create mode 100644 tests/testdata/run/permissions_trace.ts diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 5d85f2861cd9e8..567d4adfb9b82c 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -1160,25 +1160,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!( @@ -3346,6 +3347,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( { diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 21df6cf115ae8a..bbdfa478c13912 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1912,6 +1912,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")) 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/worker.rs b/cli/worker.rs index 0b07bb4bf3d9fe..5761571c5c0e56 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -617,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( @@ -813,6 +815,8 @@ 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) diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index c8e93b9feaf3b4..303c9556223776 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -397,7 +397,7 @@ impl FetchPermissions for deno_permissions::PermissionsContainer { } } -#[op2] +#[op2(stack_trace)] #[serde] #[allow(clippy::too_many_arguments)] pub fn op_fetch( @@ -866,7 +866,7 @@ fn default_true() -> bool { true } -#[op2] +#[op2(stack_trace)] #[smi] pub fn op_fetch_custom_client( state: &mut OpState, diff --git a/ext/ffi/call.rs b/ext/ffi/call.rs index bbff0ee48f462d..c964071a09f538 100644 --- a/ext/ffi/call.rs +++ b/ext/ffi/call.rs @@ -287,7 +287,7 @@ fn ffi_call( } } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub fn op_ffi_call_ptr_nonblocking( scope: &mut v8::HandleScope, @@ -385,7 +385,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 29583c800cd36d..eff14503d1d19b 100644 --- a/ext/ffi/callback.rs +++ b/ext/ffi/callback.rs @@ -561,7 +561,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 26d1b71e9f7e38..e1bb121d8c39b6 100644 --- a/ext/ffi/dlfcn.rs +++ b/ext/ffi/dlfcn.rs @@ -124,7 +124,7 @@ pub struct FfiLoadArgs { symbols: HashMap, } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_load<'scope, FP>( scope: &mut v8::HandleScope<'scope>, state: Rc>, diff --git a/ext/ffi/repr.rs b/ext/ffi/repr.rs index fd8a2c8e707336..eea15f3e9771dd 100644 --- a/ext/ffi/repr.rs +++ b/ext/ffi/repr.rs @@ -49,7 +49,7 @@ pub enum ReprError { Permission(#[from] deno_permissions::PermissionCheckError), } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_ptr_create( state: &mut OpState, #[bigint] ptr_number: usize, @@ -63,7 +63,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, @@ -78,7 +78,7 @@ where Ok(a == b) } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_ptr_of( state: &mut OpState, #[anybuffer] buf: *const u8, @@ -92,7 +92,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, @@ -112,7 +112,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, @@ -142,7 +142,7 @@ unsafe extern "C" fn noop_deleter_callback( ) { } -#[op2(fast)] +#[op2(fast, stack_trace)] #[bigint] pub fn op_ffi_ptr_value( state: &mut OpState, @@ -157,7 +157,7 @@ where Ok(ptr as usize) } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_get_buf( scope: &mut v8::HandleScope<'scope>, state: &mut OpState, @@ -189,7 +189,7 @@ where Ok(array_buffer) } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_buf_copy_into( state: &mut OpState, src: *mut c_void, @@ -219,7 +219,7 @@ where } } -#[op2] +#[op2(stack_trace)] pub fn op_ffi_cstr_read( scope: &mut v8::HandleScope<'scope>, state: &mut OpState, @@ -244,7 +244,7 @@ where Ok(value) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_bool( state: &mut OpState, ptr: *mut c_void, @@ -264,7 +264,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, @@ -286,7 +286,7 @@ where }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_i8( state: &mut OpState, ptr: *mut c_void, @@ -308,7 +308,7 @@ where }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_u16( state: &mut OpState, ptr: *mut c_void, @@ -330,7 +330,7 @@ where }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_i16( state: &mut OpState, ptr: *mut c_void, @@ -352,7 +352,7 @@ where }) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_u32( state: &mut OpState, ptr: *mut c_void, @@ -372,7 +372,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, @@ -392,7 +392,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, @@ -418,7 +418,7 @@ where Ok(value) } -#[op2(fast)] +#[op2(fast, stack_trace)] #[bigint] pub fn op_ffi_read_i64( state: &mut OpState, @@ -444,7 +444,7 @@ where Ok(value) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_ffi_read_f32( state: &mut OpState, ptr: *mut c_void, @@ -464,7 +464,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, @@ -484,7 +484,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/fs/ops.rs b/ext/fs/ops.rs index e3a511f8e7ff80..7a9778c485c958 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -146,7 +146,7 @@ fn map_permission_error( } } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_fs_cwd

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

( state: &mut OpState, #[string] directory: &str, @@ -188,7 +188,7 @@ where state.borrow::().umask(mask).context("umask") } -#[op2] +#[op2(stack_trace)] #[smi] pub fn op_fs_open_sync

( state: &mut OpState, @@ -215,7 +215,7 @@ where Ok(rid) } -#[op2(async)] +#[op2(async, stack_trace)] #[smi] pub async fn op_fs_open_async

( state: Rc>, @@ -243,7 +243,7 @@ where Ok(rid) } -#[op2] +#[op2(stack_trace)] pub fn op_fs_mkdir_sync

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

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

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

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

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

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

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

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

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

( state: Rc>, #[string] from: String, @@ -463,7 +463,7 @@ where Ok(()) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_fs_stat_sync

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

( state: Rc>, @@ -504,7 +504,7 @@ where Ok(SerializableStat::from(stat)) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_fs_lstat_sync

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

( state: Rc>, @@ -545,7 +545,7 @@ where Ok(SerializableStat::from(stat)) } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_fs_realpath_sync

( state: &mut OpState, @@ -568,7 +568,7 @@ where Ok(path_string) } -#[op2(async)] +#[op2(async, stack_trace)] #[string] pub async fn op_fs_realpath_async

( state: Rc>, @@ -596,7 +596,7 @@ where Ok(path_string) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_fs_read_dir_sync

( state: &mut OpState, @@ -615,7 +615,7 @@ where Ok(entries) } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub async fn op_fs_read_dir_async

( state: Rc>, @@ -640,7 +640,7 @@ where Ok(entries) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_fs_rename_sync

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

( state: Rc>, #[string] oldpath: String, @@ -686,7 +686,7 @@ where Ok(()) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_fs_link_sync

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

( state: Rc>, #[string] oldpath: String, @@ -734,7 +734,7 @@ where Ok(()) } -#[op2] +#[op2(stack_trace)] pub fn op_fs_symlink_sync

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

( state: Rc>, #[string] oldpath: String, @@ -786,7 +786,7 @@ where Ok(()) } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_fs_read_link_sync

( state: &mut OpState, @@ -806,7 +806,7 @@ where Ok(target_string) } -#[op2(async)] +#[op2(async, stack_trace)] #[string] pub async fn op_fs_read_link_async

( state: Rc>, @@ -831,7 +831,7 @@ where Ok(target_string) } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_fs_truncate_sync

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

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

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

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

( state: &mut OpState, @@ -969,7 +969,7 @@ where .context("tmpdir") } -#[op2(async)] +#[op2(async, stack_trace)] #[string] pub async fn op_fs_make_temp_dir_async

( state: Rc>, @@ -1015,7 +1015,7 @@ where .context("tmpdir") } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_fs_make_temp_file_sync

( state: &mut OpState, @@ -1063,7 +1063,7 @@ where .context("tmpfile") } -#[op2(async)] +#[op2(async, stack_trace)] #[string] pub async fn op_fs_make_temp_file_async

( state: Rc>, @@ -1235,7 +1235,7 @@ fn tmp_name( Ok(path) } -#[op2] +#[op2(stack_trace)] pub fn op_fs_write_file_sync

( state: &mut OpState, #[string] path: String, @@ -1261,7 +1261,7 @@ where Ok(()) } -#[op2(async)] +#[op2(async, stack_trace)] #[allow(clippy::too_many_arguments)] pub async fn op_fs_write_file_async

( state: Rc>, @@ -1315,7 +1315,7 @@ where Ok(()) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_fs_read_file_sync

( state: &mut OpState, @@ -1336,7 +1336,7 @@ where Ok(buf.into()) } -#[op2(async)] +#[op2(async, stack_trace)] #[serde] pub async fn op_fs_read_file_async

( state: Rc>, @@ -1378,7 +1378,7 @@ where Ok(buf.into()) } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_fs_read_file_text_sync

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

( state: Rc>, diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs index 5392b97210d92d..ce7509721ae0e2 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -178,7 +178,7 @@ pub enum KvErrorKind { InvalidRange, } -#[op2(async)] +#[op2(async, stack_trace)] #[smi] async fn op_kv_database_open( state: Rc>, diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index 88b8c238dffa1f..6db6af48a282df 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -530,7 +530,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/net/ops.rs b/ext/net/ops.rs index 9a8b70f0f6d965..8d62bdeb4dcb1e 100644 --- a/ext/net/ops.rs +++ b/ext/net/ops.rs @@ -182,7 +182,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>, @@ -343,7 +343,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>, @@ -401,7 +401,7 @@ impl Resource for UdpSocketResource { } } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_net_listen_tcp( state: &mut OpState, @@ -501,7 +501,7 @@ where Ok((rid, IpAddr::from(local_addr))) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_net_listen_udp( state: &mut OpState, @@ -516,7 +516,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, @@ -601,7 +601,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 c7d65dd85ef7b8..4d2073fd092c92 100644 --- a/ext/net/ops_tls.rs +++ b/ext/net/ops_tls.rs @@ -251,7 +251,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>, @@ -340,7 +340,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>, @@ -445,7 +445,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/node/ops/fs.rs b/ext/node/ops/fs.rs index 9c0e4e1ccff212..58a688a1fec2f1 100644 --- a/ext/node/ops/fs.rs +++ b/ext/node/ops/fs.rs @@ -26,7 +26,7 @@ pub enum FsError { Fs(#[from] deno_io::fs::FsError), } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_node_fs_exists_sync

( state: &mut OpState, #[string] path: String, @@ -41,7 +41,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, @@ -60,7 +60,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, @@ -81,7 +81,7 @@ where Ok(()) } -#[op2(async)] +#[op2(async, stack_trace)] pub async fn op_node_cp

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

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

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

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

( state: &mut OpState, #[string] path: String, @@ -323,7 +323,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 69571078fe26e1..f4adb940606651 100644 --- a/ext/node/ops/http.rs +++ b/ext/node/ops/http.rs @@ -49,7 +49,7 @@ use std::cmp::min; 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/inspector.rs b/ext/node/ops/inspector.rs index 34a7e004c1d946..9986aeb1970bd7 100644 --- a/ext/node/ops/inspector.rs +++ b/ext/node/ops/inspector.rs @@ -20,7 +20,7 @@ pub fn op_inspector_enabled() -> bool { false } -#[op2] +#[op2(stack_trace)] pub fn op_inspector_open

( _state: &mut OpState, _port: Option, @@ -85,7 +85,7 @@ struct JSInspectorSession { impl GarbageCollected for JSInspectorSession {} -#[op2] +#[op2(stack_trace)] #[cppgc] pub fn op_inspector_connect<'s, P>( isolate: *mut v8::Isolate, diff --git a/ext/node/ops/os/mod.rs b/ext/node/ops/os/mod.rs index d291277ad4d896..ddb2a70c64883b 100644 --- a/ext/node/ops/os/mod.rs +++ b/ext/node/ops/os/mod.rs @@ -21,7 +21,7 @@ pub enum OsError { FailedToGetUserInfo(#[source] std::io::Error), } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_node_os_get_priority

( state: &mut OpState, pid: u32, @@ -37,7 +37,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, @@ -193,7 +193,7 @@ fn get_user_info(_uid: u32) -> Result { }) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_node_os_user_info

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

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

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

(state: &mut OpState) -> Result, OsError> where @@ -268,7 +268,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/process.rs b/ext/node/ops/process.rs index 282567226ea6cc..45c599bee24fbf 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 06c034fd507104..f8de07a3be2c62 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -125,7 +125,7 @@ pub fn op_require_init_paths() -> Vec { vec![] } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_require_node_module_paths

( state: &mut OpState, @@ -295,7 +295,7 @@ pub fn op_require_path_is_absolute(#[string] p: String) -> bool { PathBuf::from(p).is_absolute() } -#[op2(fast)] +#[op2(fast, stack_trace)] pub fn op_require_stat

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

( state: &mut OpState, @@ -381,7 +381,7 @@ pub fn op_require_path_basename( } } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_require_try_self_parent_path

( state: &mut OpState, @@ -412,7 +412,7 @@ where Ok(None) } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_require_try_self

( state: &mut OpState, @@ -476,7 +476,7 @@ where } } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_require_read_file

( state: &mut OpState, @@ -507,7 +507,7 @@ pub fn op_require_as_file_path(#[string] file_or_url: String) -> String { file_or_url } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_require_resolve_exports

( state: &mut OpState, @@ -583,7 +583,7 @@ pub fn op_require_is_maybe_cjs( loader.is_maybe_cjs(&url) } -#[op2] +#[op2(stack_trace)] #[serde] pub fn op_require_read_package_scope

( state: &mut OpState, @@ -604,7 +604,7 @@ where .flatten() } -#[op2] +#[op2(stack_trace)] #[string] pub fn op_require_package_imports_resolve

( state: &mut OpState, diff --git a/ext/node/ops/worker_threads.rs b/ext/node/ops/worker_threads.rs index d2e57588265360..37a7b477d02317 100644 --- a/ext/node/ops/worker_threads.rs +++ b/ext/node/ops/worker_threads.rs @@ -45,7 +45,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/websocket/lib.rs b/ext/websocket/lib.rs index a5734271cf17be..5aef1a7a550646 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -148,7 +148,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, @@ -443,7 +443,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/runtime/ops/fs_events.rs b/runtime/ops/fs_events.rs index c8e0228bc04199..a91722f91a1ad0 100644 --- a/runtime/ops/fs_events.rs +++ b/runtime/ops/fs_events.rs @@ -162,7 +162,7 @@ fn start_watcher( Ok(()) } -#[op2] +#[op2(stack_trace)] #[smi] fn op_fs_events_open( state: &mut OpState, diff --git a/runtime/ops/os/mod.rs b/runtime/ops/os/mod.rs index 74c708c53295b2..b8ebc88bedca2e 100644 --- a/runtime/ops/os/mod.rs +++ b/runtime/ops/os/mod.rs @@ -87,7 +87,7 @@ pub enum OsError { Io(#[from] std::io::Error), } -#[op2] +#[op2(stack_trace)] #[string] fn op_exec_path(state: &mut OpState) -> Result { let current_exe = env::current_exe().unwrap(); @@ -103,7 +103,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, @@ -123,7 +123,7 @@ fn op_set_env( Ok(()) } -#[op2] +#[op2(stack_trace)] #[serde] fn op_env( state: &mut OpState, @@ -132,7 +132,7 @@ fn op_env( Ok(env::vars().collect()) } -#[op2] +#[op2(stack_trace)] #[string] fn op_get_env( state: &mut OpState, @@ -159,7 +159,7 @@ fn op_get_env( Ok(r) } -#[op2(fast)] +#[op2(fast, stack_trace)] fn op_delete_env( state: &mut OpState, #[string] key: String, @@ -189,7 +189,7 @@ fn op_exit(state: &mut OpState) { crate::exit(code) } -#[op2] +#[op2(stack_trace)] #[serde] fn op_loadavg( state: &mut OpState, @@ -200,7 +200,7 @@ fn op_loadavg( Ok(sys_info::loadavg()) } -#[op2] +#[op2(stack_trace, stack_trace)] #[string] fn op_hostname( state: &mut OpState, @@ -211,7 +211,7 @@ fn op_hostname( Ok(sys_info::hostname()) } -#[op2] +#[op2(stack_trace)] #[string] fn op_os_release( state: &mut OpState, @@ -222,7 +222,7 @@ fn op_os_release( Ok(sys_info::os_release()) } -#[op2] +#[op2(stack_trace)] #[serde] fn op_network_interfaces( state: &mut OpState, @@ -274,7 +274,7 @@ impl From for NetworkInterface { } } -#[op2] +#[op2(stack_trace)] #[serde] fn op_system_memory_info( state: &mut OpState, @@ -286,7 +286,7 @@ fn op_system_memory_info( } #[cfg(not(windows))] -#[op2] +#[op2(stack_trace)] #[smi] fn op_gid( state: &mut OpState, @@ -302,7 +302,7 @@ fn op_gid( } #[cfg(windows)] -#[op2] +#[op2(stack_trace)] #[smi] fn op_gid( state: &mut OpState, @@ -314,7 +314,7 @@ fn op_gid( } #[cfg(not(windows))] -#[op2] +#[op2(stack_trace)] #[smi] fn op_uid( state: &mut OpState, @@ -330,7 +330,7 @@ fn op_uid( } #[cfg(windows)] -#[op2] +#[op2(stack_trace)] #[smi] fn op_uid( state: &mut OpState, @@ -519,7 +519,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/permissions.rs b/runtime/ops/permissions.rs index 9ad963f3bc1aa4..b5f9e284df96e5 100644 --- a/runtime/ops/permissions.rs +++ b/runtime/ops/permissions.rs @@ -99,7 +99,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 ee2f660dccf80c..83d9317d320d88 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -802,7 +802,7 @@ fn get_requires_allow_all_env_vars(env: &RunEnv) -> Vec<&str> { found_envs } -#[op2] +#[op2(stack_trace)] #[serde] fn op_spawn_child( state: &mut OpState, @@ -844,7 +844,7 @@ async fn op_spawn_wait( Ok(result) } -#[op2] +#[op2(stack_trace)] #[serde] fn op_spawn_sync( state: &mut OpState, @@ -928,7 +928,7 @@ mod deprecated { stderr_rid: Option, } - #[op2] + #[op2(stack_trace)] #[serde] pub fn op_run( state: &mut OpState, @@ -1129,7 +1129,7 @@ mod deprecated { } } - #[op2(fast)] + #[op2(fast, stack_trace)] pub fn op_kill( state: &mut OpState, #[smi] pid: i32, diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs index 521284a6a065b2..131bad19623fde 100644 --- a/runtime/ops/worker_host.rs +++ b/runtime/ops/worker_host.rs @@ -133,7 +133,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/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/web_worker.rs b/runtime/web_worker.rs index a282d11b9a02a2..214ae59c80b7b6 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -373,6 +373,7 @@ pub struct WebWorkerOptions { pub strace_ops: Option>, pub close_on_idle: bool, pub maybe_worker_metadata: Option, + pub enable_stack_trace_arg_in_ops: bool, } /// This struct is an implementation of `Worker` Web API @@ -585,6 +586,13 @@ impl WebWorker { validate_import_attributes_callback, )), import_assertions_support: deno_core::ImportAssertionsSupport::Error, + 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.rs b/runtime/worker.rs index 97cbb6428f0e87..65fc99c766ba95 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -207,6 +207,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 { @@ -231,6 +232,7 @@ impl Default for WorkerOptions { create_params: Default::default(), bootstrap: Default::default(), stdio: Default::default(), + enable_stack_trace_arg_in_ops: false, } } } @@ -544,6 +546,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/tests/integration/run_tests.rs b/tests/integration/run_tests.rs index c97b700c5ddedc..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,6 +434,32 @@ fn permissions_cache() { }); } +#[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)", + )); + + console.human_delay(); + console.write_line_raw("y"); + console.expect("✅ Granted sys access to \"hostname\"."); + }); +} + itest!(lock_write_fetch { args: "run --quiet --allow-import --allow-read --allow-write --allow-env --allow-run run/lock_write_fetch/main.ts", @@ -1512,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)", @@ -1521,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)", @@ -1542,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)", @@ -1551,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)", @@ -1572,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)", @@ -1596,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)", @@ -1673,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)", @@ -1682,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)", @@ -2723,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); 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(); From 0670206a2cf7751e6927912bddc06ce0b5839b52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 20 Nov 2024 23:21:41 +0000 Subject: [PATCH 69/97] chore: use forked sqlformat-rs (#26952) Some crucial fixes have not yet been released, so I forked it for the time being. --- Cargo.lock | 25 +++++++++++++------------ cli/Cargo.toml | 4 ++-- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bc386c9571267c..8850726cec4919 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1232,6 +1232,7 @@ dependencies = [ "deno_resolver", "deno_runtime", "deno_semver", + "deno_sqlformat", "deno_task_shell", "deno_terminal 0.2.0", "deno_tower_lsp", @@ -1291,7 +1292,6 @@ dependencies = [ "sha2", "shell-escape", "spki", - "sqlformat", "strsim", "tar", "tempfile", @@ -2147,6 +2147,18 @@ dependencies = [ "url", ] +[[package]] +name = "deno_sqlformat" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e196799ec0cc240fac1fb5c5bf813ef92a9602740a059cfcbb20593b2deee52" +dependencies = [ + "nom 7.1.3", + "once_cell", + "regex", + "unicode_categories", +] + [[package]] name = "deno_task_shell" version = "0.18.1" @@ -6797,17 +6809,6 @@ dependencies = [ "der", ] -[[package]] -name = "sqlformat" -version = "0.3.1" -source = "git+https://github.com/shssoichiro/sqlformat-rs.git?rev=827d639#827d639bef94d8e5a5a0e29b41185c8d572f24e6" -dependencies = [ - "nom 7.1.3", - "once_cell", - "regex", - "unicode_categories", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index ae573827b1c229..d6f509eb97525b 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -151,8 +151,8 @@ serde_repr.workspace = true sha2.workspace = true shell-escape = "=0.1.5" spki = { version = "0.7", features = ["pem"] } -# NOTE(bartlomieju): for now using github URL, because 0.3.2 with important fixes hasn't been released yet. -sqlformat = { git = "https://github.com/shssoichiro/sqlformat-rs.git", rev = "827d639" } +# 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 From 56f31628f7a9d4a3dc54c70c4df1067b8a214ec6 Mon Sep 17 00:00:00 2001 From: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:22:15 -0800 Subject: [PATCH 70/97] feat: subcommand to view and update outdated dependencies (#26942) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #20487 Currently spelled ``` deno outdated ``` and ``` deno outdated --update ``` Works across package.json and deno.json, and in workspaces. There's a bit of duplicated code, I'll refactor to reduce this in follow ups ## Currently supported: ### Printing outdated deps (current output below which basically mimics pnpm, but requesting feedback / suggestions) ``` deno outdated ``` ![Screenshot 2024-11-19 at 2 01 56 PM](https://github.com/user-attachments/assets/51fea83a-181a-4082-b388-163313ce15e7) ### Updating deps semver compatible: ``` deno outdated --update ``` latest: ``` deno outdated --latest ``` current output is basic, again would love suggestions ![Screenshot 2024-11-19 at 2 13 46 PM](https://github.com/user-attachments/assets/e4c4db87-cd67-4b74-9ea7-4bd80106d5e9) #### Filters ``` deno outdated --update "@std/*" deno outdated --update --latest "@std/* "!@std/fmt" ``` #### Update to specific versions ``` deno outdated --update @std/fmt@1.0.2 @std/cli@^1.0.3 ``` ### Include all workspace members ``` deno outdated --recursive deno outdated --update --recursive ``` ## Future work - interactive update - update deps in js/ts files - better support for transitive deps Known issues (to be fixed in follow ups): - If no top level dependencies have changed, we won't update transitive deps (even if they could be updated) - Can't filter transitive deps, or update them to specific versions ## TODO (in this PR): - ~~spec tests for filters~~ - ~~spec test for mixed workspace (have tested manually)~~ - tweak output - suggestion when you try `deno update` --------- Co-authored-by: Bartek IwaƄczuk --- cli/args/flags.rs | 192 ++++ cli/args/mod.rs | 1 + cli/main.rs | 5 + cli/npm/managed/mod.rs | 2 +- cli/tools/registry/mod.rs | 1 + cli/tools/registry/pm.rs | 32 +- cli/tools/registry/pm/cache_deps.rs | 17 +- cli/tools/registry/pm/deps.rs | 964 ++++++++++++++++++ cli/tools/registry/pm/outdated.rs | 661 ++++++++++++ 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 +- .../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 + 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/util/server/src/npm.rs | 68 +- 80 files changed, 3109 insertions(+), 18 deletions(-) create mode 100644 cli/tools/registry/pm/deps.rs create mode 100644 cli/tools/registry/pm/outdated.rs 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/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/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 diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 567d4adfb9b82c..694506557401ef 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -465,6 +465,7 @@ pub enum DenoSubcommand { Serve(ServeFlags), Task(TaskFlags), Test(TestFlags), + Outdated(OutdatedFlags), Types, Upgrade(UpgradeFlags), Vendor, @@ -472,6 +473,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(_)) @@ -1203,6 +1217,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: @@ -1385,6 +1400,7 @@ pub fn flags_from_vec(args: Vec) -> clap::error::Result { "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)?, @@ -1627,6 +1643,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()) @@ -2617,6 +2634,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", @@ -4353,6 +4447,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, @@ -11299,4 +11418,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/mod.rs b/cli/args/mod.rs index bbdfa478c13912..37e1f00ffa1efd 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1628,6 +1628,7 @@ impl CliOptions { DenoSubcommand::Install(_) | DenoSubcommand::Add(_) | DenoSubcommand::Remove(_) + | DenoSubcommand::Outdated(_) ) { // For `deno install/add/remove` we want to force the managed resolver so it can set up `node_modules/` directory. return false; diff --git a/cli/main.rs b/cli/main.rs index 3dd2692f053739..017e343178f68b 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -188,6 +188,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 }) } diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 2e64f5f188c27b..88094d51414f74 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -500,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 { diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index 89447f04f9d5fa..ba61d352d30712 100644 --- a/cli/tools/registry/mod.rs +++ b/cli/tools/registry/mod.rs @@ -68,6 +68,7 @@ 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; diff --git a/cli/tools/registry/pm.rs b/cli/tools/registry/pm.rs index c1ea2c75ea52b7..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 @@ -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/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/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/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/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()?; From b729bf0ad9a2711b9740b30dcf78d826fbc76349 Mon Sep 17 00:00:00 2001 From: Yazan AbdAl-Rahman Date: Thu, 21 Nov 2024 01:30:43 +0200 Subject: [PATCH 71/97] feat(permission): support suffix wildcards in `--allow-env` flag (#25255) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds support for suffix wildcard for `--allow-env` flag. Specifying flag like `--allow-env=DENO_*` will enable access to all environmental variables starting with `DENO_*`. Closes #24847 --------- Co-authored-by: Bartek IwaƄczuk Co-authored-by: David Sherret --- runtime/permissions/lib.rs | 203 ++++++++++++++++-- .../process_env_permissions/__test__.jsonc | 26 +++ .../process_env_permissions/main.js | 5 + .../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 + 7 files changed, 250 insertions(+), 20 deletions(-) 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/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 diff --git a/runtime/permissions/lib.rs b/runtime/permissions/lib.rs index 71ef7d22899be9..a0b901d200a128 100644 --- a/runtime/permissions/lib.rs +++ b/runtime/permissions/lib.rs @@ -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, } @@ -1114,15 +1114,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)) + } + } +} + +#[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 EnvDescriptor { +impl QueryDescriptor for EnvQueryDescriptor { type AllowDesc = EnvDescriptor; type DenyDesc = EnvDescriptor; @@ -1131,19 +1153,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( @@ -1156,19 +1204,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 { @@ -1176,9 +1284,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() + } + } } } @@ -1749,20 +1862,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( @@ -1771,7 +1884,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> { @@ -1905,7 +2018,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, @@ -4564,6 +4677,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/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/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")); From f0b245c8eee563a8d52db07b25a72d7382c2620b Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Thu, 21 Nov 2024 00:35:12 +0100 Subject: [PATCH 72/97] feat(task): workspace support with --filter and --recursive (#26949) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds workspace support to "deno taks". Two new flags were added: - "--recursive" - allows to run a specified task in workspace members, eg. "deno task --recursive dev" - "--filter" - allows to run a specified task only in specific workspace members, eg. "deno task --recursive --filter 'client/*' dev" "--filter" flag implies "--recursive" flag. Closes https://github.com/denoland/deno/issues/24991 --------- Signed-off-by: Bartek IwaƄczuk Signed-off-by: David Sherret Co-authored-by: Bartek IwaƄczuk Co-authored-by: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> Co-authored-by: David Sherret Co-authored-by: David Sherret --- Cargo.lock | 4 +- Cargo.toml | 2 +- cli/args/flags.rs | 97 +++++- cli/main.rs | 2 + cli/tools/task.rs | 277 +++++++++++++----- .../__test__.jsonc | 5 + .../deno_json_lifecycle_script_names/bin.out | 2 + .../deno.jsonc | 7 + .../package.json | 5 + 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 + 43 files changed, 541 insertions(+), 78 deletions(-) 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/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 diff --git a/Cargo.lock b/Cargo.lock index 8850726cec4919..2896c0e0585066 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1435,9 +1435,9 @@ dependencies = [ [[package]] name = "deno_config" -version = "0.39.1" +version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a91aa99751ebe305a7edad12a3ad751f3b3b9f5ecddbfe4a0459e3cdc8493b6" +checksum = "38fb809500238be2b10eee42944a47b3ac38974e1edbb47f73afcfca7df143bf" dependencies = [ "anyhow", "deno_package_json", diff --git a/Cargo.toml b/Cargo.toml index cf7e2610bbf774..0dfe7e8bd9d58c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ deno_ast = { version = "=0.43.3", features = ["transpiling"] } deno_core = { version = "0.321.0" } deno_bench_util = { version = "0.171.0", path = "./bench_util" } -deno_config = { version = "=0.39.1", features = ["workspace", "sync"] } +deno_config = { version = "=0.39.2", features = ["workspace", "sync"] } deno_lockfile = "=0.23.1" deno_media_type = { version = "0.2.0", features = ["module_specifier"] } deno_npm = "=0.25.4" diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 694506557401ef..34647667285437 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -380,6 +380,8 @@ pub struct TaskFlags { pub cwd: Option, pub task: Option, pub is_run: bool, + pub recursive: bool, + pub filter: Option, pub eval: bool, } @@ -3046,13 +3048,27 @@ Evaluate a task from string .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 - should be used with --recursive") + .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()) }) } @@ -5212,10 +5228,15 @@ fn task_parse( 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"), }; @@ -10418,6 +10439,8 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, eval: false, }), argv: svec!["hello", "world"], @@ -10433,6 +10456,8 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, eval: false, }), ..Flags::default() @@ -10447,6 +10472,56 @@ 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() @@ -10461,6 +10536,8 @@ mod tests { cwd: None, task: Some("echo 1".to_string()), is_run: false, + recursive: false, + filter: None, eval: true, }), ..Flags::default() @@ -10490,6 +10567,8 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, eval: false, }), argv: svec!["--", "hello", "world"], @@ -10508,6 +10587,8 @@ 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"], @@ -10527,6 +10608,8 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, eval: false, }), argv: svec!["--"], @@ -10545,6 +10628,8 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, eval: false, }), argv: svec!["-1", "--test"], @@ -10563,6 +10648,8 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, eval: false, }), argv: svec!["--test"], @@ -10582,6 +10669,8 @@ mod tests { cwd: None, task: Some("build".to_string()), is_run: false, + recursive: false, + filter: None, eval: false, }), log_level: Some(log::Level::Error), @@ -10600,6 +10689,8 @@ mod tests { cwd: None, task: None, is_run: false, + recursive: false, + filter: None, eval: false, }), ..Flags::default() @@ -10617,6 +10708,8 @@ mod tests { cwd: None, task: None, is_run: false, + recursive: false, + filter: None, eval: false, }), config_flag: ConfigFlag::Path("deno.jsonc".to_string()), @@ -10635,6 +10728,8 @@ mod tests { cwd: None, task: None, is_run: false, + recursive: false, + filter: None, eval: false, }), config_flag: ConfigFlag::Path("deno.jsonc".to_string()), diff --git a/cli/main.rs b/cli/main.rs index 017e343178f68b..29f5914bbfd467 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -243,6 +243,8 @@ 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()); diff --git a/cli/tools/task.rs b/cli/tools/task.rs index 85145c7af78eff..b0c290adc0fcf2 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -8,6 +8,7 @@ use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; +use deno_config::workspace::FolderConfigs; use deno_config::workspace::TaskDefinition; use deno_config::workspace::TaskOrScript; use deno_config::workspace::WorkspaceDirectory; @@ -25,6 +26,7 @@ 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; @@ -35,6 +37,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, @@ -55,18 +63,145 @@ pub async fn execute_script( v == "1" }) .unwrap_or(false); - let mut tasks_config = start_dir.to_tasks_config()?; - if force_use_pkg_json { - tasks_config = 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 Some(task_name) = &task_flags.task else { - print_available_tasks( - &mut std::io::stdout(), - &cli_options.start_dir, - &tasks_config, - )?; - return Ok(0); + 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 { + let mut tasks_config = start_dir.to_tasks_config()?; + + if force_use_pkg_json { + tasks_config = tasks_config.with_only_pkg_json() + } + + 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?; @@ -81,7 +216,6 @@ pub async fn execute_script( .unwrap_or_else(|| NonZeroUsize::new(2).unwrap()); let task_runner = TaskRunner { - tasks_config, task_flags: &task_flags, npm_resolver: npm_resolver.as_ref(), node_resolver: node_resolver.as_ref(), @@ -94,7 +228,7 @@ pub async fn execute_script( return task_runner .run_deno_task( &Url::from_directory_path(cli_options.initial_cwd()).unwrap(), - &"".to_string(), + "", &TaskDefinition { command: task_flags.task.as_ref().unwrap().to_string(), dependencies: vec![], @@ -103,7 +237,15 @@ pub async fn execute_script( ) .await; } - task_runner.run_task(task_name).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 RunSingleOptions<'a> { @@ -114,7 +256,6 @@ struct RunSingleOptions<'a> { } struct TaskRunner<'a> { - tasks_config: WorkspaceTasksConfig, task_flags: &'a TaskFlags, npm_resolver: &'a dyn CliNpmResolver, node_resolver: &'a NodeResolver, @@ -124,12 +265,16 @@ struct TaskRunner<'a> { } impl<'a> TaskRunner<'a> { - pub async fn run_task( + pub async fn run_tasks( &self, - task_name: &str, + pkg_tasks_config: &PackageTaskInfo, ) -> Result { - match sort_tasks_topo(task_name, &self.tasks_config) { - Ok(sorted) => self.run_tasks_in_parallel(sorted).await, + match sort_tasks_topo(pkg_tasks_config) { + Ok(sorted) => { + self + .run_tasks_in_parallel(&pkg_tasks_config.tasks_config, sorted) + .await + } Err(err) => match err { TaskError::NotFound(name) => { if self.task_flags.is_run { @@ -138,7 +283,7 @@ impl<'a> TaskRunner<'a> { log::error!("Task not found: {}", name); if log::log_enabled!(log::Level::Error) { - self.print_available_tasks()?; + self.print_available_tasks(&pkg_tasks_config.tasks_config)?; } Ok(1) } @@ -150,16 +295,20 @@ impl<'a> TaskRunner<'a> { } } - pub fn print_available_tasks(&self) -> Result<(), std::io::Error> { + 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, - &self.tasks_config, + tasks_config, ) } async fn run_tasks_in_parallel( &self, + tasks_config: &WorkspaceTasksConfig, task_names: Vec, ) -> Result { struct PendingTasksContext { @@ -181,22 +330,23 @@ impl<'a> TaskRunner<'a> { fn get_next_task<'a>( &mut self, runner: &'a TaskRunner<'a>, + tasks_config: &'a WorkspaceTasksConfig, ) -> Option>> { for name in &self.task_names { if self.completed.contains(name) || self.running.contains(name) { continue; } - let should_run = if let Ok((_, def)) = runner.get_task(name) { - match def { - TaskOrScript::Task(_, def) => def - .dependencies - .iter() - .all(|dep| self.completed.contains(dep)), - TaskOrScript::Script(_, _) => true, - } - } else { - false + let Some((folder_url, task_or_script)) = tasks_config.task(name) + else { + continue; + }; + let should_run = match task_or_script { + TaskOrScript::Task(_, def) => def + .dependencies + .iter() + .all(|dep| self.completed.contains(dep)), + TaskOrScript::Script(_, _) => true, }; if !should_run { @@ -207,10 +357,15 @@ impl<'a> TaskRunner<'a> { let name = name.clone(); return Some( async move { - runner - .run_task_no_dependencies(&name) - .await - .map(|exit_code| (exit_code, name)) + match task_or_script { + TaskOrScript::Task(_, def) => { + runner.run_deno_task(folder_url, &name, def).await + } + TaskOrScript::Script(scripts, _) => { + runner.run_npm_script(folder_url, &name, scripts).await + } + } + .map(|exit_code| (exit_code, name)) } .boxed_local(), ); @@ -229,7 +384,7 @@ impl<'a> TaskRunner<'a> { while context.has_remaining_tasks() { while queue.len() < self.concurrency { - if let Some(task) = context.get_next_task(self) { + if let Some(task) = context.get_next_task(self, tasks_config) { queue.push(task); } else { break; @@ -253,37 +408,10 @@ impl<'a> TaskRunner<'a> { Ok(0) } - fn get_task( - &self, - task_name: &str, - ) -> Result<(&Url, TaskOrScript), TaskError> { - let Some(result) = self.tasks_config.task(task_name) else { - return Err(TaskError::NotFound(task_name.to_string())); - }; - - Ok(result) - } - - async fn run_task_no_dependencies( - &self, - task_name: &String, - ) -> Result { - let (dir_url, task_or_script) = self.get_task(task_name.as_str()).unwrap(); - - match task_or_script { - TaskOrScript::Task(_tasks, definition) => { - self.run_deno_task(dir_url, task_name, definition).await - } - TaskOrScript::Script(scripts, _script) => { - self.run_npm_script(dir_url, task_name, scripts).await - } - } - } - - async fn run_deno_task( + pub async fn run_deno_task( &self, dir_url: &Url, - task_name: &String, + task_name: &str, definition: &TaskDefinition, ) -> Result { let cwd = match &self.task_flags.cwd { @@ -306,10 +434,10 @@ impl<'a> TaskRunner<'a> { .await } - async fn run_npm_script( + pub async fn run_npm_script( &self, dir_url: &Url, - task_name: &String, + task_name: &str, scripts: &IndexMap, ) -> Result { // ensure the npm packages are installed if using a managed resolver @@ -327,7 +455,7 @@ impl<'a> TaskRunner<'a> { // dealing with package.json here and not deno.json let task_names = vec![ format!("pre{}", task_name), - task_name.clone(), + task_name.to_string(), format!("post{}", task_name), ]; let custom_commands = task_runner::resolve_custom_commands( @@ -394,8 +522,7 @@ enum TaskError { } fn sort_tasks_topo( - name: &str, - task_config: &WorkspaceTasksConfig, + pkg_task_config: &PackageTaskInfo, ) -> Result, TaskError> { fn sort_visit<'a>( name: &'a str, @@ -416,12 +543,12 @@ fn sort_tasks_topo( }); } - let Some(def) = tasks_config.task(name) else { + let Some((_, task_or_script)) = tasks_config.task(name) else { return Err(TaskError::NotFound(name.to_string())); }; - if let TaskOrScript::Task(_, actual_def) = def.1 { - for dep in &actual_def.dependencies { + if let TaskOrScript::Task(_, task) = task_or_script { + for dep in &task.dependencies { let mut path = path.clone(); path.push(name); sort_visit(dep, sorted, path, tasks_config)? @@ -435,7 +562,9 @@ fn sort_tasks_topo( let mut sorted: Vec = vec![]; - sort_visit(name, &mut sorted, Vec::new(), task_config)?; + for name in &pkg_task_config.matched_tasks { + sort_visit(name, &mut sorted, Vec::new(), &pkg_task_config.tasks_config)?; + } Ok(sorted) } 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/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"] +} From d17f4590a246675b12ced7272b93b670b37f9f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 21 Nov 2024 00:03:11 +0000 Subject: [PATCH 73/97] feat(init): add --npm flag to initialize npm projects (#26896) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds support for `deno init --npm `. Running this will actually call to `npm:create-` package that is equivalent to running `npm create `. User will be prompted if they want to allow all permissions and lifecycle scripts to be executed. Closes https://github.com/denoland/deno/issues/26461 --------- Signed-off-by: Bartek IwaƄczuk Co-authored-by: crowlkats Co-authored-by: David Sherret --- cli/args/flags.rs | 121 ++++++++++++++++++++++++++-- cli/args/mod.rs | 3 +- cli/main.rs | 4 +- cli/tools/init/mod.rs | 68 +++++++++++++++- tests/specs/init/npm/__test__.jsonc | 6 ++ tests/specs/init/npm/init.out | 1 + 6 files changed, 191 insertions(+), 12 deletions(-) create mode 100644 tests/specs/init/npm/__test__.jsonc create mode 100644 tests/specs/init/npm/init.out diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 34647667285437..f6d53cd15e035a 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -222,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, @@ -1395,7 +1397,7 @@ 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), @@ -2448,7 +2450,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") @@ -4820,12 +4834,44 @@ fn fmt_parse( 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( @@ -10907,6 +10953,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: None, lib: false, serve: false, @@ -10920,6 +10968,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: Some(String::from("foo")), lib: false, serve: false, @@ -10933,6 +10983,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: None, lib: false, serve: false, @@ -10947,6 +10999,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: None, lib: true, serve: false, @@ -10960,6 +11014,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: None, lib: false, serve: true, @@ -10973,6 +11029,8 @@ mod tests { r.unwrap(), Flags { subcommand: DenoSubcommand::Init(InitFlags { + package: None, + package_args: vec![], dir: Some(String::from("foo")), lib: true, serve: false, @@ -10980,6 +11038,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] diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 37e1f00ffa1efd..a1a9c49cbe4421 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1628,9 +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() diff --git a/cli/main.rs b/cli/main.rs index 29f5914bbfd467..c49c8a83a6d54e 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -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) => { 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/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. From be10901dfcfe84bda6b02828a9253f08365d5cfb Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 20 Nov 2024 20:02:58 -0500 Subject: [PATCH 74/97] docs: fix casing of Wasm (#26954) --- cli/tsc/dts/lib.deno.shared_globals.d.ts | 58 +++++++++---------- .../close_in_wasm_reactions.js | 2 +- .../worker_close_in_wasm_reactions.js | 2 +- .../workers/close_in_wasm_reactions.js | 2 +- tests/unit/wasm_test.ts | 4 +- 5 files changed, 34 insertions(+), 34 deletions(-) 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/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/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/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", From 3da4eca7c1ed97906654671669e0bb3b095bc637 Mon Sep 17 00:00:00 2001 From: denobot <33910674+denobot@users.noreply.github.com> Date: Wed, 20 Nov 2024 21:05:02 -0500 Subject: [PATCH 75/97] 2.1.0 (#26957) Bumped versions for 2.1.0 Co-authored-by: bartlomieju --- .github/workflows/ci.generate.ts | 2 +- .github/workflows/ci.yml | 8 ++-- Cargo.lock | 58 +++++++++++++------------- Cargo.toml | 56 ++++++++++++------------- Releases.md | 70 ++++++++++++++++++++++++++++++++ bench_util/Cargo.toml | 2 +- cli/Cargo.toml | 2 +- ext/broadcast_channel/Cargo.toml | 2 +- ext/cache/Cargo.toml | 2 +- ext/canvas/Cargo.toml | 2 +- ext/console/Cargo.toml | 2 +- ext/cron/Cargo.toml | 2 +- ext/crypto/Cargo.toml | 2 +- ext/fetch/Cargo.toml | 2 +- ext/ffi/Cargo.toml | 2 +- ext/fs/Cargo.toml | 2 +- ext/http/Cargo.toml | 2 +- ext/io/Cargo.toml | 2 +- ext/kv/Cargo.toml | 2 +- ext/napi/Cargo.toml | 2 +- ext/napi/sym/Cargo.toml | 2 +- ext/net/Cargo.toml | 2 +- ext/node/Cargo.toml | 2 +- ext/tls/Cargo.toml | 2 +- ext/url/Cargo.toml | 2 +- ext/web/Cargo.toml | 2 +- ext/webgpu/Cargo.toml | 2 +- ext/webidl/Cargo.toml | 2 +- ext/websocket/Cargo.toml | 2 +- ext/webstorage/Cargo.toml | 2 +- resolvers/deno/Cargo.toml | 2 +- resolvers/node/Cargo.toml | 2 +- runtime/Cargo.toml | 2 +- runtime/permissions/Cargo.toml | 2 +- 34 files changed, 161 insertions(+), 91 deletions(-) diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts index 5ed02d3cdece84..941ee47984e1f6 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 = 26; 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..20e9fef503c999 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: '26-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles(''Cargo.lock'') }}' + restore-keys: '26-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: '26-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: '26-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 2896c0e0585066..bf6d3a37147e94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1201,7 +1201,7 @@ dependencies = [ [[package]] name = "deno" -version = "2.0.6" +version = "2.1.0" dependencies = [ "anstream", "async-trait", @@ -1371,7 +1371,7 @@ dependencies = [ [[package]] name = "deno_bench_util" -version = "0.171.0" +version = "0.172.0" dependencies = [ "bencher", "deno_core", @@ -1380,7 +1380,7 @@ dependencies = [ [[package]] name = "deno_broadcast_channel" -version = "0.171.0" +version = "0.172.0" dependencies = [ "async-trait", "deno_core", @@ -1391,7 +1391,7 @@ dependencies = [ [[package]] name = "deno_cache" -version = "0.109.0" +version = "0.110.0" dependencies = [ "async-trait", "deno_core", @@ -1424,7 +1424,7 @@ dependencies = [ [[package]] name = "deno_canvas" -version = "0.46.0" +version = "0.47.0" dependencies = [ "deno_core", "deno_webgpu", @@ -1459,7 +1459,7 @@ dependencies = [ [[package]] name = "deno_console" -version = "0.177.0" +version = "0.178.0" dependencies = [ "deno_core", ] @@ -1506,7 +1506,7 @@ checksum = "fe4dccb6147bb3f3ba0c7a48e993bfeb999d2c2e47a81badee80e2b370c8d695" [[package]] name = "deno_cron" -version = "0.57.0" +version = "0.58.0" dependencies = [ "anyhow", "async-trait", @@ -1519,7 +1519,7 @@ dependencies = [ [[package]] name = "deno_crypto" -version = "0.191.0" +version = "0.192.0" dependencies = [ "aes", "aes-gcm", @@ -1587,7 +1587,7 @@ dependencies = [ [[package]] name = "deno_fetch" -version = "0.201.0" +version = "0.202.0" dependencies = [ "base64 0.21.7", "bytes", @@ -1621,7 +1621,7 @@ dependencies = [ [[package]] name = "deno_ffi" -version = "0.164.0" +version = "0.165.0" dependencies = [ "deno_core", "deno_permissions", @@ -1641,7 +1641,7 @@ dependencies = [ [[package]] name = "deno_fs" -version = "0.87.0" +version = "0.88.0" dependencies = [ "async-trait", "base32", @@ -1694,7 +1694,7 @@ dependencies = [ [[package]] name = "deno_http" -version = "0.175.0" +version = "0.176.0" dependencies = [ "async-compression", "async-trait", @@ -1733,7 +1733,7 @@ dependencies = [ [[package]] name = "deno_io" -version = "0.87.0" +version = "0.88.0" dependencies = [ "async-trait", "deno_core", @@ -1754,7 +1754,7 @@ dependencies = [ [[package]] name = "deno_kv" -version = "0.85.0" +version = "0.86.0" dependencies = [ "anyhow", "async-trait", @@ -1827,7 +1827,7 @@ dependencies = [ [[package]] name = "deno_napi" -version = "0.108.0" +version = "0.109.0" dependencies = [ "deno_core", "deno_permissions", @@ -1855,7 +1855,7 @@ dependencies = [ [[package]] name = "deno_net" -version = "0.169.0" +version = "0.170.0" dependencies = [ "deno_core", "deno_permissions", @@ -1872,7 +1872,7 @@ dependencies = [ [[package]] name = "deno_node" -version = "0.114.0" +version = "0.115.0" dependencies = [ "aead-gcm-stream", "aes", @@ -2024,7 +2024,7 @@ dependencies = [ [[package]] name = "deno_permissions" -version = "0.37.0" +version = "0.38.0" dependencies = [ "deno_core", "deno_path_util", @@ -2042,7 +2042,7 @@ dependencies = [ [[package]] name = "deno_resolver" -version = "0.9.0" +version = "0.10.0" dependencies = [ "anyhow", "base32", @@ -2061,7 +2061,7 @@ dependencies = [ [[package]] name = "deno_runtime" -version = "0.186.0" +version = "0.187.0" dependencies = [ "async-trait", "color-print", @@ -2198,7 +2198,7 @@ dependencies = [ [[package]] name = "deno_tls" -version = "0.164.0" +version = "0.165.0" dependencies = [ "deno_core", "deno_native_certs", @@ -2247,7 +2247,7 @@ dependencies = [ [[package]] name = "deno_url" -version = "0.177.0" +version = "0.178.0" dependencies = [ "deno_bench_util", "deno_console", @@ -2259,7 +2259,7 @@ dependencies = [ [[package]] name = "deno_web" -version = "0.208.0" +version = "0.209.0" dependencies = [ "async-trait", "base64-simd 0.8.0", @@ -2281,7 +2281,7 @@ dependencies = [ [[package]] name = "deno_webgpu" -version = "0.144.0" +version = "0.145.0" dependencies = [ "deno_core", "raw-window-handle", @@ -2294,7 +2294,7 @@ dependencies = [ [[package]] name = "deno_webidl" -version = "0.177.0" +version = "0.178.0" dependencies = [ "deno_bench_util", "deno_core", @@ -2302,7 +2302,7 @@ dependencies = [ [[package]] name = "deno_websocket" -version = "0.182.0" +version = "0.183.0" dependencies = [ "bytes", "deno_core", @@ -2324,7 +2324,7 @@ dependencies = [ [[package]] name = "deno_webstorage" -version = "0.172.0" +version = "0.173.0" dependencies = [ "deno_core", "deno_web", @@ -4752,7 +4752,7 @@ dependencies = [ [[package]] name = "napi_sym" -version = "0.107.0" +version = "0.108.0" dependencies = [ "quote", "serde", @@ -4807,7 +4807,7 @@ dependencies = [ [[package]] name = "node_resolver" -version = "0.16.0" +version = "0.17.0" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 0dfe7e8bd9d58c..5f66c0d44de82f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,17 +48,17 @@ repository = "https://github.com/denoland/deno" deno_ast = { version = "=0.43.3", features = ["transpiling"] } deno_core = { version = "0.321.0" } -deno_bench_util = { version = "0.171.0", path = "./bench_util" } +deno_bench_util = { version = "0.172.0", path = "./bench_util" } deno_config = { version = "=0.39.2", features = ["workspace", "sync"] } deno_lockfile = "=0.23.1" deno_media_type = { version = "0.2.0", features = ["module_specifier"] } deno_npm = "=0.25.4" deno_path_util = "=0.2.1" -deno_permissions = { version = "0.37.0", path = "./runtime/permissions" } -deno_runtime = { version = "0.186.0", path = "./runtime" } +deno_permissions = { version = "0.38.0", path = "./runtime/permissions" } +deno_runtime = { version = "0.187.0", path = "./runtime" } deno_semver = "=0.5.16" deno_terminal = "0.2.0" -napi_sym = { version = "0.107.0", path = "./ext/napi/sym" } +napi_sym = { version = "0.108.0", path = "./ext/napi/sym" } test_util = { package = "test_server", path = "./tests/util/server" } denokv_proto = "0.8.4" @@ -67,32 +67,32 @@ denokv_remote = "0.8.4" denokv_sqlite = { default-features = false, version = "0.8.4" } # exts -deno_broadcast_channel = { version = "0.171.0", path = "./ext/broadcast_channel" } -deno_cache = { version = "0.109.0", path = "./ext/cache" } -deno_canvas = { version = "0.46.0", path = "./ext/canvas" } -deno_console = { version = "0.177.0", path = "./ext/console" } -deno_cron = { version = "0.57.0", path = "./ext/cron" } -deno_crypto = { version = "0.191.0", path = "./ext/crypto" } -deno_fetch = { version = "0.201.0", path = "./ext/fetch" } -deno_ffi = { version = "0.164.0", path = "./ext/ffi" } -deno_fs = { version = "0.87.0", path = "./ext/fs" } -deno_http = { version = "0.175.0", path = "./ext/http" } -deno_io = { version = "0.87.0", path = "./ext/io" } -deno_kv = { version = "0.85.0", path = "./ext/kv" } -deno_napi = { version = "0.108.0", path = "./ext/napi" } -deno_net = { version = "0.169.0", path = "./ext/net" } -deno_node = { version = "0.114.0", path = "./ext/node" } -deno_tls = { version = "0.164.0", path = "./ext/tls" } -deno_url = { version = "0.177.0", path = "./ext/url" } -deno_web = { version = "0.208.0", path = "./ext/web" } -deno_webgpu = { version = "0.144.0", path = "./ext/webgpu" } -deno_webidl = { version = "0.177.0", path = "./ext/webidl" } -deno_websocket = { version = "0.182.0", path = "./ext/websocket" } -deno_webstorage = { version = "0.172.0", path = "./ext/webstorage" } +deno_broadcast_channel = { version = "0.172.0", path = "./ext/broadcast_channel" } +deno_cache = { version = "0.110.0", path = "./ext/cache" } +deno_canvas = { version = "0.47.0", path = "./ext/canvas" } +deno_console = { version = "0.178.0", path = "./ext/console" } +deno_cron = { version = "0.58.0", path = "./ext/cron" } +deno_crypto = { version = "0.192.0", path = "./ext/crypto" } +deno_fetch = { version = "0.202.0", path = "./ext/fetch" } +deno_ffi = { version = "0.165.0", path = "./ext/ffi" } +deno_fs = { version = "0.88.0", path = "./ext/fs" } +deno_http = { version = "0.176.0", path = "./ext/http" } +deno_io = { version = "0.88.0", path = "./ext/io" } +deno_kv = { version = "0.86.0", path = "./ext/kv" } +deno_napi = { version = "0.109.0", path = "./ext/napi" } +deno_net = { version = "0.170.0", path = "./ext/net" } +deno_node = { version = "0.115.0", path = "./ext/node" } +deno_tls = { version = "0.165.0", path = "./ext/tls" } +deno_url = { version = "0.178.0", path = "./ext/url" } +deno_web = { version = "0.209.0", path = "./ext/web" } +deno_webgpu = { version = "0.145.0", path = "./ext/webgpu" } +deno_webidl = { version = "0.178.0", path = "./ext/webidl" } +deno_websocket = { version = "0.183.0", path = "./ext/websocket" } +deno_webstorage = { version = "0.173.0", path = "./ext/webstorage" } # resolvers -deno_resolver = { version = "0.9.0", path = "./resolvers/deno" } -node_resolver = { version = "0.16.0", path = "./resolvers/node" } +deno_resolver = { version = "0.10.0", path = "./resolvers/deno" } +node_resolver = { version = "0.17.0", path = "./resolvers/node" } aes = "=0.8.3" anyhow = "1.0.57" diff --git a/Releases.md b/Releases.md index 5ce25815bdb54d..2cb2dfbd80c8ae 100644 --- a/Releases.md +++ b/Releases.md @@ -6,6 +6,76 @@ https://github.com/denoland/deno/releases We also have one-line install commands at: https://github.com/denoland/deno_install +### 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..7bb785e6e55f87 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.172.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/cli/Cargo.toml b/cli/Cargo.toml index d6f509eb97525b..c6818848371ac4 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno" -version = "2.0.6" +version = "2.1.0" authors.workspace = true default-run = "deno" edition.workspace = true diff --git a/ext/broadcast_channel/Cargo.toml b/ext/broadcast_channel/Cargo.toml index 90ac0383579759..b92b1c7beb3fdf 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.172.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/cache/Cargo.toml b/ext/cache/Cargo.toml index 56fa0a527f3eab..c79024e82c16a0 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.110.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/canvas/Cargo.toml b/ext/canvas/Cargo.toml index 4231d7c84d4802..8fcb2c4a9c8e19 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.47.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/console/Cargo.toml b/ext/console/Cargo.toml index 80f1cca84d8cb6..9f925ac61b316d 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.178.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/cron/Cargo.toml b/ext/cron/Cargo.toml index 966ccdc958316c..23ac77d5eda371 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.58.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/crypto/Cargo.toml b/ext/crypto/Cargo.toml index a5794dc68b447b..4a44314221f9fe 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.192.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/fetch/Cargo.toml b/ext/fetch/Cargo.toml index 00c85f2aa163a0..9ebd9ec03f2006 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.202.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/ffi/Cargo.toml b/ext/ffi/Cargo.toml index 295e8be8460dc5..e63d22e57dc9ac 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.165.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/fs/Cargo.toml b/ext/fs/Cargo.toml index ace1b89f3a03dc..f37d1f699796ca 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.88.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/http/Cargo.toml b/ext/http/Cargo.toml index ed98fe349c1872..5105b47ddef6e8 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.176.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/io/Cargo.toml b/ext/io/Cargo.toml index 6ef049ff9b087e..8f7c0e197a7df7 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.88.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/kv/Cargo.toml b/ext/kv/Cargo.toml index aa7381766740ac..870e4fec3b69d1 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.86.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/napi/Cargo.toml b/ext/napi/Cargo.toml index df3ec0287b936c..19f4036a886e3a 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.109.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/napi/sym/Cargo.toml b/ext/napi/sym/Cargo.toml index 7c13a9165c8205..83107782b814c5 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.108.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/net/Cargo.toml b/ext/net/Cargo.toml index 1febbd5338be93..1cb109dd2182e1 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.170.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/node/Cargo.toml b/ext/node/Cargo.toml index 36910a844690c2..3502d3b5f851d1 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.115.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/tls/Cargo.toml b/ext/tls/Cargo.toml index 943fc8413e8842..81d28d44212247 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.165.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/url/Cargo.toml b/ext/url/Cargo.toml index 557a4669e6aa59..2b390e8b07c9a4 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.178.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/web/Cargo.toml b/ext/web/Cargo.toml index db28d0e5786493..c00298991b9dce 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.209.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/webgpu/Cargo.toml b/ext/webgpu/Cargo.toml index f23bb8371e9c18..73541ba6a2c754 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.145.0" authors = ["the Deno authors"] edition.workspace = true license = "MIT" diff --git a/ext/webidl/Cargo.toml b/ext/webidl/Cargo.toml index 8c3f6f6128839e..9f6fdc49437224 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.178.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/websocket/Cargo.toml b/ext/websocket/Cargo.toml index 61f1f5959c4ae8..bdbc1694353ca1 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.183.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/webstorage/Cargo.toml b/ext/webstorage/Cargo.toml index 01e23ab839a643..928844c5aaa16c 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.173.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/resolvers/deno/Cargo.toml b/resolvers/deno/Cargo.toml index c2d4a3bc29af51..6be746cecb1662 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.10.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/resolvers/node/Cargo.toml b/resolvers/node/Cargo.toml index eeac79c2566b9c..7f914479ad553c 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.17.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index b59cd14fa95694..d4c41b831fe3c9 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_runtime" -version = "0.186.0" +version = "0.187.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/runtime/permissions/Cargo.toml b/runtime/permissions/Cargo.toml index e088eb8ce53813..1e7133de6ddb48 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.38.0" authors.workspace = true edition.workspace = true license.workspace = true From 0b8df9f24d0119386dff4341bc4a6a1142688f2d Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 21 Nov 2024 00:13:47 -0500 Subject: [PATCH 76/97] chore: fix cargo publish (#26958) --- resolvers/deno/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/resolvers/deno/Cargo.toml b/resolvers/deno/Cargo.toml index 6be746cecb1662..0de8b31b38d558 100644 --- a/resolvers/deno/Cargo.toml +++ b/resolvers/deno/Cargo.toml @@ -25,6 +25,7 @@ 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 From e515ed23e8af7f849cad9a74e40c64c973149e6d Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 21 Nov 2024 09:43:51 -0500 Subject: [PATCH 77/97] fix(task): ensure root config always looks up dependencies in root (#26959) We were accidentally looking up dependencies in the member. --- cli/tools/task.rs | 188 +++++++++++------- .../__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 + 10 files changed, 202 insertions(+), 67 deletions(-) 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 diff --git a/cli/tools/task.rs b/cli/tools/task.rs index b0c290adc0fcf2..478853f4e64f61 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -12,6 +12,7 @@ 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; @@ -270,11 +271,7 @@ impl<'a> TaskRunner<'a> { pkg_tasks_config: &PackageTaskInfo, ) -> Result { match sort_tasks_topo(pkg_tasks_config) { - Ok(sorted) => { - self - .run_tasks_in_parallel(&pkg_tasks_config.tasks_config, sorted) - .await - } + Ok(sorted) => self.run_tasks_in_parallel(sorted).await, Err(err) => match err { TaskError::NotFound(name) => { if self.task_flags.is_run { @@ -308,64 +305,62 @@ impl<'a> TaskRunner<'a> { async fn run_tasks_in_parallel( &self, - tasks_config: &WorkspaceTasksConfig, - task_names: Vec, + tasks: Vec>, ) -> Result { - struct PendingTasksContext { - completed: HashSet, - running: HashSet, - task_names: Vec, + struct PendingTasksContext<'a> { + completed: HashSet, + running: HashSet, + tasks: &'a [ResolvedTask<'a>], } - impl PendingTasksContext { + impl<'a> PendingTasksContext<'a> { fn has_remaining_tasks(&self) -> bool { - self.completed.len() < self.task_names.len() + self.completed.len() < self.tasks.len() } - fn mark_complete(&mut self, task_name: String) { - self.running.remove(&task_name); - self.completed.insert(task_name); + fn mark_complete(&mut self, task: &ResolvedTask) { + self.running.remove(&task.id); + self.completed.insert(task.id); } - fn get_next_task<'a>( + fn get_next_task<'b>( &mut self, - runner: &'a TaskRunner<'a>, - tasks_config: &'a WorkspaceTasksConfig, - ) -> Option>> { - for name in &self.task_names { - if self.completed.contains(name) || self.running.contains(name) { + 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 Some((folder_url, task_or_script)) = tasks_config.task(name) - else { - continue; - }; - let should_run = match task_or_script { - TaskOrScript::Task(_, def) => def - .dependencies - .iter() - .all(|dep| self.completed.contains(dep)), - TaskOrScript::Script(_, _) => true, - }; - + let should_run = task + .dependencies + .iter() + .all(|dep_id| self.completed.contains(dep_id)); if !should_run { continue; } - self.running.insert(name.clone()); - let name = name.clone(); + self.running.insert(task.id); return Some( async move { - match task_or_script { + match task.task_or_script { TaskOrScript::Task(_, def) => { - runner.run_deno_task(folder_url, &name, def).await + runner.run_deno_task(task.folder_url, task.name, def).await } TaskOrScript::Script(scripts, _) => { - runner.run_npm_script(folder_url, &name, scripts).await + runner + .run_npm_script(task.folder_url, task.name, scripts) + .await } } - .map(|exit_code| (exit_code, name)) + .map(|exit_code| (exit_code, task)) } .boxed_local(), ); @@ -375,16 +370,16 @@ impl<'a> TaskRunner<'a> { } let mut context = PendingTasksContext { - completed: HashSet::with_capacity(task_names.len()), + completed: HashSet::with_capacity(tasks.len()), running: HashSet::with_capacity(self.concurrency), - task_names, + 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, tasks_config) { + if let Some(task) = context.get_next_task(self) { queue.push(task); } else { break; @@ -393,7 +388,7 @@ impl<'a> TaskRunner<'a> { // 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.task_names.len(), 0); + debug_assert_eq!(context.tasks.len(), 0); break; }; @@ -521,46 +516,105 @@ enum TaskError { TaskDepCycle { path: Vec }, } -fn sort_tasks_topo( - pkg_task_config: &PackageTaskInfo, -) -> Result, TaskError> { +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 str>, - tasks_config: &'a WorkspaceTasksConfig, - ) -> Result<(), TaskError> { - // Already sorted - if sorted.iter().any(|sorted_name| sorted_name == name) { - return Ok(()); + 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); } - // Graph has a cycle - if path.contains(&name) { - path.push(name); + if path.contains(&(folder_url, name)) { + path.push((folder_url, name)); return Err(TaskError::TaskDepCycle { - path: path.iter().map(|s| s.to_string()).collect(), + path: path.iter().map(|(_, s)| s.to_string()).collect(), }); } - let Some((_, task_or_script)) = tasks_config.task(name) else { - return Err(TaskError::NotFound(name.to_string())); - }; - + 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(name); - sort_visit(dep, sorted, path, tasks_config)? + path.push((folder_url, name)); + dependencies.push(sort_visit(dep, sorted, path, tasks_config)?); } } - sorted.push(name.to_string()); + let id = sorted.len(); + sorted.push(ResolvedTask { + id, + name, + folder_url, + task_or_script, + dependencies, + }); - Ok(()) + Ok(id) } - let mut sorted: Vec = vec![]; + 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)?; 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 From 3f3568bd95aac366bd03044850dd7d2c6d013ea7 Mon Sep 17 00:00:00 2001 From: Cornelius Krassow <58032399+ckrassow@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:54:20 +0100 Subject: [PATCH 78/97] fix(cli): Fix typo in doc subcommand help output (#26321) --- cli/args/flags.rs | 2 +- tests/integration/flags_tests.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/args/flags.rs b/cli/args/flags.rs index f6d53cd15e035a..d8ab46b6544d2a 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -1232,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 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", From aa0ba6580eeb8045433d3eeffc19fc14a36f0361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 21 Nov 2024 16:27:37 +0000 Subject: [PATCH 79/97] fix: Buffer global in --unstable-node-globals (#26973) --- runtime/js/98_global_scope_shared.js | 2 +- tests/specs/run/unstable/node_globals.out | 8 +++++++- tests/specs/run/unstable/node_globals.ts | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/runtime/js/98_global_scope_shared.js b/runtime/js/98_global_scope_shared.js index f8e76b7ce7e981..c01bde6fad68f6 100644 --- a/runtime/js/98_global_scope_shared.js +++ b/runtime/js/98_global_scope_shared.js @@ -32,7 +32,7 @@ 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 { 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"; diff --git a/tests/specs/run/unstable/node_globals.out b/tests/specs/run/unstable/node_globals.out index 77045c7cbd785d..8262ace2712274 100644 --- a/tests/specs/run/unstable/node_globals.out +++ b/tests/specs/run/unstable/node_globals.out @@ -1,4 +1,10 @@ global: true -Buffer: 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 index 706b7eb6549ed1..3a000ea3417f61 100644 --- a/tests/specs/run/unstable/node_globals.ts +++ b/tests/specs/run/unstable/node_globals.ts @@ -2,6 +2,6 @@ import * as nodeBuffer from "node:buffer"; import * as nodeTimers from "node:timers"; console.log(`global: ${globalThis === global}`); -console.log(`Buffer: ${Buffer === nodeBuffer.default}`); +console.log(`Buffer: ${Buffer.from}`); console.log(`setImmediate: ${setImmediate === nodeTimers.setImmediate}`); console.log(`clearImmediate: ${clearImmediate === nodeTimers.clearImmediate}`); From bfa9230d3b92115f73854339da972881c0d41e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 21 Nov 2024 16:29:40 +0000 Subject: [PATCH 80/97] fix(watch): don't panic if there's no path provided (#26972) Closes https://github.com/denoland/deno/issues/26970 --- cli/util/file_watcher.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cli/util/file_watcher.rs b/cli/util/file_watcher.rs index eb3fb8c6029c21..b9318a6e4bd612 100644 --- a/cli/util/file_watcher.rs +++ b/cli/util/file_watcher.rs @@ -185,9 +185,11 @@ impl WatcherCommunicator { pub fn show_path_changed(&self, changed_paths: Option>) { if let Some(paths) = changed_paths { - self.print( - format!("Restarting! File change detected: {:?}", paths[0]).to_string(), - ) + if !paths.is_empty() { + self.print(format!("Restarting! File change detected: {:?}", paths[0])) + } else { + self.print("Restarting! File change detected.".to_string()) + } } } } From 75f8164b043339bf4883774dad29250c46201df2 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Thu, 21 Nov 2024 17:30:07 +0100 Subject: [PATCH 81/97] chore: update url + idna (#26963) They were pinned to old versions. This commit removes the pin. --- Cargo.lock | 211 +++++++++++++++++- Cargo.toml | 3 +- ext/node/Cargo.toml | 2 +- tests/specs/doc/invalid_url/invalid_url.out | 2 +- tests/wpt/runner/expectation.json | 229 +------------------- 5 files changed, 211 insertions(+), 236 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf6d3a37147e94..5ca7f30c947a47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1911,7 +1911,7 @@ dependencies = [ "http-body-util", "hyper 1.4.1", "hyper-util", - "idna 0.3.0", + "idna 1.0.3", "indexmap 2.3.0", "ipnetwork", "k256", @@ -3982,6 +3982,124 @@ dependencies = [ "tracing", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -3990,9 +4108,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -4000,12 +4118,23 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -4477,6 +4606,12 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "litrs" version = "0.4.1" @@ -7636,6 +7771,16 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -8048,12 +8193,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.4.1" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", - "idna 0.4.0", + "idna 1.0.3", "percent-encoding", "serde", ] @@ -8076,12 +8221,24 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8-width" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.1" @@ -8690,6 +8847,18 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wtf8" version = "0.1.0" @@ -8880,6 +9049,28 @@ dependencies = [ "uuid", ] +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "zip" version = "2.1.6" diff --git a/Cargo.toml b/Cargo.toml index 5f66c0d44de82f..d1e958fe1b8674 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -200,8 +200,7 @@ tower-http = { version = "0.6.1", features = ["decompression-br", "decompression tower-lsp = { package = "deno_tower_lsp", version = "0.1.0", features = ["proposed"] } tower-service = "0.3.2" twox-hash = "=1.6.3" -# Upgrading past 2.4.1 may cause WPT failures -url = { version = "< 2.5.0", features = ["serde", "expose_internals"] } +url = { version = "2.5", features = ["serde", "expose_internals"] } uuid = { version = "1.3.0", features = ["v4"] } webpki-root-certs = "0.26.5" webpki-roots = "0.26" diff --git a/ext/node/Cargo.toml b/ext/node/Cargo.toml index 3502d3b5f851d1..e1650282c2b3b5 100644 --- a/ext/node/Cargo.toml +++ b/ext/node/Cargo.toml @@ -54,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" 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/wpt/runner/expectation.json b/tests/wpt/runner/expectation.json index 23cc85b498811f..1a7cb8c560f8f6 100644 --- a/tests/wpt/runner/expectation.json +++ b/tests/wpt/runner/expectation.json @@ -3741,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)", @@ -3874,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, @@ -3894,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, @@ -3932,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", @@ -4760,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", @@ -4784,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", From 928808163816c69ac53ee4d56d2762a7f4c7312f Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 21 Nov 2024 11:37:10 -0500 Subject: [PATCH 82/97] fix(node): regression where ts files were sometimes resolved instead of js (#26971) --- ext/node/polyfills/01_require.js | 54 +++++++++++------- .../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 | 1 + .../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 ++ 12 files changed, 54 insertions(+), 21 deletions(-) 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 create mode 100644 tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.json 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 diff --git a/ext/node/polyfills/01_require.js b/ext/node/polyfills/01_require.js index db032014c2d07b..df73cad6b7ddc2 100644 --- a/ext/node/polyfills/01_require.js +++ b/ext/node/polyfills/01_require.js @@ -1060,22 +1060,39 @@ Module.prototype._compile = function (content, filename, format) { return result; }; -Module._extensions[".js"] = - Module._extensions[".ts"] = - Module._extensions[".jsx"] = - Module._extensions[".tsx"] = - function (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"); - }; +Module._extensions[".js"] = function (module, filename) { + // 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._extensions[".cjs"] = loadCjs; +Module._extensions[".mjs"] = loadESMFromCJS; +Module._extensions[".wasm"] = loadESMFromCJS; + +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); +} + +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( @@ -1086,11 +1103,6 @@ function loadESMFromCJS(module, filename, code) { module.exports = namespace; } -Module._extensions[".mjs"] = - Module._extensions[".mts"] = - Module._extensions[".wasm"] = - loadESMFromCJS; - function stripBOM(content) { if (StringPrototypeCharCodeAt(content, 0) === 0xfeff) { content = StringPrototypeSlice(content, 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/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.json b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.json new file mode 100644 index 00000000000000..0967ef424bce67 --- /dev/null +++ b/tests/specs/npm/pkg_index_ts_and_js/node_modules/package/json/index.json @@ -0,0 +1 @@ +{} 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": "*" + } +} From 566a6c2ce750d28c4ffe170017a64413296977fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 21 Nov 2024 16:56:46 +0000 Subject: [PATCH 83/97] fix(task): update --filter flag description (#26974) `--recursive` is now implied by `--filter`. --- cli/args/flags.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/args/flags.rs b/cli/args/flags.rs index d8ab46b6544d2a..3e48fa2909f455 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -3073,7 +3073,7 @@ Evaluate a task from string Arg::new("filter") .long("filter") .short('f') - .help("Filter members of the workspace by name - should be used with --recursive") + .help("Filter members of the workspace by name, implies --recursive flag") .value_parser(value_parser!(String)), ) .arg( From 6ee8efc5b4ba18348040bb8207f72b6c72353b94 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 21 Nov 2024 12:00:10 -0500 Subject: [PATCH 84/97] fix(install/global): do not error if path is an npm pkg and relative file (#26975) Closes https://github.com/denoland/deno/issues/26969 --- cli/tools/installer.rs | 31 ++++++++++-------- tests/registry/npm/cli.ts/registry.json | 32 +++++++++++++++++++ .../pkg_name_same_as_file/__test__.jsonc | 20 ++++++++++++ .../pkg_name_same_as_file/file_not_exists.out | 1 + 4 files changed, 70 insertions(+), 14 deletions(-) create mode 100644 tests/registry/npm/cli.ts/registry.json 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 diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs index fe477a8e6cc540..df5981e6e7b85e 100644 --- a/cli/tools/installer.rs +++ b/cli/tools/installer.rs @@ -359,6 +359,7 @@ async fn install_global( // 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( @@ -381,20 +382,22 @@ async fn install_global( )); let entry_text = install_flags_global.module_url.as_str(); - let req = super::registry::AddRmPackageReq::parse(entry_text); - - // found a package requirement but missing the prefix - if let Ok(Err(package_req)) = req { - 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}")) - ); + 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}")) + ); + } } } 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/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`? From a875a3785ba2b11f9bfd3dc31fd674670b587b44 Mon Sep 17 00:00:00 2001 From: Bhuwan Pandit Date: Thu, 21 Nov 2024 17:27:00 +0000 Subject: [PATCH 85/97] docs(cli/add): add clarification to add command (#26968) Signed-off-by: Bhuwan Pandit --- cli/args/flags.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 3e48fa2909f455..472eb9a376905e 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -1704,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, ) From 8a5609ad73a1a92663ab49b562ca303be92e8306 Mon Sep 17 00:00:00 2001 From: denobot <33910674+denobot@users.noreply.github.com> Date: Thu, 21 Nov 2024 14:35:32 -0500 Subject: [PATCH 86/97] chore: forward v2.1.1 release commit to main (#26981) Co-authored-by: dsherret --- .github/workflows/ci.generate.ts | 2 +- .github/workflows/ci.yml | 8 ++--- Cargo.lock | 58 ++++++++++++++++---------------- Cargo.toml | 56 +++++++++++++++--------------- Releases.md | 10 ++++++ bench_util/Cargo.toml | 2 +- cli/Cargo.toml | 2 +- ext/broadcast_channel/Cargo.toml | 2 +- ext/cache/Cargo.toml | 2 +- ext/canvas/Cargo.toml | 2 +- ext/console/Cargo.toml | 2 +- ext/cron/Cargo.toml | 2 +- ext/crypto/Cargo.toml | 2 +- ext/fetch/Cargo.toml | 2 +- ext/ffi/Cargo.toml | 2 +- ext/fs/Cargo.toml | 2 +- ext/http/Cargo.toml | 2 +- ext/io/Cargo.toml | 2 +- ext/kv/Cargo.toml | 2 +- ext/napi/Cargo.toml | 2 +- ext/napi/sym/Cargo.toml | 2 +- ext/net/Cargo.toml | 2 +- ext/node/Cargo.toml | 2 +- ext/tls/Cargo.toml | 2 +- ext/url/Cargo.toml | 2 +- ext/web/Cargo.toml | 2 +- ext/webgpu/Cargo.toml | 2 +- ext/webidl/Cargo.toml | 2 +- ext/websocket/Cargo.toml | 2 +- ext/webstorage/Cargo.toml | 2 +- resolvers/deno/Cargo.toml | 2 +- resolvers/node/Cargo.toml | 2 +- runtime/Cargo.toml | 2 +- runtime/permissions/Cargo.toml | 2 +- 34 files changed, 101 insertions(+), 91 deletions(-) diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts index 941ee47984e1f6..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 = 26; +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 20e9fef503c999..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: '26-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles(''Cargo.lock'') }}' - restore-keys: '26-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: '26-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: '26-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 5ca7f30c947a47..798bb240577696 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1201,7 +1201,7 @@ dependencies = [ [[package]] name = "deno" -version = "2.1.0" +version = "2.1.1" dependencies = [ "anstream", "async-trait", @@ -1371,7 +1371,7 @@ dependencies = [ [[package]] name = "deno_bench_util" -version = "0.172.0" +version = "0.173.0" dependencies = [ "bencher", "deno_core", @@ -1380,7 +1380,7 @@ dependencies = [ [[package]] name = "deno_broadcast_channel" -version = "0.172.0" +version = "0.173.0" dependencies = [ "async-trait", "deno_core", @@ -1391,7 +1391,7 @@ dependencies = [ [[package]] name = "deno_cache" -version = "0.110.0" +version = "0.111.0" dependencies = [ "async-trait", "deno_core", @@ -1424,7 +1424,7 @@ dependencies = [ [[package]] name = "deno_canvas" -version = "0.47.0" +version = "0.48.0" dependencies = [ "deno_core", "deno_webgpu", @@ -1459,7 +1459,7 @@ dependencies = [ [[package]] name = "deno_console" -version = "0.178.0" +version = "0.179.0" dependencies = [ "deno_core", ] @@ -1506,7 +1506,7 @@ checksum = "fe4dccb6147bb3f3ba0c7a48e993bfeb999d2c2e47a81badee80e2b370c8d695" [[package]] name = "deno_cron" -version = "0.58.0" +version = "0.59.0" dependencies = [ "anyhow", "async-trait", @@ -1519,7 +1519,7 @@ dependencies = [ [[package]] name = "deno_crypto" -version = "0.192.0" +version = "0.193.0" dependencies = [ "aes", "aes-gcm", @@ -1587,7 +1587,7 @@ dependencies = [ [[package]] name = "deno_fetch" -version = "0.202.0" +version = "0.203.0" dependencies = [ "base64 0.21.7", "bytes", @@ -1621,7 +1621,7 @@ dependencies = [ [[package]] name = "deno_ffi" -version = "0.165.0" +version = "0.166.0" dependencies = [ "deno_core", "deno_permissions", @@ -1641,7 +1641,7 @@ dependencies = [ [[package]] name = "deno_fs" -version = "0.88.0" +version = "0.89.0" dependencies = [ "async-trait", "base32", @@ -1694,7 +1694,7 @@ dependencies = [ [[package]] name = "deno_http" -version = "0.176.0" +version = "0.177.0" dependencies = [ "async-compression", "async-trait", @@ -1733,7 +1733,7 @@ dependencies = [ [[package]] name = "deno_io" -version = "0.88.0" +version = "0.89.0" dependencies = [ "async-trait", "deno_core", @@ -1754,7 +1754,7 @@ dependencies = [ [[package]] name = "deno_kv" -version = "0.86.0" +version = "0.87.0" dependencies = [ "anyhow", "async-trait", @@ -1827,7 +1827,7 @@ dependencies = [ [[package]] name = "deno_napi" -version = "0.109.0" +version = "0.110.0" dependencies = [ "deno_core", "deno_permissions", @@ -1855,7 +1855,7 @@ dependencies = [ [[package]] name = "deno_net" -version = "0.170.0" +version = "0.171.0" dependencies = [ "deno_core", "deno_permissions", @@ -1872,7 +1872,7 @@ dependencies = [ [[package]] name = "deno_node" -version = "0.115.0" +version = "0.116.0" dependencies = [ "aead-gcm-stream", "aes", @@ -2024,7 +2024,7 @@ dependencies = [ [[package]] name = "deno_permissions" -version = "0.38.0" +version = "0.39.0" dependencies = [ "deno_core", "deno_path_util", @@ -2042,7 +2042,7 @@ dependencies = [ [[package]] name = "deno_resolver" -version = "0.10.0" +version = "0.11.0" dependencies = [ "anyhow", "base32", @@ -2061,7 +2061,7 @@ dependencies = [ [[package]] name = "deno_runtime" -version = "0.187.0" +version = "0.188.0" dependencies = [ "async-trait", "color-print", @@ -2198,7 +2198,7 @@ dependencies = [ [[package]] name = "deno_tls" -version = "0.165.0" +version = "0.166.0" dependencies = [ "deno_core", "deno_native_certs", @@ -2247,7 +2247,7 @@ dependencies = [ [[package]] name = "deno_url" -version = "0.178.0" +version = "0.179.0" dependencies = [ "deno_bench_util", "deno_console", @@ -2259,7 +2259,7 @@ dependencies = [ [[package]] name = "deno_web" -version = "0.209.0" +version = "0.210.0" dependencies = [ "async-trait", "base64-simd 0.8.0", @@ -2281,7 +2281,7 @@ dependencies = [ [[package]] name = "deno_webgpu" -version = "0.145.0" +version = "0.146.0" dependencies = [ "deno_core", "raw-window-handle", @@ -2294,7 +2294,7 @@ dependencies = [ [[package]] name = "deno_webidl" -version = "0.178.0" +version = "0.179.0" dependencies = [ "deno_bench_util", "deno_core", @@ -2302,7 +2302,7 @@ dependencies = [ [[package]] name = "deno_websocket" -version = "0.183.0" +version = "0.184.0" dependencies = [ "bytes", "deno_core", @@ -2324,7 +2324,7 @@ dependencies = [ [[package]] name = "deno_webstorage" -version = "0.173.0" +version = "0.174.0" dependencies = [ "deno_core", "deno_web", @@ -4887,7 +4887,7 @@ dependencies = [ [[package]] name = "napi_sym" -version = "0.108.0" +version = "0.109.0" dependencies = [ "quote", "serde", @@ -4942,7 +4942,7 @@ dependencies = [ [[package]] name = "node_resolver" -version = "0.17.0" +version = "0.18.0" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index d1e958fe1b8674..987c291fcf7498 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,17 +48,17 @@ repository = "https://github.com/denoland/deno" deno_ast = { version = "=0.43.3", features = ["transpiling"] } deno_core = { version = "0.321.0" } -deno_bench_util = { version = "0.172.0", path = "./bench_util" } +deno_bench_util = { version = "0.173.0", path = "./bench_util" } deno_config = { version = "=0.39.2", features = ["workspace", "sync"] } deno_lockfile = "=0.23.1" deno_media_type = { version = "0.2.0", features = ["module_specifier"] } deno_npm = "=0.25.4" deno_path_util = "=0.2.1" -deno_permissions = { version = "0.38.0", path = "./runtime/permissions" } -deno_runtime = { version = "0.187.0", path = "./runtime" } +deno_permissions = { version = "0.39.0", path = "./runtime/permissions" } +deno_runtime = { version = "0.188.0", path = "./runtime" } deno_semver = "=0.5.16" deno_terminal = "0.2.0" -napi_sym = { version = "0.108.0", path = "./ext/napi/sym" } +napi_sym = { version = "0.109.0", path = "./ext/napi/sym" } test_util = { package = "test_server", path = "./tests/util/server" } denokv_proto = "0.8.4" @@ -67,32 +67,32 @@ denokv_remote = "0.8.4" denokv_sqlite = { default-features = false, version = "0.8.4" } # exts -deno_broadcast_channel = { version = "0.172.0", path = "./ext/broadcast_channel" } -deno_cache = { version = "0.110.0", path = "./ext/cache" } -deno_canvas = { version = "0.47.0", path = "./ext/canvas" } -deno_console = { version = "0.178.0", path = "./ext/console" } -deno_cron = { version = "0.58.0", path = "./ext/cron" } -deno_crypto = { version = "0.192.0", path = "./ext/crypto" } -deno_fetch = { version = "0.202.0", path = "./ext/fetch" } -deno_ffi = { version = "0.165.0", path = "./ext/ffi" } -deno_fs = { version = "0.88.0", path = "./ext/fs" } -deno_http = { version = "0.176.0", path = "./ext/http" } -deno_io = { version = "0.88.0", path = "./ext/io" } -deno_kv = { version = "0.86.0", path = "./ext/kv" } -deno_napi = { version = "0.109.0", path = "./ext/napi" } -deno_net = { version = "0.170.0", path = "./ext/net" } -deno_node = { version = "0.115.0", path = "./ext/node" } -deno_tls = { version = "0.165.0", path = "./ext/tls" } -deno_url = { version = "0.178.0", path = "./ext/url" } -deno_web = { version = "0.209.0", path = "./ext/web" } -deno_webgpu = { version = "0.145.0", path = "./ext/webgpu" } -deno_webidl = { version = "0.178.0", path = "./ext/webidl" } -deno_websocket = { version = "0.183.0", path = "./ext/websocket" } -deno_webstorage = { version = "0.173.0", path = "./ext/webstorage" } +deno_broadcast_channel = { version = "0.173.0", path = "./ext/broadcast_channel" } +deno_cache = { version = "0.111.0", path = "./ext/cache" } +deno_canvas = { version = "0.48.0", path = "./ext/canvas" } +deno_console = { version = "0.179.0", path = "./ext/console" } +deno_cron = { version = "0.59.0", path = "./ext/cron" } +deno_crypto = { version = "0.193.0", path = "./ext/crypto" } +deno_fetch = { version = "0.203.0", path = "./ext/fetch" } +deno_ffi = { version = "0.166.0", path = "./ext/ffi" } +deno_fs = { version = "0.89.0", path = "./ext/fs" } +deno_http = { version = "0.177.0", path = "./ext/http" } +deno_io = { version = "0.89.0", path = "./ext/io" } +deno_kv = { version = "0.87.0", path = "./ext/kv" } +deno_napi = { version = "0.110.0", path = "./ext/napi" } +deno_net = { version = "0.171.0", path = "./ext/net" } +deno_node = { version = "0.116.0", path = "./ext/node" } +deno_tls = { version = "0.166.0", path = "./ext/tls" } +deno_url = { version = "0.179.0", path = "./ext/url" } +deno_web = { version = "0.210.0", path = "./ext/web" } +deno_webgpu = { version = "0.146.0", path = "./ext/webgpu" } +deno_webidl = { version = "0.179.0", path = "./ext/webidl" } +deno_websocket = { version = "0.184.0", path = "./ext/websocket" } +deno_webstorage = { version = "0.174.0", path = "./ext/webstorage" } # resolvers -deno_resolver = { version = "0.10.0", path = "./resolvers/deno" } -node_resolver = { version = "0.17.0", path = "./resolvers/node" } +deno_resolver = { version = "0.11.0", path = "./resolvers/deno" } +node_resolver = { version = "0.18.0", path = "./resolvers/node" } aes = "=0.8.3" anyhow = "1.0.57" diff --git a/Releases.md b/Releases.md index 2cb2dfbd80c8ae..0e977d0311bc0b 100644 --- a/Releases.md +++ b/Releases.md @@ -6,6 +6,16 @@ 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) diff --git a/bench_util/Cargo.toml b/bench_util/Cargo.toml index 7bb785e6e55f87..4d39ae30e4b61b 100644 --- a/bench_util/Cargo.toml +++ b/bench_util/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_bench_util" -version = "0.172.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 c6818848371ac4..6a1fc51bc45d8d 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno" -version = "2.1.0" +version = "2.1.1" authors.workspace = true default-run = "deno" edition.workspace = true diff --git a/ext/broadcast_channel/Cargo.toml b/ext/broadcast_channel/Cargo.toml index b92b1c7beb3fdf..e7c3f584b61fbe 100644 --- a/ext/broadcast_channel/Cargo.toml +++ b/ext/broadcast_channel/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_broadcast_channel" -version = "0.172.0" +version = "0.173.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/cache/Cargo.toml b/ext/cache/Cargo.toml index c79024e82c16a0..9005bf5b24418f 100644 --- a/ext/cache/Cargo.toml +++ b/ext/cache/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_cache" -version = "0.110.0" +version = "0.111.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/canvas/Cargo.toml b/ext/canvas/Cargo.toml index 8fcb2c4a9c8e19..5dca4424376b8b 100644 --- a/ext/canvas/Cargo.toml +++ b/ext/canvas/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_canvas" -version = "0.47.0" +version = "0.48.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/console/Cargo.toml b/ext/console/Cargo.toml index 9f925ac61b316d..1d76390b6e02d4 100644 --- a/ext/console/Cargo.toml +++ b/ext/console/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_console" -version = "0.178.0" +version = "0.179.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/cron/Cargo.toml b/ext/cron/Cargo.toml index 23ac77d5eda371..d1809da1354ca0 100644 --- a/ext/cron/Cargo.toml +++ b/ext/cron/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_cron" -version = "0.58.0" +version = "0.59.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/crypto/Cargo.toml b/ext/crypto/Cargo.toml index 4a44314221f9fe..dfb81c62a32604 100644 --- a/ext/crypto/Cargo.toml +++ b/ext/crypto/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_crypto" -version = "0.192.0" +version = "0.193.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/fetch/Cargo.toml b/ext/fetch/Cargo.toml index 9ebd9ec03f2006..90b1b152d95778 100644 --- a/ext/fetch/Cargo.toml +++ b/ext/fetch/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_fetch" -version = "0.202.0" +version = "0.203.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/ffi/Cargo.toml b/ext/ffi/Cargo.toml index e63d22e57dc9ac..2f0813a58b9674 100644 --- a/ext/ffi/Cargo.toml +++ b/ext/ffi/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_ffi" -version = "0.165.0" +version = "0.166.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/fs/Cargo.toml b/ext/fs/Cargo.toml index f37d1f699796ca..1d7d5d3d9aabed 100644 --- a/ext/fs/Cargo.toml +++ b/ext/fs/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_fs" -version = "0.88.0" +version = "0.89.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/http/Cargo.toml b/ext/http/Cargo.toml index 5105b47ddef6e8..5dc3cd9a7b83c0 100644 --- a/ext/http/Cargo.toml +++ b/ext/http/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_http" -version = "0.176.0" +version = "0.177.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/io/Cargo.toml b/ext/io/Cargo.toml index 8f7c0e197a7df7..caaf67ab0b6b35 100644 --- a/ext/io/Cargo.toml +++ b/ext/io/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_io" -version = "0.88.0" +version = "0.89.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/kv/Cargo.toml b/ext/kv/Cargo.toml index 870e4fec3b69d1..972aabfbb7cdb7 100644 --- a/ext/kv/Cargo.toml +++ b/ext/kv/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_kv" -version = "0.86.0" +version = "0.87.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/napi/Cargo.toml b/ext/napi/Cargo.toml index 19f4036a886e3a..f9a1f73007ba5a 100644 --- a/ext/napi/Cargo.toml +++ b/ext/napi/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_napi" -version = "0.109.0" +version = "0.110.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/napi/sym/Cargo.toml b/ext/napi/sym/Cargo.toml index 83107782b814c5..74d7b450ba67a0 100644 --- a/ext/napi/sym/Cargo.toml +++ b/ext/napi/sym/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "napi_sym" -version = "0.108.0" +version = "0.109.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/net/Cargo.toml b/ext/net/Cargo.toml index 1cb109dd2182e1..8669f650e3f708 100644 --- a/ext/net/Cargo.toml +++ b/ext/net/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_net" -version = "0.170.0" +version = "0.171.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/node/Cargo.toml b/ext/node/Cargo.toml index e1650282c2b3b5..5e47a74e1dc352 100644 --- a/ext/node/Cargo.toml +++ b/ext/node/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_node" -version = "0.115.0" +version = "0.116.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/tls/Cargo.toml b/ext/tls/Cargo.toml index 81d28d44212247..6b4bc98909a930 100644 --- a/ext/tls/Cargo.toml +++ b/ext/tls/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_tls" -version = "0.165.0" +version = "0.166.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/url/Cargo.toml b/ext/url/Cargo.toml index 2b390e8b07c9a4..e2ea7dae581f8b 100644 --- a/ext/url/Cargo.toml +++ b/ext/url/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_url" -version = "0.178.0" +version = "0.179.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/web/Cargo.toml b/ext/web/Cargo.toml index c00298991b9dce..f56f21b72f6178 100644 --- a/ext/web/Cargo.toml +++ b/ext/web/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_web" -version = "0.209.0" +version = "0.210.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/webgpu/Cargo.toml b/ext/webgpu/Cargo.toml index 73541ba6a2c754..93be59b734c31a 100644 --- a/ext/webgpu/Cargo.toml +++ b/ext/webgpu/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_webgpu" -version = "0.145.0" +version = "0.146.0" authors = ["the Deno authors"] edition.workspace = true license = "MIT" diff --git a/ext/webidl/Cargo.toml b/ext/webidl/Cargo.toml index 9f6fdc49437224..9bf65335c04871 100644 --- a/ext/webidl/Cargo.toml +++ b/ext/webidl/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_webidl" -version = "0.178.0" +version = "0.179.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/websocket/Cargo.toml b/ext/websocket/Cargo.toml index bdbc1694353ca1..d6177dada0f39a 100644 --- a/ext/websocket/Cargo.toml +++ b/ext/websocket/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_websocket" -version = "0.183.0" +version = "0.184.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ext/webstorage/Cargo.toml b/ext/webstorage/Cargo.toml index 928844c5aaa16c..580eb95e2fe074 100644 --- a/ext/webstorage/Cargo.toml +++ b/ext/webstorage/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_webstorage" -version = "0.173.0" +version = "0.174.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/resolvers/deno/Cargo.toml b/resolvers/deno/Cargo.toml index 0de8b31b38d558..b2c4bd2384ccb7 100644 --- a/resolvers/deno/Cargo.toml +++ b/resolvers/deno/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_resolver" -version = "0.10.0" +version = "0.11.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/resolvers/node/Cargo.toml b/resolvers/node/Cargo.toml index 7f914479ad553c..fb302705730a04 100644 --- a/resolvers/node/Cargo.toml +++ b/resolvers/node/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "node_resolver" -version = "0.17.0" +version = "0.18.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index d4c41b831fe3c9..94fe4ce02bd2ac 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_runtime" -version = "0.187.0" +version = "0.188.0" authors.workspace = true edition.workspace = true license.workspace = true diff --git a/runtime/permissions/Cargo.toml b/runtime/permissions/Cargo.toml index 1e7133de6ddb48..efbc657055f23c 100644 --- a/runtime/permissions/Cargo.toml +++ b/runtime/permissions/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_permissions" -version = "0.38.0" +version = "0.39.0" authors.workspace = true edition.workspace = true license.workspace = true From a19b3f44d469f96eec8dbde0ba3474841061de0d Mon Sep 17 00:00:00 2001 From: Caleb Cox Date: Thu, 21 Nov 2024 14:24:54 -0600 Subject: [PATCH 87/97] fix(cli): remove extraneous comma in task --eval help (#26985) --- cli/args/flags.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 472eb9a376905e..5e89f88a91af52 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -3083,7 +3083,7 @@ Evaluate a task from string Arg::new("eval") .long("eval") .help( - "Evaluate the passed value as if, it was a task in a configuration file", + "Evaluate the passed value as if it was a task in a configuration file", ).action(ArgAction::SetTrue) ) .arg(node_modules_dir_arg()) From 8f7787f81b185716406da752ff91f5ffa146c971 Mon Sep 17 00:00:00 2001 From: Charlie Bellini Date: Fri, 22 Nov 2024 00:04:47 +0100 Subject: [PATCH 88/97] fix(ext/websocket): don't throw exception when sending to closed socket (#26932) [The WebSocket specification for the `send` function](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send) says: > The browser will throw an exception if you call `send()` when the connection is in the `CONNECTING` state. If you call `send()` when the connection is in the `CLOSING` or `CLOSED` states, the browser will silently discard the data. and: > ### Exceptions > > `InvalidStateError` [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) > > Thrown if [`WebSocket.readyState`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState) is `CONNECTING`. This pull request fixes the current behavior to match the specification. Also, I believe it fixes #17586. --- ext/websocket/01_websocket.js | 6 +++++- tests/unit/websocket_test.ts | 15 +++++++++++++++ tests/wpt/runner/expectation.json | 4 ++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js index 468999b95dda62..78572f5f002fab 100644 --- a/ext/websocket/01_websocket.js +++ b/ext/websocket/01_websocket.js @@ -330,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. diff --git a/tests/unit/websocket_test.ts b/tests/unit/websocket_test.ts index 3aafe8da22dbfa..d9878828db4d97 100644 --- a/tests/unit/websocket_test.ts +++ b/tests/unit/websocket_test.ts @@ -806,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/wpt/runner/expectation.json b/tests/wpt/runner/expectation.json index 1a7cb8c560f8f6..6140f4379d03c2 100644 --- a/tests/wpt/runner/expectation.json +++ b/tests/wpt/runner/expectation.json @@ -11303,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 From 45fad6a622700bac0b656a8500529bc4f41aed86 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 21 Nov 2024 18:16:40 -0500 Subject: [PATCH 89/97] chore(compile): log code cache file path (#26977) Ref #26976 --- cli/standalone/code_cache.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cli/standalone/code_cache.rs b/cli/standalone/code_cache.rs index 25b490544cf1d7..9580b9b44e16c1 100644 --- a/cli/standalone/code_cache.rs +++ b/cli/standalone/code_cache.rs @@ -42,7 +42,11 @@ impl DenoCompileCodeCache { // attempt to deserialize the cache data match deserialize(&file_path, cache_key) { Ok(data) => { - log::debug!("Loaded {} code cache entries", data.len()); + log::debug!( + "Loaded {} code cache entries from {}", + data.len(), + file_path.display() + ); Self { strategy: CodeCacheStrategy::SubsequentRun( SubsequentRunCodeCacheStrategy { @@ -53,7 +57,11 @@ impl DenoCompileCodeCache { } } Err(err) => { - log::debug!("Failed to deserialize code cache: {:#}", err); + log::debug!( + "Failed to deserialize code cache from {}: {:#}", + file_path.display(), + err + ); Self { strategy: CodeCacheStrategy::FirstRun(FirstRunCodeCacheStrategy { cache_key, @@ -186,6 +194,7 @@ impl FirstRunCodeCacheStrategy { 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); } From 5ca47ee97a06c1b76bbdd58b50efd7016da2b020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 22 Nov 2024 00:46:23 +0000 Subject: [PATCH 90/97] fix: support non-function exports in Wasm modules (#26992) Closes https://github.com/denoland/deno/issues/26986 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- .../wasm_module/table_global_memory/__test__.jsonc | 4 ++++ .../run/wasm_module/table_global_memory/main.js | 2 ++ .../run/wasm_module/table_global_memory/main.out | 7 +++++++ .../run/wasm_module/table_global_memory/mod.wasm | Bin 0 -> 80 bytes .../run/wasm_module/table_global_memory/mod.wat | 6 ++++++ 7 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 tests/specs/run/wasm_module/table_global_memory/__test__.jsonc 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 diff --git a/Cargo.lock b/Cargo.lock index 798bb240577696..7947106e665edd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1466,9 +1466,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.321.0" +version = "0.322.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd2a54cda74cdc187d5fc2d23370a45cf09f912caf566dd1cd24a50157d809c7" +checksum = "2f593ef2b8acab8cd3ace9d50052edc65a3654fdbde808070cfa5da5cf7aaae6" dependencies = [ "anyhow", "bincode", @@ -1983,9 +1983,9 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.197.0" +version = "0.198.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a8825d92301cf445727c43f17fee2a20fcdf4370004339965156ae7c56c97e" +checksum = "870826735cd9aa0376d2aadca14365b753e830e3cc16891efb9232845a6982a4" dependencies = [ "proc-macro-rules", "proc-macro2", @@ -6666,9 +6666,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.230.0" +version = "0.231.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a783242d2af51d6955cc04bf2b64adb643ab588b61e9573c908a69dabf8c2f" +checksum = "1a0c48b8842ebae21c52da1d978fba5c2be5991680bddfdc1a36ee0ccbc60114" dependencies = [ "num-bigint", "serde", diff --git a/Cargo.toml b/Cargo.toml index 987c291fcf7498..f72d3c80d3f06a 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.321.0" } +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"] } 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..1dbb89a020ab81 --- /dev/null +++ b/tests/specs/run/wasm_module/table_global_memory/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --check main.js", + "output": "main.out" +} 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..81a5b4b47c18ee --- /dev/null +++ b/tests/specs/run/wasm_module/table_global_memory/main.out @@ -0,0 +1,7 @@ +Check [WILDCARD] +[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) +) From 9c0e6369b2f5d03aa281c1e0df4f9ef590214c70 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 22 Nov 2024 10:59:19 -0500 Subject: [PATCH 91/97] chore(check): add test for Wasm memory and table (#26996) --- .../wasm_module/table_global_memory/__test__.jsonc | 13 +++++++++++-- .../run/wasm_module/table_global_memory/check.out | 14 ++++++++++++++ .../run/wasm_module/table_global_memory/check.ts | 4 ++++ .../run/wasm_module/table_global_memory/main.out | 1 - 4 files changed, 29 insertions(+), 3 deletions(-) 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 diff --git a/tests/specs/run/wasm_module/table_global_memory/__test__.jsonc b/tests/specs/run/wasm_module/table_global_memory/__test__.jsonc index 1dbb89a020ab81..55f16ed0c2eee1 100644 --- a/tests/specs/run/wasm_module/table_global_memory/__test__.jsonc +++ b/tests/specs/run/wasm_module/table_global_memory/__test__.jsonc @@ -1,4 +1,13 @@ { - "args": "run --check main.js", - "output": "main.out" + "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.out b/tests/specs/run/wasm_module/table_global_memory/main.out index 81a5b4b47c18ee..c095b0dd9298d2 100644 --- a/tests/specs/run/wasm_module/table_global_memory/main.out +++ b/tests/specs/run/wasm_module/table_global_memory/main.out @@ -1,4 +1,3 @@ -Check [WILDCARD] [Module: null prototype] { func: [Function: 0], global: Global [WebAssembly.Global] {}, From 4ded7519e97922d12ce3398054db92e7a7b2497e Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 22 Nov 2024 14:26:38 -0500 Subject: [PATCH 92/97] fix(compile): correct buffered reading of assets and files (#27008) Closes #27006 --- cli/standalone/virtual_fs.rs | 25 ++++---- .../include/buffered_reads/__test__.jsonc | 27 +++++++++ .../compile/include/buffered_reads/main.ts | 57 +++++++++++++++++++ .../compile/include/buffered_reads/setup.js | 7 +++ .../data_files}/__test__.jsonc | 0 .../data_files}/data-file.txt | 0 .../data_files}/main.js | 0 .../data_files}/non_existent.out | 0 .../data_files}/output.out | 0 .../folder}/__test__.jsonc | 0 .../folder}/data/a.txt | 0 .../folder}/data/b.txt | 0 .../folder}/main.js | 0 .../folder}/output.out | 0 14 files changed, 104 insertions(+), 12 deletions(-) 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 rename tests/specs/compile/{include_data_files => include/data_files}/__test__.jsonc (100%) rename tests/specs/compile/{include_data_files => include/data_files}/data-file.txt (100%) rename tests/specs/compile/{include_data_files => include/data_files}/main.js (100%) rename tests/specs/compile/{include_data_files => include/data_files}/non_existent.out (100%) rename tests/specs/compile/{include_data_files => include/data_files}/output.out (100%) rename tests/specs/compile/{include_folder => include/folder}/__test__.jsonc (100%) rename tests/specs/compile/{include_folder => include/folder}/data/a.txt (100%) rename tests/specs/compile/{include_folder => include/folder}/data/b.txt (100%) rename tests/specs/compile/{include_folder => include/folder}/main.js (100%) rename tests/specs/compile/{include_folder => include/folder}/output.out (100%) diff --git a/cli/standalone/virtual_fs.rs b/cli/standalone/virtual_fs.rs index d1084f016c9608..be7e937ee1e5b4 100644 --- a/cli/standalone/virtual_fs.rs +++ b/cli/standalone/virtual_fs.rs @@ -634,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 @@ -643,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? @@ -658,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) } } @@ -893,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( @@ -903,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/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 similarity index 100% rename from tests/specs/compile/include_data_files/__test__.jsonc rename to tests/specs/compile/include/data_files/__test__.jsonc diff --git a/tests/specs/compile/include_data_files/data-file.txt b/tests/specs/compile/include/data_files/data-file.txt similarity index 100% rename from tests/specs/compile/include_data_files/data-file.txt rename to tests/specs/compile/include/data_files/data-file.txt diff --git a/tests/specs/compile/include_data_files/main.js b/tests/specs/compile/include/data_files/main.js similarity index 100% rename from tests/specs/compile/include_data_files/main.js rename to tests/specs/compile/include/data_files/main.js diff --git a/tests/specs/compile/include_data_files/non_existent.out b/tests/specs/compile/include/data_files/non_existent.out similarity index 100% rename from tests/specs/compile/include_data_files/non_existent.out rename to tests/specs/compile/include/data_files/non_existent.out diff --git a/tests/specs/compile/include_data_files/output.out b/tests/specs/compile/include/data_files/output.out similarity index 100% rename from tests/specs/compile/include_data_files/output.out rename to tests/specs/compile/include/data_files/output.out diff --git a/tests/specs/compile/include_folder/__test__.jsonc b/tests/specs/compile/include/folder/__test__.jsonc similarity index 100% rename from tests/specs/compile/include_folder/__test__.jsonc rename to tests/specs/compile/include/folder/__test__.jsonc diff --git a/tests/specs/compile/include_folder/data/a.txt b/tests/specs/compile/include/folder/data/a.txt similarity index 100% rename from tests/specs/compile/include_folder/data/a.txt rename to tests/specs/compile/include/folder/data/a.txt diff --git a/tests/specs/compile/include_folder/data/b.txt b/tests/specs/compile/include/folder/data/b.txt similarity index 100% rename from tests/specs/compile/include_folder/data/b.txt rename to tests/specs/compile/include/folder/data/b.txt diff --git a/tests/specs/compile/include_folder/main.js b/tests/specs/compile/include/folder/main.js similarity index 100% rename from tests/specs/compile/include_folder/main.js rename to tests/specs/compile/include/folder/main.js diff --git a/tests/specs/compile/include_folder/output.out b/tests/specs/compile/include/folder/output.out similarity index 100% rename from tests/specs/compile/include_folder/output.out rename to tests/specs/compile/include/folder/output.out From 50538ba35d5e8d34eb6833ae8d818ebcb698bc5d Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Fri, 22 Nov 2024 22:42:27 +0100 Subject: [PATCH 93/97] fix(node/fs): missing uv error context for readFile (#27011) Dart's Node wrapper code in `npm:sass` does string slicing on the thrown error message which broke because of our missing uv error context. Code in question: ```js _systemErrorToFileSystemException0(callback) { var error, t1, exception, t2; try { t1 = callback.call$0(); return t1; } catch (exception) { error = A.unwrapException(exception); if (!type$.JsSystemError._is(error)) throw exception; t1 = error; t2 = J.getInterceptor$x(t1); throw A.wrapException(new A.FileSystemException0(J.substring$2$s(t2.get$message(t1), (A.S(t2.get$code(t1)) + ": ").length, J.get$length$asx(t2.get$message(t1)) - (", " + A.S(t2.get$syscall(t1)) + " '" + A.S(t2.get$path(t1)) + "'").length), J.get$path$x(error))); } } ``` Fixes https://github.com/denoland/deno/issues/26994 --- ext/node/polyfills/_fs/_fs_readFile.ts | 4 ++-- tests/unit_node/_fs/_fs_readFile_test.ts | 25 +++++++++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) 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/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/); + } + } +}); From 5462b5828ddc265dff25add269423d5cbe21024e Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Fri, 22 Nov 2024 22:35:10 +0000 Subject: [PATCH 94/97] fix(lsp): remove stray debug output (#27010) --- cli/lsp/tsc.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index c221a6097b92cd..ae87a9914f4501 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -4454,11 +4454,7 @@ fn op_load<'s>( == NodeModuleKind::Cjs, }) }; - - lsp_warn!("op_load {} {}", &specifier, maybe_load_response.is_some()); - let serialized = serde_v8::to_v8(scope, maybe_load_response)?; - state.performance.measure(mark); Ok(serialized) } From 9eee2a0e9ef4d11aefba2707e7ef1959df02ac93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Baptista?= <15786310+M4RC3L05@users.noreply.github.com> Date: Fri, 22 Nov 2024 22:57:33 +0000 Subject: [PATCH 95/97] fix(fmt): return `None` if sql fmt result is the same (#27014) Similar with https://github.com/denoland/deno/pull/25848, we need to make `format_sql` to return `None` so we do not flag well formatted sql files as being wrong. Signed-off-by: m4rc3l05 <15786310+M4RC3L05@users.noreply.github.com> --- cli/tools/fmt.rs | 6 +++++- tests/specs/fmt/sql/__test__.jsonc | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index 9c2c7091294125..c2c2a6bb6bf3ca 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -549,7 +549,11 @@ pub fn format_sql( // Add single new line to the end of file. formatted_str.push('\n'); - Ok(Some(formatted_str)) + 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. diff --git a/tests/specs/fmt/sql/__test__.jsonc b/tests/specs/fmt/sql/__test__.jsonc index a335e79c24d971..27c08abd835346 100644 --- a/tests/specs/fmt/sql/__test__.jsonc +++ b/tests/specs/fmt/sql/__test__.jsonc @@ -7,7 +7,7 @@ }, "flag": { "args": "fmt --unstable-sql", - "output": "[UNORDERED_START]\n[WILDLINE]badly_formatted.sql\n[WILDLINE]well_formatted.sql\n[WILDLINE]wrong_file_ignore.sql\n[UNORDERED_END]\nChecked 7 files\n" + "output": "[UNORDERED_START]\n[WILDLINE]badly_formatted.sql\n[WILDLINE]wrong_file_ignore.sql\n[UNORDERED_END]\nChecked 7 files\n" }, "config_file": { "steps": [{ @@ -18,8 +18,12 @@ "output": "[WILDCARD]" }, { "args": "fmt", - "output": "[UNORDERED_START]\n[WILDLINE]badly_formatted.sql\n[WILDLINE]well_formatted.sql\n[WILDLINE]wrong_file_ignore.sql\n[UNORDERED_END]\nChecked 8 files\n" + "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" } } } From 9967e75e7e1e1194229a1f1274d1b6f9f30f5ebd Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 22 Nov 2024 18:30:59 -0500 Subject: [PATCH 96/97] chore: update to file_test_runner 0.7.3 (#27016) --- Cargo.lock | 4 ++-- tests/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7947106e665edd..6e929168f5313a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3086,9 +3086,9 @@ checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" [[package]] name = "file_test_runner" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b23dcc1b671771c6f59fdace6da685735c925f859733e8fd07fba6cae6462a" +checksum = "cf50901549edf2241e33d1715aec0575adc5510a09724877a1e0afe7ffafb0fb" dependencies = [ "anyhow", "crossbeam-channel", 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" From 12b377247be2b74155ded3a678ff2996ef3d7c9f Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Sat, 23 Nov 2024 01:26:30 +0000 Subject: [PATCH 97/97] fix(lsp): wasm file import completions (#27018) --- cli/util/path.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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"))); }