dd-trace 6.8.0 → 6.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ci/diagnose.js +27 -25
- package/ci/init.js +6 -6
- package/ci/runbook.md +114 -20
- package/ci/test-optimization-validation/approval-artifacts.js +36 -3
- package/ci/test-optimization-validation/approval.js +78 -22
- package/ci/test-optimization-validation/blocker-category.js +24 -0
- package/ci/test-optimization-validation/ci-discovery.js +23 -17
- package/ci/test-optimization-validation/ci-package-scripts.js +34 -6
- package/ci/test-optimization-validation/ci-remediation.js +1 -1
- package/ci/test-optimization-validation/cli.js +280 -52
- package/ci/test-optimization-validation/command-blocker.js +159 -20
- package/ci/test-optimization-validation/command-output-policy.js +9 -3
- package/ci/test-optimization-validation/command-runner.js +9 -7
- package/ci/test-optimization-validation/environment.js +4 -2
- package/ci/test-optimization-validation/executable.js +15 -13
- package/ci/test-optimization-validation/execution-lock.js +70 -0
- package/ci/test-optimization-validation/framework-adapters/cucumber-validation.json +3 -0
- package/ci/test-optimization-validation/framework-adapters/cucumber.js +657 -5
- package/ci/test-optimization-validation/framework-adapters/vitest.js +517 -0
- package/ci/test-optimization-validation/generated-files.js +38 -28
- package/ci/test-optimization-validation/generated-test-contract.js +8 -4
- package/ci/test-optimization-validation/generated-verifier.js +24 -17
- package/ci/test-optimization-validation/literal-glob.js +52 -0
- package/ci/test-optimization-validation/manifest-loader.js +3 -0
- package/ci/test-optimization-validation/manifest-scaffold.js +300 -50
- package/ci/test-optimization-validation/manifest-schema.js +80 -17
- package/ci/test-optimization-validation/offline-fixtures.js +13 -4
- package/ci/test-optimization-validation/package-check.js +94 -0
- package/ci/test-optimization-validation/plan-writer.js +183 -10
- package/ci/test-optimization-validation/preflight-runner.js +110 -31
- package/ci/test-optimization-validation/project-build-artifact.js +31 -0
- package/ci/test-optimization-validation/redaction.js +18 -27
- package/ci/test-optimization-validation/report-writer.js +182 -48
- package/ci/test-optimization-validation/result-semantics.js +20 -3
- package/ci/test-optimization-validation/runner-command.js +40 -20
- package/ci/test-optimization-validation/runner-contract.js +79 -43
- package/ci/test-optimization-validation/scenarios/basic-reporting.js +59 -5
- package/ci/test-optimization-validation/scenarios/ci-wiring.js +141 -35
- package/ci/test-optimization-validation/scenarios/helpers.js +30 -6
- package/ci/test-optimization-validation/static-diagnosis.js +10 -3
- package/ci/test-optimization-validation/test-output.js +2 -1
- package/ci/test-optimization-validation/validation-blocker.js +21 -0
- package/ci/vitest-no-worker-init-setup.mjs +30 -34
- package/index.d.ts +98 -1
- package/init.js +1 -17
- package/initialize.mjs +11 -0
- package/loader-hook.mjs +6 -4
- package/package.json +5 -3
- package/packages/datadog-core/src/utils/src/parse-tags.js +0 -1
- package/packages/datadog-esbuild/src/utils.js +16 -1
- package/packages/datadog-instrumentations/src/ai.js +61 -34
- package/packages/datadog-instrumentations/src/bluebird.js +6 -6
- package/packages/datadog-instrumentations/src/claude-agent-sdk.js +81 -5
- package/packages/datadog-instrumentations/src/cucumber.js +124 -47
- package/packages/datadog-instrumentations/src/dns.js +21 -2
- package/packages/datadog-instrumentations/src/electron.js +1 -0
- package/packages/datadog-instrumentations/src/fastify.js +3 -1
- package/packages/datadog-instrumentations/src/grpc/client.js +4 -2
- package/packages/datadog-instrumentations/src/helpers/callback-instrumentor.js +3 -1
- package/packages/datadog-instrumentations/src/helpers/hooks.js +2 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +33 -9
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/webdriverio.js +118 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/loader.mjs +20 -2
- package/packages/datadog-instrumentations/src/helpers/rewriter/targets.js +32 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +61 -0
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +37 -6
- package/packages/datadog-instrumentations/src/jest/coverage-backfill.js +1 -1
- package/packages/datadog-instrumentations/src/jest.js +979 -233
- package/packages/datadog-instrumentations/src/mocha/main.js +107 -9
- package/packages/datadog-instrumentations/src/mocha/utils.js +64 -42
- package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +25 -0
- package/packages/datadog-instrumentations/src/mocha/worker.js +12 -18
- package/packages/datadog-instrumentations/src/mysql.js +1 -1
- package/packages/datadog-instrumentations/src/next.js +155 -23
- package/packages/datadog-instrumentations/src/openai.js +14 -0
- package/packages/datadog-instrumentations/src/pg.js +180 -6
- package/packages/datadog-instrumentations/src/playwright.js +173 -79
- package/packages/datadog-instrumentations/src/promise-js.js +4 -4
- package/packages/datadog-instrumentations/src/promise.js +3 -3
- package/packages/datadog-instrumentations/src/router.js +195 -19
- package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +43 -10
- package/packages/datadog-instrumentations/src/vitest-main.js +360 -56
- package/packages/datadog-instrumentations/src/vitest-util.js +42 -7
- package/packages/datadog-instrumentations/src/vitest-worker.js +234 -17
- package/packages/datadog-instrumentations/src/webdriverio.js +194 -18
- package/packages/datadog-instrumentations/src/when.js +3 -3
- package/packages/datadog-instrumentations/src/ws.js +5 -1
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +59 -48
- package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +1 -3
- package/packages/datadog-plugin-cucumber/src/index.js +5 -1
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +50 -46
- package/packages/datadog-plugin-cypress/src/support.js +7 -4
- package/packages/datadog-plugin-electron/src/net.js +10 -4
- package/packages/datadog-plugin-http/src/client.js +1 -1
- package/packages/datadog-plugin-http2/src/client.js +1 -1
- package/packages/datadog-plugin-jest/src/index.js +1 -18
- package/packages/datadog-plugin-jest/src/util.js +2 -0
- package/packages/datadog-plugin-kafkajs/src/producer.js +2 -1
- package/packages/datadog-plugin-mocha/src/index.js +318 -1
- package/packages/datadog-plugin-next/src/index.js +57 -9
- package/packages/datadog-plugin-openai/src/tracing.js +4 -0
- package/packages/datadog-plugin-pg/src/index.js +65 -1
- package/packages/datadog-plugin-playwright/src/index.js +1 -1
- package/packages/datadog-plugin-vitest/src/index.js +95 -7
- package/packages/datadog-shimmer/src/shimmer.js +6 -2
- package/packages/dd-trace/src/aiguard/sdk.js +3 -0
- package/packages/dd-trace/src/appsec/{blocking.js → blocking/index.js} +26 -6
- package/packages/dd-trace/src/appsec/handlers/auth.js +62 -0
- package/packages/dd-trace/src/appsec/handlers/http-request.js +215 -0
- package/packages/dd-trace/src/appsec/handlers/http-response.js +78 -0
- package/packages/dd-trace/src/appsec/handlers/http-shared.js +24 -0
- package/packages/dd-trace/src/appsec/handlers/payments.js +104 -0
- package/packages/dd-trace/src/appsec/iast/analyzers/hsts-header-missing-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +1 -1
- package/packages/dd-trace/src/appsec/index.js +48 -476
- package/packages/dd-trace/src/appsec/sdk/track_event.js +9 -0
- package/packages/dd-trace/src/ci-visibility/coverage-report-discovery.js +46 -14
- package/packages/dd-trace/src/ci-visibility/efd-retry-policy.js +89 -0
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +27 -13
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +17 -0
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +21 -1
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +22 -7
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +9 -14
- package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +21 -5
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +1 -1
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache.js +5 -1
- package/packages/dd-trace/src/config/generated-config-types.d.ts +2 -0
- package/packages/dd-trace/src/config/helper.js +2 -0
- package/packages/dd-trace/src/config/index.js +16 -5
- package/packages/dd-trace/src/config/remote_config.js +1 -1
- package/packages/dd-trace/src/config/supported-configurations.json +8 -0
- package/packages/dd-trace/src/debugger/devtools_client/status.js +1 -1
- package/packages/dd-trace/src/encode/coverage-ci-visibility.js +0 -1
- package/packages/dd-trace/src/guardrails/apply-pm2-env.js +16 -0
- package/packages/dd-trace/src/guardrails/log.js +1 -10
- package/packages/dd-trace/src/llmobs/eval-metric.js +249 -0
- package/packages/dd-trace/src/llmobs/experiments/index.js +33 -25
- package/packages/dd-trace/src/llmobs/experiments/util.js +4 -2
- package/packages/dd-trace/src/llmobs/noop.js +2 -0
- package/packages/dd-trace/src/llmobs/plugins/ai/ddTelemetry.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +5 -5
- package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +1 -1
- package/packages/dd-trace/src/llmobs/sdk.js +149 -68
- package/packages/dd-trace/src/llmobs/telemetry.js +18 -0
- package/packages/dd-trace/src/llmobs/writers/base.js +3 -0
- package/packages/dd-trace/src/llmobs/writers/util.js +2 -0
- package/packages/dd-trace/src/log/channels.js +1 -9
- package/packages/dd-trace/src/log/levels.js +12 -0
- package/packages/dd-trace/src/openfeature/writers/exposures.js +1 -1
- package/packages/dd-trace/src/openfeature/writers/util.js +1 -1
- package/packages/dd-trace/src/opentelemetry/logs/batch_log_processor.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/meter.js +8 -4
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +1 -1
- package/packages/dd-trace/src/opentelemetry/span.js +4 -0
- package/packages/dd-trace/src/plugins/ci_plugin.js +21 -5
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/util/ci.js +6 -0
- package/packages/dd-trace/src/plugins/util/git.js +6 -4
- package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +2 -2
- package/packages/dd-trace/src/plugins/util/ip_extractor.js +1 -1
- package/packages/dd-trace/src/plugins/util/stacktrace.js +3 -0
- package/packages/dd-trace/src/plugins/util/test.js +319 -75
- package/packages/dd-trace/src/plugins/util/url.js +1 -1
- package/packages/dd-trace/src/plugins/util/web.js +23 -1
- package/packages/dd-trace/src/profiler.js +1 -1
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/events.js +2 -2
- package/packages/dd-trace/src/proxy.js +1 -0
- package/packages/dd-trace/src/ritm.js +5 -0
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +4 -2
- package/packages/dd-trace/src/sampling_rule.js +4 -2
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +1 -1
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +1 -1
- package/packages/dd-trace/src/telemetry/logs/index.js +3 -0
- package/packages/dd-trace/src/telemetry/telemetry.js +1 -1
- package/vendor/dist/pprof-format/index.js +1 -1
- package/version.js +10 -8
- /package/packages/dd-trace/src/appsec/{blocked_templates.js → blocking/templates.js} +0 -0
|
@@ -34,6 +34,7 @@ const HTTP_CLIENT_IP = tags.HTTP_CLIENT_IP
|
|
|
34
34
|
const MANUAL_DROP = tags.MANUAL_DROP
|
|
35
35
|
|
|
36
36
|
const contexts = new WeakMap()
|
|
37
|
+
const requests = new WeakMap()
|
|
37
38
|
|
|
38
39
|
// TODO: change this to no longer rely on creating a dummy plugin to be able to access startSpan
|
|
39
40
|
function createWebPlugin (tracer, config = {}) {
|
|
@@ -127,6 +128,7 @@ const web = {
|
|
|
127
128
|
context.tracer = tracer
|
|
128
129
|
context.span = span
|
|
129
130
|
context.res = res
|
|
131
|
+
requests.set(span, req)
|
|
130
132
|
|
|
131
133
|
this.setConfig(req, config)
|
|
132
134
|
addRequestTags(context, this.TYPE)
|
|
@@ -219,7 +221,7 @@ const web = {
|
|
|
219
221
|
const store = legacyStorage.getStore()
|
|
220
222
|
const pubsubSpan = store?.span?._name === 'pubsub.push.receive' ? store.span : null
|
|
221
223
|
|
|
222
|
-
let childOf = pubsubSpan ||
|
|
224
|
+
let childOf = pubsubSpan || this.extractIncomingServerContext(tracer, headers)
|
|
223
225
|
|
|
224
226
|
// we may have headers signaling a router proxy span should be created (such as for AWS API Gateway)
|
|
225
227
|
if (tracer._config?.inferredProxyServicesEnabled) {
|
|
@@ -232,6 +234,10 @@ const web = {
|
|
|
232
234
|
return startSpanHelper(tracer, name, { childOf }, traceCtx, config)
|
|
233
235
|
},
|
|
234
236
|
|
|
237
|
+
extractIncomingServerContext (tracer, headers) {
|
|
238
|
+
return tracer.extract(FORMAT_HTTP_HEADERS, normalizeHeadersCarrier(headers))
|
|
239
|
+
},
|
|
240
|
+
|
|
235
241
|
// Validate a request's status code and then add error tags if necessary
|
|
236
242
|
addStatusError (req, statusCode) {
|
|
237
243
|
const context = contexts.get(req)
|
|
@@ -307,6 +313,7 @@ const web = {
|
|
|
307
313
|
web.finishMiddleware(context)
|
|
308
314
|
|
|
309
315
|
web.finishSpan(context, spanType)
|
|
316
|
+
requests.delete(context.span)
|
|
310
317
|
|
|
311
318
|
finishInferredProxySpan(context)
|
|
312
319
|
},
|
|
@@ -336,6 +343,9 @@ const web = {
|
|
|
336
343
|
getContext (req) {
|
|
337
344
|
return contexts.get(req)
|
|
338
345
|
},
|
|
346
|
+
getRequest (span) {
|
|
347
|
+
return requests.get(span)
|
|
348
|
+
},
|
|
339
349
|
setRouteOrEndpointTag (req) {
|
|
340
350
|
const context = contexts.get(req)
|
|
341
351
|
|
|
@@ -345,6 +355,18 @@ const web = {
|
|
|
345
355
|
},
|
|
346
356
|
}
|
|
347
357
|
|
|
358
|
+
function normalizeHeadersCarrier (headers) {
|
|
359
|
+
if (!headers || typeof headers.get !== 'function' || typeof headers[Symbol.iterator] !== 'function') {
|
|
360
|
+
return headers
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
const carrier = {}
|
|
364
|
+
for (const [key, value] of headers) {
|
|
365
|
+
carrier[String(key).toLowerCase()] = value
|
|
366
|
+
}
|
|
367
|
+
return carrier
|
|
368
|
+
}
|
|
369
|
+
|
|
348
370
|
function addAllowHeaders (req, res, headers) {
|
|
349
371
|
const allowHeaders = splitHeader(headers['access-control-allow-headers'])
|
|
350
372
|
const requestHeaders = splitHeader(req.headers['access-control-request-headers'])
|
|
@@ -43,7 +43,7 @@ class EventSerializer {
|
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* Returns the destination URL for the near-OOM export subprocess, or nothing when this exporter
|
|
46
|
-
* does not support OOM export. Overridden by
|
|
46
|
+
* does not support OOM export. Overridden by `AgentExporter` and `FileExporter`.
|
|
47
47
|
*
|
|
48
48
|
* @returns {URL | undefined}
|
|
49
49
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { performance, constants, PerformanceObserver } = require('perf_hooks')
|
|
4
4
|
const {
|
|
5
|
-
Function,
|
|
5
|
+
Function: PprofFunction,
|
|
6
6
|
Label,
|
|
7
7
|
Line,
|
|
8
8
|
Location,
|
|
@@ -256,7 +256,7 @@ class EventSerializer {
|
|
|
256
256
|
// A synthetic single-frame location to serve as the location for timeline
|
|
257
257
|
// samples. We need these as the profiling backend (mimicking official pprof
|
|
258
258
|
// tool's behavior) ignores these.
|
|
259
|
-
const fn = new
|
|
259
|
+
const fn = new PprofFunction({ id: this.functions.length + 1, name: this.stringTable.dedup('') })
|
|
260
260
|
this.functions.push(fn)
|
|
261
261
|
const line = new Line({ functionId: fn.id })
|
|
262
262
|
const location = new Location({ id: this.locations.length + 1, line: [line] })
|
|
@@ -37,6 +37,11 @@ const moduleLoadEndChannel = dc.channel('dd-trace:moduleLoadEnd')
|
|
|
37
37
|
* @param {string[]} modules list of modules to hook into
|
|
38
38
|
* @param {Function} onrequire callback to be executed upon encountering module
|
|
39
39
|
*/
|
|
40
|
+
/**
|
|
41
|
+
* @param {string[]} modules list of modules to hook into
|
|
42
|
+
* @param {object | Function} [options] hook options, or the `onrequire` callback
|
|
43
|
+
* @param {Function} [onrequire] callback to be executed upon encountering module
|
|
44
|
+
*/
|
|
40
45
|
function Hook (modules, options, onrequire) {
|
|
41
46
|
if (!(this instanceof Hook)) return new Hook(modules, options, onrequire)
|
|
42
47
|
if (typeof options === 'function') {
|
|
@@ -11,11 +11,13 @@ const { NODE_MAJOR, NODE_MINOR } = require('../../../../version')
|
|
|
11
11
|
const { createMetricsClient } = require('./client')
|
|
12
12
|
|
|
13
13
|
const eventLoopDelayResolution = 4
|
|
14
|
-
const EVENT_LOOP_SAMPLE_PER_ITERATION_AVAILABLE = NODE_MAJOR > 26 ||
|
|
14
|
+
const EVENT_LOOP_SAMPLE_PER_ITERATION_AVAILABLE = NODE_MAJOR > 26 ||
|
|
15
|
+
(NODE_MAJOR === 26 && NODE_MINOR >= 5) ||
|
|
16
|
+
(NODE_MAJOR === 24 && NODE_MINOR >= 19)
|
|
15
17
|
|
|
16
18
|
// @datadog/native-metrics is only needed on Node versions where
|
|
17
19
|
// monitorEventLoopDelay's samplePerIteration option is unavailable.
|
|
18
|
-
// TODO: remove @datadog/native-metrics and this branch once
|
|
20
|
+
// TODO: remove @datadog/native-metrics and this branch once all supported Node versions provide this option.
|
|
19
21
|
const NATIVE_METRICS_REQUIRED = !EVENT_LOOP_SAMPLE_PER_ITERATION_AVAILABLE
|
|
20
22
|
|
|
21
23
|
let nativeMetrics = null
|
|
@@ -180,8 +180,10 @@ class SamplingRule {
|
|
|
180
180
|
if (resource) {
|
|
181
181
|
this.matchers.push(matcher(resource, resourceLocator))
|
|
182
182
|
}
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
if (tags) {
|
|
184
|
+
for (const [key, value] of Object.entries(tags)) {
|
|
185
|
+
this.matchers.push(matcher(value, makeTagLocator(key)))
|
|
186
|
+
}
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
this._sampler = new Sampler(sampleRate)
|
|
@@ -150,7 +150,7 @@ const storage = {
|
|
|
150
150
|
},
|
|
151
151
|
},
|
|
152
152
|
pg: {
|
|
153
|
-
opName: () =>
|
|
153
|
+
opName: ({ operation = 'query' }) => `pg.${operation}`,
|
|
154
154
|
serviceName: withSuffixFunction('postgres'),
|
|
155
155
|
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
156
156
|
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'pg' })
|
|
@@ -13,6 +13,9 @@ let enabled = false
|
|
|
13
13
|
* Telemetry logs api defines only ERROR, WARN and DEBUG levels:
|
|
14
14
|
* - WARN level is enabled by default
|
|
15
15
|
* - DEBUG level will be possible to activate with an env var or telemetry config property
|
|
16
|
+
*
|
|
17
|
+
* @param {string | undefined} level
|
|
18
|
+
* @returns {boolean}
|
|
16
19
|
*/
|
|
17
20
|
function isLevelEnabled (level) {
|
|
18
21
|
return isValidLevel(level)
|
|
@@ -130,7 +130,7 @@ function updateRetryData (error, retryObj) {
|
|
|
130
130
|
|
|
131
131
|
function getIntegrations () {
|
|
132
132
|
const newIntegrations = /** @type {Integration[]} */ ([])
|
|
133
|
-
for (const pluginName of Object.keys(pluginManager._pluginsByName
|
|
133
|
+
for (const pluginName of Object.keys(pluginManager._pluginsByName)) {
|
|
134
134
|
if (!sentIntegrations.has(pluginName)) {
|
|
135
135
|
newIntegrations.push({
|
|
136
136
|
name: pluginName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e,t,r={};r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};r.r(i),r.d(i,{Function:()=>Function,Label:()=>Label,Line:()=>Line,Location:()=>Location,Mapping:()=>Mapping,Profile:()=>Profile,Sample:()=>Sample,StringTable:()=>StringTable,ValueType:()=>ValueType,emptyTableToken:()=>c});var __classPrivateFieldGet=function(e,t,r,i){if("a"===r&&!i)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};let n=2n**32n-1n,s=0x100000000-1,a=0x100000000-1+1,o="u"<typeof Buffer?e=>new TextEncoder().encode(e):e=>Buffer.from(e,"utf8");function countNumberBytes(e){if(!e.length)return 0;let t=0;for(;t<e.length&&e[t++]>=128;);return t}function decodeBigNumber(e){if(!e.length)return BigInt(0);let t=BigInt(127&e[0]),r=0;for(;e[r++]>=128;)t|=BigInt(127&e[r])<<BigInt(7*r);return t}function makeValue(e,t=0){return{value:e,offset:t}}function getValue(e,t){switch(e){case u:for(let e=0;e<t.length;e++)if(!(128&t[e]))return makeValue(t.subarray(0,e+1));return makeValue(t);case d:{let e=countNumberBytes(t),r=decodeNumber(t);return makeValue(t.subarray(e,Number(r)+e),e)}default:throw Error(`Unrecognized value type: ${e}`)}}function lowBits(e){return"bigint"!=typeof e?(e>>>0)%a:Number(e&n)}function highBits(e){return"bigint"!=typeof e?e/a>>>0:Number(e>>32n&n)}function long(e){let t=e<0;t&&(e=-e);let r=lowBits(e),i=highBits(e);return t&&(i=~i>>>0,r=~r>>>0,++r>s&&(r=0,++i>s&&(i=0))),[i,r]}let u=0,d=2;function decodeNumber(e){if(countNumberBytes(e)>4)return decodeBigNumber(e);if(!e.length)return 0;let t=127&e[0],r=0;for(;e[r++]>=128;)t|=(127&e[r])<<7*r;return t}function decodeNumbers(e){let t=[],r=0;for(let i=0;i<e.length;i++)(128&e[i])==0&&(t.push(decodeNumber(e.subarray(r,i+1))),r=i+1);return t}function push(e,t){return null==t?[e]:(t.push(e),t)}function pushAll(e,t){if(null==t)return e;for(let r of e)t.push(r);return t}function measureNumber(e){if(0===e||0n===e)return 0;let[t,r]=long(e),i=(r>>>28|t<<4)>>>0,n=t>>>24;return 0!==n?n<128?9:10:0!==i?i<16384?i<128?5:6:i<2097152?7:8:r<16384?r<128?1:2:r<2097152?3:4}function measureValue(e){return void 0===e?0:"number"==typeof e||"bigint"==typeof e?measureNumber(e)||1:e.length}function measureArray(e){let t=0;for(let r of e)t+=measureValue(r);return t}function measureNumberField(e){let t=measureNumber(e);return t?1+t:0}function measureNumberArrayField(e){let t=0;for(let r of e)t+=measureNumber(r)||1;return t?1+measureNumber(t)+t:0}function measureLengthDelimField(e){let t=measureValue(e);return t?1+measureNumber(t)+t:0}function measureLengthDelimArrayField(e){let t=0;for(let r of e)t+=measureLengthDelimField(r);return t}function encodeNumber(e,t,r){if(0===r||0n===r)return e[t++]=0,t;let[i,n]=long(r);for(;i;)e[t++]=127&n|128,n=(n>>>7|i<<25)>>>0,i>>>=7;for(;n>127;)e[t++]=127&n|128,n>>>=7;return e[t++]=n,t}let c=Symbol();let StringTable=class StringTable{constructor(r){this.strings=[],e.set(this,[]),t.set(this,new Map),r!==c&&this.dedup("")}get encodedLength(){let t=0;for(let r of __classPrivateFieldGet(this,e,"f"))t+=r.length;return t}_encodeToBuffer(t,r){for(let i of __classPrivateFieldGet(this,e,"f"))t.set(i,r),r+=i.length;return r}encode(e=new Uint8Array(this.encodedLength)){return this._encodeToBuffer(e,0),e}static _encodeStringFromUtf8(e){let t=new Uint8Array(1+e.length+(measureNumber(e.length)||1)),r=0;return t[r++]=50,r=encodeNumber(t,r,e.length),e.length>0&&t.set(e,r),t}static _encodeString(e){return StringTable._encodeStringFromUtf8(o(e))}dedup(r){if("number"==typeof r)return r;if(!__classPrivateFieldGet(this,t,"f").has(r)){let i=this.strings.push(r)-1;__classPrivateFieldGet(this,t,"f").set(r,i),__classPrivateFieldGet(this,e,"f").push(StringTable._encodeString(r))}return __classPrivateFieldGet(this,t,"f").get(r)}_decodeString(r){let i=new TextDecoder().decode(r);__classPrivateFieldGet(this,t,"f").set(i,this.strings.push(i)-1),__classPrivateFieldGet(this,e,"f").push(StringTable._encodeStringFromUtf8(r))}};function decode(e,t){let r={},i=0;for(;i<e.length;){let n=e[i]>>3,s=7&e[i];i++;let{offset:a,value:o}=getValue(s,e.subarray(i));i+=o.length+a,t(r,n,o)}return r}e=new WeakMap,t=new WeakMap;let ValueType=class ValueType{static create(e){return e instanceof ValueType?e:new ValueType(e)}constructor(e){this.type=e.type||0,this.unit=e.unit||0}get length(){return 0+measureNumberField(this.type)+measureNumberField(this.unit)}_encodeToBuffer(e,t=0){return this.type&&(e[t++]=8,t=encodeNumber(e,t,this.type)),this.unit&&(e[t++]=16,t=encodeNumber(e,t,this.unit)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.type=decodeNumber(r);break;case 2:e.unit=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Label=class Label{static create(e){return e instanceof Label?e:new Label(e)}constructor(e){this.key=e.key||0,this.str=e.str||0,this.num=e.num||0,this.numUnit=e.numUnit||0}get length(){return 0+measureNumberField(this.key)+measureNumberField(this.str)+measureNumberField(this.num)+measureNumberField(this.numUnit)}_encodeToBuffer(e,t=0){return this.key&&(e[t++]=8,t=encodeNumber(e,t,this.key)),this.str&&(e[t++]=16,t=encodeNumber(e,t,this.str)),this.num&&(e[t++]=24,t=encodeNumber(e,t,this.num)),this.numUnit&&(e[t++]=32,t=encodeNumber(e,t,this.numUnit)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.key=decodeNumber(r);break;case 2:e.str=decodeNumber(r);break;case 3:e.num=decodeNumber(r);break;case 4:e.numUnit=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Sample=class Sample{static create(e){return e instanceof Sample?e:new Sample(e)}constructor(e){this.locationId=e.locationId||[],this.value=e.value||[],this.label=(e.label||[]).map(Label.create)}get length(){return 0+measureNumberArrayField(this.locationId)+measureNumberArrayField(this.value)+measureLengthDelimArrayField(this.label)}_encodeToBuffer(e,t=0){if(this.locationId.length)for(let r of(e[t++]=10,t=encodeNumber(e,t,measureArray(this.locationId)),this.locationId))t=encodeNumber(e,t,r);if(this.value.length)for(let r of(e[t++]=18,t=encodeNumber(e,t,measureArray(this.value)),this.value))t=encodeNumber(e,t,r);for(let r of this.label)e[t++]=26,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.locationId=pushAll(decodeNumbers(r),e.locationId);break;case 2:e.value=pushAll(decodeNumbers(r),e.value);break;case 3:e.label=push(Label.decode(r),e.label)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Mapping=class Mapping{static create(e){return e instanceof Mapping?e:new Mapping(e)}constructor(e){this.id=e.id||0,this.memoryStart=e.memoryStart||0,this.memoryLimit=e.memoryLimit||0,this.fileOffset=e.fileOffset||0,this.filename=e.filename||0,this.buildId=e.buildId||0,this.hasFunctions=!!e.hasFunctions,this.hasFilenames=!!e.hasFilenames,this.hasLineNumbers=!!e.hasLineNumbers,this.hasInlineFrames=!!e.hasInlineFrames}get length(){return 0+measureNumberField(this.id)+measureNumberField(this.memoryStart)+measureNumberField(this.memoryLimit)+measureNumberField(this.fileOffset)+measureNumberField(this.filename)+measureNumberField(this.buildId)+measureNumberField(+!!this.hasFunctions)+measureNumberField(+!!this.hasFilenames)+measureNumberField(+!!this.hasLineNumbers)+measureNumberField(+!!this.hasInlineFrames)}_encodeToBuffer(e,t=0){return this.id&&(e[t++]=8,t=encodeNumber(e,t,this.id)),this.memoryStart&&(e[t++]=16,t=encodeNumber(e,t,this.memoryStart)),this.memoryLimit&&(e[t++]=24,t=encodeNumber(e,t,this.memoryLimit)),this.fileOffset&&(e[t++]=32,t=encodeNumber(e,t,this.fileOffset)),this.filename&&(e[t++]=40,t=encodeNumber(e,t,this.filename)),this.buildId&&(e[t++]=48,t=encodeNumber(e,t,this.buildId)),this.hasFunctions&&(e[t++]=56,t=encodeNumber(e,t,1)),this.hasFilenames&&(e[t++]=64,t=encodeNumber(e,t,1)),this.hasLineNumbers&&(e[t++]=72,t=encodeNumber(e,t,1)),this.hasInlineFrames&&(e[t++]=80,t=encodeNumber(e,t,1)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.id=decodeNumber(r);break;case 2:e.memoryStart=decodeNumber(r);break;case 3:e.memoryLimit=decodeNumber(r);break;case 4:e.fileOffset=decodeNumber(r);break;case 5:e.filename=decodeNumber(r);break;case 6:e.buildId=decodeNumber(r);break;case 7:e.hasFunctions=!!decodeNumber(r);break;case 8:e.hasFilenames=!!decodeNumber(r);break;case 9:e.hasLineNumbers=!!decodeNumber(r);break;case 10:e.hasInlineFrames=!!decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Line=class Line{static create(e){return e instanceof Line?e:new Line(e)}constructor(e){this.functionId=e.functionId||0,this.line=e.line||0}get length(){return 0+measureNumberField(this.functionId)+measureNumberField(this.line)}_encodeToBuffer(e,t=0){return this.functionId&&(e[t++]=8,t=encodeNumber(e,t,this.functionId)),this.line&&(e[t++]=16,t=encodeNumber(e,t,this.line)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.functionId=decodeNumber(r);break;case 2:e.line=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Location=class Location{static create(e){return e instanceof Location?e:new Location(e)}constructor(e){this.id=e.id||0,this.mappingId=e.mappingId||0,this.address=e.address||0,this.line=(e.line||[]).map(Line.create),this.isFolded=!!e.isFolded}get length(){return 0+measureNumberField(this.id)+measureNumberField(this.mappingId)+measureNumberField(this.address)+measureLengthDelimArrayField(this.line)+measureNumberField(+!!this.isFolded)}_encodeToBuffer(e,t=0){for(let r of(this.id&&(e[t++]=8,t=encodeNumber(e,t,this.id)),this.mappingId&&(e[t++]=16,t=encodeNumber(e,t,this.mappingId)),this.address&&(e[t++]=24,t=encodeNumber(e,t,this.address)),this.line))e[t++]=34,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return this.isFolded&&(e[t++]=40,t=encodeNumber(e,t,1)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.id=decodeNumber(r);break;case 2:e.mappingId=decodeNumber(r);break;case 3:e.address=decodeNumber(r);break;case 4:e.line=push(Line.decode(r),e.line);break;case 5:e.isFolded=!!decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Function=class Function{static create(e){return e instanceof Function?e:new Function(e)}constructor(e){this.id=e.id||0,this.name=e.name||0,this.systemName=e.systemName||0,this.filename=e.filename||0,this.startLine=e.startLine||0}get length(){return 0+measureNumberField(this.id)+measureNumberField(this.name)+measureNumberField(this.systemName)+measureNumberField(this.filename)+measureNumberField(this.startLine)}_encodeToBuffer(e,t=0){return this.id&&(e[t++]=8,t=encodeNumber(e,t,this.id)),this.name&&(e[t++]=16,t=encodeNumber(e,t,this.name)),this.systemName&&(e[t++]=24,t=encodeNumber(e,t,this.systemName)),this.filename&&(e[t++]=32,t=encodeNumber(e,t,this.filename)),this.startLine&&(e[t++]=40,t=encodeNumber(e,t,this.startLine)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.id=decodeNumber(r);break;case 2:e.name=decodeNumber(r);break;case 3:e.systemName=decodeNumber(r);break;case 4:e.filename=decodeNumber(r);break;case 5:e.startLine=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Profile=class Profile{constructor(e={}){this.sampleType=(e.sampleType||[]).map(ValueType.create),this.sample=(e.sample||[]).map(Sample.create),this.mapping=(e.mapping||[]).map(Mapping.create),this.location=(e.location||[]).map(Location.create),this.function=(e.function||[]).map(Function.create),this.stringTable=e.stringTable||new StringTable,this.dropFrames=e.dropFrames||0,this.keepFrames=e.keepFrames||0,this.timeNanos=e.timeNanos||0,this.durationNanos=e.durationNanos||0,this.periodType=e.periodType?ValueType.create(e.periodType):void 0,this.period=e.period||0,this.comment=e.comment||[],this.defaultSampleType=e.defaultSampleType||0}get length(){return 0+measureLengthDelimArrayField(this.sampleType)+measureLengthDelimArrayField(this.sample)+measureLengthDelimArrayField(this.mapping)+measureLengthDelimArrayField(this.location)+measureLengthDelimArrayField(this.function)+this.stringTable.encodedLength+measureNumberField(this.dropFrames)+measureNumberField(this.keepFrames)+measureNumberField(this.timeNanos)+measureNumberField(this.durationNanos)+measureLengthDelimField(this.periodType)+measureNumberField(this.period)+measureNumberArrayField(this.comment)+measureNumberField(this.defaultSampleType)}_encodeSampleTypesToBuffer(e,t=0){for(let r of this.sampleType)e[t++]=10,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeSamplesToBuffer(e,t=0){for(let r of this.sample)e[t++]=18,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeMappingsToBuffer(e,t=0){for(let r of this.mapping)e[t++]=26,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeLocationsToBuffer(e,t=0){for(let r of this.location)e[t++]=34,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeFunctionsToBuffer(e,t=0){for(let r of this.function)e[t++]=42,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeBasicValuesToBuffer(e,t=0){if(this.dropFrames&&(e[t++]=56,t=encodeNumber(e,t,this.dropFrames)),this.keepFrames&&(e[t++]=64,t=encodeNumber(e,t,this.keepFrames)),this.timeNanos&&(e[t++]=72,t=encodeNumber(e,t,this.timeNanos)),this.durationNanos&&(e[t++]=80,t=encodeNumber(e,t,this.durationNanos)),void 0!==this.periodType&&(e[t++]=90,t=encodeNumber(e,t,this.periodType.length),t=this.periodType._encodeToBuffer(e,t)),this.period&&(e[t++]=96,t=encodeNumber(e,t,this.period)),this.comment.length)for(let r of(e[t++]=106,t=encodeNumber(e,t,measureArray(this.comment)),this.comment))t=encodeNumber(e,t,r);return this.defaultSampleType&&(e[t++]=112,t=encodeNumber(e,t,this.defaultSampleType)),t}_encodeToBuffer(e,t=0){return t=this._encodeSampleTypesToBuffer(e,t),t=this._encodeSamplesToBuffer(e,t),t=this._encodeMappingsToBuffer(e,t),t=this._encodeLocationsToBuffer(e,t),t=this._encodeFunctionsToBuffer(e,t),t=this.stringTable._encodeToBuffer(e,t),t=this._encodeBasicValuesToBuffer(e,t)}async _encodeToBufferAsync(e,t=0){return t=this._encodeSampleTypesToBuffer(e,t),await new Promise(setImmediate),t=this._encodeSamplesToBuffer(e,t),await new Promise(setImmediate),t=this._encodeMappingsToBuffer(e,t),await new Promise(setImmediate),t=this._encodeLocationsToBuffer(e,t),await new Promise(setImmediate),t=this._encodeFunctionsToBuffer(e,t),await new Promise(setImmediate),t=this.stringTable._encodeToBuffer(e,t),await new Promise(setImmediate),t=this._encodeBasicValuesToBuffer(e,t)}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}async encodeAsync(e=new Uint8Array(this.length)){return await this._encodeToBufferAsync(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.sampleType=push(ValueType.decode(r),e.sampleType);break;case 2:e.sample=push(Sample.decode(r),e.sample);break;case 3:e.mapping=push(Mapping.decode(r),e.mapping);break;case 4:e.location=push(Location.decode(r),e.location);break;case 5:e.function=push(Function.decode(r),e.function);break;case 6:void 0===e.stringTable&&(e.stringTable=new StringTable(c)),e.stringTable._decodeString(r);break;case 7:e.dropFrames=decodeNumber(r);break;case 8:e.keepFrames=decodeNumber(r);break;case 9:e.timeNanos=decodeNumber(r);break;case 10:e.durationNanos=decodeNumber(r);break;case 11:e.periodType=ValueType.decode(r);break;case 12:e.period=decodeNumber(r);break;case 13:e.comment=pushAll(decodeNumbers(r),e.comment);break;case 14:e.defaultSampleType=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};module.exports=i})();
|
|
1
|
+
(()=>{"use strict";var e,t,r={};r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};r.r(i),r.d(i,{Function:()=>Function,Label:()=>Label,Line:()=>Line,Location:()=>Location,Mapping:()=>Mapping,Profile:()=>Profile,Sample:()=>Sample,StringTable:()=>StringTable,ValueType:()=>ValueType,emptyTableToken:()=>c});var __classPrivateFieldGet=function(e,t,r,i){if("a"===r&&!i)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};let s=2n**32n-1n,n=0x100000000-1,a=0x100000000-1+1,o="u"<typeof Buffer?e=>new TextEncoder().encode(e):e=>Buffer.from(e,"utf8");function countNumberBytes(e){if(!e.length)return 0;let t=0;for(;t<e.length&&e[t++]>=128;);return t}function decodeBigNumber(e){if(!e.length)return BigInt(0);let t=BigInt(127&e[0]),r=0;for(;e[r++]>=128;)t|=BigInt(127&e[r])<<BigInt(7*r);return t}function makeValue(e,t=0){return{value:e,offset:t}}function getValue(e,t){switch(e){case u:for(let e=0;e<t.length;e++)if(!(128&t[e]))return makeValue(t.subarray(0,e+1));return makeValue(t);case d:{let e=countNumberBytes(t),r=decodeNumber(t);return makeValue(t.subarray(e,Number(r)+e),e)}default:throw Error(`Unrecognized value type: ${e}`)}}function lowBits(e){return"bigint"!=typeof e?(e>>>0)%a:Number(e&s)}function highBits(e){return"bigint"!=typeof e?e/a>>>0:Number(e>>32n&s)}function long(e){let t=e<0;t&&(e=-e);let r=lowBits(e),i=highBits(e);return t&&(i=~i>>>0,r=~r>>>0,++r>n&&(r=0,++i>n&&(i=0))),[i,r]}let u=0,d=2;function decodeNumber(e){if(countNumberBytes(e)>4)return decodeBigNumber(e);if(!e.length)return 0;let t=127&e[0],r=0;for(;e[r++]>=128;)t|=(127&e[r])<<7*r;return t}function decodeNumbers(e){let t=[],r=0;for(let i=0;i<e.length;i++)(128&e[i])==0&&(t.push(decodeNumber(e.subarray(r,i+1))),r=i+1);return t}function push(e,t){return null==t?[e]:(t.push(e),t)}function pushAll(e,t){if(null==t)return e;for(let r of e)t.push(r);return t}function measureNumber(e){if(0===e||0n===e)return 0;let[t,r]=long(e),i=(r>>>28|t<<4)>>>0,s=t>>>24;return 0!==s?s<128?9:10:0!==i?i<16384?i<128?5:6:i<2097152?7:8:r<16384?r<128?1:2:r<2097152?3:4}function measureValue(e){return void 0===e?0:"number"==typeof e||"bigint"==typeof e?measureNumber(e)||1:e.length}function measureArray(e){let t=0;for(let r of e)t+=measureValue(r);return t}function measureNumberField(e){let t=measureNumber(e);return t?1+t:0}function measureNumberArrayField(e){let t=0;for(let r of e)t+=measureNumber(r)||1;return t?1+measureNumber(t)+t:0}function measureLengthDelimField(e){let t=measureValue(e);return t?1+measureNumber(t)+t:0}function measureLengthDelimArrayField(e){let t=0;for(let r of e)t+=measureLengthDelimField(r);return t}function encodeNumber(e,t,r){if(0===r||0n===r)return e[t++]=0,t;let[i,s]=long(r);for(;i;)e[t++]=127&s|128,s=(s>>>7|i<<25)>>>0,i>>>=7;for(;s>127;)e[t++]=127&s|128,s>>>=7;return e[t++]=s,t}let c=Symbol();let StringTable=class StringTable{constructor(r){this.strings=[],e.set(this,[]),t.set(this,new Map),r!==c&&this.dedup("")}get encodedLength(){let t=0;for(let r of __classPrivateFieldGet(this,e,"f"))t+=r.length;return t}_encodeToBuffer(t,r){for(let i of __classPrivateFieldGet(this,e,"f"))t.set(i,r),r+=i.length;return r}encode(e=new Uint8Array(this.encodedLength)){return this._encodeToBuffer(e,0),e}static _encodeStringFromUtf8(e){let t=new Uint8Array(1+e.length+(measureNumber(e.length)||1)),r=0;return t[r++]=50,r=encodeNumber(t,r,e.length),e.length>0&&t.set(e,r),t}static _encodeString(e){return StringTable._encodeStringFromUtf8(o(e))}dedup(r){if("number"==typeof r)return r;if(!__classPrivateFieldGet(this,t,"f").has(r)){let i=this.strings.push(r)-1;__classPrivateFieldGet(this,t,"f").set(r,i),__classPrivateFieldGet(this,e,"f").push(StringTable._encodeString(r))}return __classPrivateFieldGet(this,t,"f").get(r)}_decodeString(r){let i=new TextDecoder().decode(r);__classPrivateFieldGet(this,t,"f").set(i,this.strings.push(i)-1),__classPrivateFieldGet(this,e,"f").push(StringTable._encodeStringFromUtf8(r))}};function decode(e,t){let r={},i=0;for(;i<e.length;){let s=e[i]>>3,n=7&e[i];i++;let{offset:a,value:o}=getValue(n,e.subarray(i));i+=o.length+a,t(r,s,o)}return r}e=new WeakMap,t=new WeakMap;let ValueType=class ValueType{static create(e){return e instanceof ValueType?e:new ValueType(e)}constructor(e){this.type=e.type||0,this.unit=e.unit||0}get length(){return 0+measureNumberField(this.type)+measureNumberField(this.unit)}_encodeToBuffer(e,t=0){return this.type&&(e[t++]=8,t=encodeNumber(e,t,this.type)),this.unit&&(e[t++]=16,t=encodeNumber(e,t,this.unit)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.type=decodeNumber(r);break;case 2:e.unit=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Label=class Label{static create(e){return e instanceof Label?e:new Label(e)}constructor(e){this.key=e.key||0,this.str=e.str||0,this.num=e.num||0,this.numUnit=e.numUnit||0}get length(){return 0+measureNumberField(this.key)+measureNumberField(this.str)+measureNumberField(this.num)+measureNumberField(this.numUnit)}_encodeToBuffer(e,t=0){return this.key&&(e[t++]=8,t=encodeNumber(e,t,this.key)),this.str&&(e[t++]=16,t=encodeNumber(e,t,this.str)),this.num&&(e[t++]=24,t=encodeNumber(e,t,this.num)),this.numUnit&&(e[t++]=32,t=encodeNumber(e,t,this.numUnit)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.key=decodeNumber(r);break;case 2:e.str=decodeNumber(r);break;case 3:e.num=decodeNumber(r);break;case 4:e.numUnit=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Sample=class Sample{static create(e){return e instanceof Sample?e:new Sample(e)}constructor(e){this.locationId=e.locationId||[],this.value=e.value||[],this.label=(e.label||[]).map(Label.create)}get length(){return 0+measureNumberArrayField(this.locationId)+measureNumberArrayField(this.value)+measureLengthDelimArrayField(this.label)}_encodeToBuffer(e,t=0){if(this.locationId.length)for(let r of(e[t++]=10,t=encodeNumber(e,t,measureArray(this.locationId)),this.locationId))t=encodeNumber(e,t,r);if(this.value.length)for(let r of(e[t++]=18,t=encodeNumber(e,t,measureArray(this.value)),this.value))t=encodeNumber(e,t,r);for(let r of this.label)e[t++]=26,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.locationId=pushAll(decodeNumbers(r),e.locationId);break;case 2:e.value=pushAll(decodeNumbers(r),e.value);break;case 3:e.label=push(Label.decode(r),e.label)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Mapping=class Mapping{static create(e){return e instanceof Mapping?e:new Mapping(e)}constructor(e){this.id=e.id||0,this.memoryStart=e.memoryStart||0,this.memoryLimit=e.memoryLimit||0,this.fileOffset=e.fileOffset||0,this.filename=e.filename||0,this.buildId=e.buildId||0,this.hasFunctions=!!e.hasFunctions,this.hasFilenames=!!e.hasFilenames,this.hasLineNumbers=!!e.hasLineNumbers,this.hasInlineFrames=!!e.hasInlineFrames}get length(){return 0+measureNumberField(this.id)+measureNumberField(this.memoryStart)+measureNumberField(this.memoryLimit)+measureNumberField(this.fileOffset)+measureNumberField(this.filename)+measureNumberField(this.buildId)+measureNumberField(+!!this.hasFunctions)+measureNumberField(+!!this.hasFilenames)+measureNumberField(+!!this.hasLineNumbers)+measureNumberField(+!!this.hasInlineFrames)}_encodeToBuffer(e,t=0){return this.id&&(e[t++]=8,t=encodeNumber(e,t,this.id)),this.memoryStart&&(e[t++]=16,t=encodeNumber(e,t,this.memoryStart)),this.memoryLimit&&(e[t++]=24,t=encodeNumber(e,t,this.memoryLimit)),this.fileOffset&&(e[t++]=32,t=encodeNumber(e,t,this.fileOffset)),this.filename&&(e[t++]=40,t=encodeNumber(e,t,this.filename)),this.buildId&&(e[t++]=48,t=encodeNumber(e,t,this.buildId)),this.hasFunctions&&(e[t++]=56,t=encodeNumber(e,t,1)),this.hasFilenames&&(e[t++]=64,t=encodeNumber(e,t,1)),this.hasLineNumbers&&(e[t++]=72,t=encodeNumber(e,t,1)),this.hasInlineFrames&&(e[t++]=80,t=encodeNumber(e,t,1)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.id=decodeNumber(r);break;case 2:e.memoryStart=decodeNumber(r);break;case 3:e.memoryLimit=decodeNumber(r);break;case 4:e.fileOffset=decodeNumber(r);break;case 5:e.filename=decodeNumber(r);break;case 6:e.buildId=decodeNumber(r);break;case 7:e.hasFunctions=!!decodeNumber(r);break;case 8:e.hasFilenames=!!decodeNumber(r);break;case 9:e.hasLineNumbers=!!decodeNumber(r);break;case 10:e.hasInlineFrames=!!decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Line=class Line{static create(e){return e instanceof Line?e:new Line(e)}constructor(e){this.functionId=e.functionId||0,this.line=e.line||0,this.column=e.column||0}get length(){return 0+measureNumberField(this.functionId)+measureNumberField(this.line)+measureNumberField(this.column)}_encodeToBuffer(e,t=0){return this.functionId&&(e[t++]=8,t=encodeNumber(e,t,this.functionId)),this.line&&(e[t++]=16,t=encodeNumber(e,t,this.line)),this.column&&(e[t++]=24,t=encodeNumber(e,t,this.column)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.functionId=decodeNumber(r);break;case 2:e.line=decodeNumber(r);break;case 3:e.column=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Location=class Location{static create(e){return e instanceof Location?e:new Location(e)}constructor(e){this.id=e.id||0,this.mappingId=e.mappingId||0,this.address=e.address||0,this.line=(e.line||[]).map(Line.create),this.isFolded=!!e.isFolded}get length(){return 0+measureNumberField(this.id)+measureNumberField(this.mappingId)+measureNumberField(this.address)+measureLengthDelimArrayField(this.line)+measureNumberField(+!!this.isFolded)}_encodeToBuffer(e,t=0){for(let r of(this.id&&(e[t++]=8,t=encodeNumber(e,t,this.id)),this.mappingId&&(e[t++]=16,t=encodeNumber(e,t,this.mappingId)),this.address&&(e[t++]=24,t=encodeNumber(e,t,this.address)),this.line))e[t++]=34,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return this.isFolded&&(e[t++]=40,t=encodeNumber(e,t,1)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.id=decodeNumber(r);break;case 2:e.mappingId=decodeNumber(r);break;case 3:e.address=decodeNumber(r);break;case 4:e.line=push(Line.decode(r),e.line);break;case 5:e.isFolded=!!decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Function=class Function{static create(e){return e instanceof Function?e:new Function(e)}constructor(e){this.id=e.id||0,this.name=e.name||0,this.systemName=e.systemName||0,this.filename=e.filename||0,this.startLine=e.startLine||0}get length(){return 0+measureNumberField(this.id)+measureNumberField(this.name)+measureNumberField(this.systemName)+measureNumberField(this.filename)+measureNumberField(this.startLine)}_encodeToBuffer(e,t=0){return this.id&&(e[t++]=8,t=encodeNumber(e,t,this.id)),this.name&&(e[t++]=16,t=encodeNumber(e,t,this.name)),this.systemName&&(e[t++]=24,t=encodeNumber(e,t,this.systemName)),this.filename&&(e[t++]=32,t=encodeNumber(e,t,this.filename)),this.startLine&&(e[t++]=40,t=encodeNumber(e,t,this.startLine)),t}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.id=decodeNumber(r);break;case 2:e.name=decodeNumber(r);break;case 3:e.systemName=decodeNumber(r);break;case 4:e.filename=decodeNumber(r);break;case 5:e.startLine=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};let Profile=class Profile{constructor(e={}){this.sampleType=(e.sampleType||[]).map(ValueType.create),this.sample=(e.sample||[]).map(Sample.create),this.mapping=(e.mapping||[]).map(Mapping.create),this.location=(e.location||[]).map(Location.create),this.function=(e.function||[]).map(Function.create),this.stringTable=e.stringTable||new StringTable,this.dropFrames=e.dropFrames||0,this.keepFrames=e.keepFrames||0,this.timeNanos=e.timeNanos||0,this.durationNanos=e.durationNanos||0,this.periodType=e.periodType?ValueType.create(e.periodType):void 0,this.period=e.period||0,this.comment=e.comment||[],this.defaultSampleType=e.defaultSampleType||0,this.docUrl=e.docUrl||0}get length(){return 0+measureLengthDelimArrayField(this.sampleType)+measureLengthDelimArrayField(this.sample)+measureLengthDelimArrayField(this.mapping)+measureLengthDelimArrayField(this.location)+measureLengthDelimArrayField(this.function)+this.stringTable.encodedLength+measureNumberField(this.dropFrames)+measureNumberField(this.keepFrames)+measureNumberField(this.timeNanos)+measureNumberField(this.durationNanos)+measureLengthDelimField(this.periodType)+measureNumberField(this.period)+measureNumberArrayField(this.comment)+measureNumberField(this.defaultSampleType)+measureNumberField(this.docUrl)}_encodeSampleTypesToBuffer(e,t=0){for(let r of this.sampleType)e[t++]=10,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeSamplesToBuffer(e,t=0){for(let r of this.sample)e[t++]=18,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeMappingsToBuffer(e,t=0){for(let r of this.mapping)e[t++]=26,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeLocationsToBuffer(e,t=0){for(let r of this.location)e[t++]=34,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeFunctionsToBuffer(e,t=0){for(let r of this.function)e[t++]=42,t=encodeNumber(e,t,r.length),t=r._encodeToBuffer(e,t);return t}_encodeBasicValuesToBuffer(e,t=0){if(this.dropFrames&&(e[t++]=56,t=encodeNumber(e,t,this.dropFrames)),this.keepFrames&&(e[t++]=64,t=encodeNumber(e,t,this.keepFrames)),this.timeNanos&&(e[t++]=72,t=encodeNumber(e,t,this.timeNanos)),this.durationNanos&&(e[t++]=80,t=encodeNumber(e,t,this.durationNanos)),void 0!==this.periodType&&(e[t++]=90,t=encodeNumber(e,t,this.periodType.length),t=this.periodType._encodeToBuffer(e,t)),this.period&&(e[t++]=96,t=encodeNumber(e,t,this.period)),this.comment.length)for(let r of(e[t++]=106,t=encodeNumber(e,t,measureArray(this.comment)),this.comment))t=encodeNumber(e,t,r);return this.defaultSampleType&&(e[t++]=112,t=encodeNumber(e,t,this.defaultSampleType)),this.docUrl&&(e[t++]=120,t=encodeNumber(e,t,this.docUrl)),t}_encodeToBuffer(e,t=0){return t=this._encodeSampleTypesToBuffer(e,t),t=this._encodeSamplesToBuffer(e,t),t=this._encodeMappingsToBuffer(e,t),t=this._encodeLocationsToBuffer(e,t),t=this._encodeFunctionsToBuffer(e,t),t=this.stringTable._encodeToBuffer(e,t),t=this._encodeBasicValuesToBuffer(e,t)}async _encodeToBufferAsync(e,t=0){return t=this._encodeSampleTypesToBuffer(e,t),await new Promise(setImmediate),t=this._encodeSamplesToBuffer(e,t),await new Promise(setImmediate),t=this._encodeMappingsToBuffer(e,t),await new Promise(setImmediate),t=this._encodeLocationsToBuffer(e,t),await new Promise(setImmediate),t=this._encodeFunctionsToBuffer(e,t),await new Promise(setImmediate),t=this.stringTable._encodeToBuffer(e,t),await new Promise(setImmediate),t=this._encodeBasicValuesToBuffer(e,t)}encode(e=new Uint8Array(this.length)){return this._encodeToBuffer(e,0),e}async encodeAsync(e=new Uint8Array(this.length)){return await this._encodeToBufferAsync(e,0),e}static decodeValue(e,t,r){switch(t){case 1:e.sampleType=push(ValueType.decode(r),e.sampleType);break;case 2:e.sample=push(Sample.decode(r),e.sample);break;case 3:e.mapping=push(Mapping.decode(r),e.mapping);break;case 4:e.location=push(Location.decode(r),e.location);break;case 5:e.function=push(Function.decode(r),e.function);break;case 6:void 0===e.stringTable&&(e.stringTable=new StringTable(c)),e.stringTable._decodeString(r);break;case 7:e.dropFrames=decodeNumber(r);break;case 8:e.keepFrames=decodeNumber(r);break;case 9:e.timeNanos=decodeNumber(r);break;case 10:e.durationNanos=decodeNumber(r);break;case 11:e.periodType=ValueType.decode(r);break;case 12:e.period=decodeNumber(r);break;case 13:e.comment=pushAll(decodeNumbers(r),e.comment);break;case 14:e.defaultSampleType=decodeNumber(r);break;case 15:e.docUrl=decodeNumber(r)}}static decode(e){return new this(decode(e,this.decodeValue))}};module.exports=i})();
|
package/version.js
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
/** @typedef {NonNullable<ReturnType<string['match']>>} RegExpMatch */
|
|
4
|
+
|
|
3
5
|
var version = require('./package.json').version
|
|
4
6
|
// @ts-expect-error
|
|
5
|
-
var /** @type {
|
|
7
|
+
var /** @type {RegExpMatch} */ ddMatches = version.match(/^(\d+)\.(\d+)\.(\d+)/)
|
|
6
8
|
// @ts-expect-error
|
|
7
|
-
var /** @type {
|
|
9
|
+
var /** @type {RegExpMatch} */ nodeMatches = process.versions.node.match(/^(\d+)\.(\d+)\.(\d+)/)
|
|
8
10
|
|
|
9
11
|
module.exports = {
|
|
10
12
|
VERSION: version,
|
|
11
|
-
DD_MAJOR: parseInt(ddMatches[1]),
|
|
12
|
-
DD_MINOR: parseInt(ddMatches[2]),
|
|
13
|
-
DD_PATCH: parseInt(ddMatches[3]),
|
|
14
|
-
NODE_MAJOR: parseInt(nodeMatches[1]),
|
|
15
|
-
NODE_MINOR: parseInt(nodeMatches[2]),
|
|
16
|
-
NODE_PATCH: parseInt(nodeMatches[3]),
|
|
13
|
+
DD_MAJOR: parseInt(ddMatches[1], 10),
|
|
14
|
+
DD_MINOR: parseInt(ddMatches[2], 10),
|
|
15
|
+
DD_PATCH: parseInt(ddMatches[3], 10),
|
|
16
|
+
NODE_MAJOR: parseInt(nodeMatches[1], 10),
|
|
17
|
+
NODE_MINOR: parseInt(nodeMatches[2], 10),
|
|
18
|
+
NODE_PATCH: parseInt(nodeMatches[3], 10),
|
|
17
19
|
NODE_VERSION: nodeMatches[0]
|
|
18
20
|
}
|
|
File without changes
|