dd-trace 5.109.0 → 5.111.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.
Files changed (208) hide show
  1. package/README.md +13 -8
  2. package/ci/init.js +25 -5
  3. package/ci/vitest-no-worker-init-setup.mjs +430 -0
  4. package/ext/tags.js +2 -0
  5. package/index.d.ts +79 -24
  6. package/initialize.mjs +5 -6
  7. package/loader-hook.mjs +154 -47
  8. package/package.json +20 -16
  9. package/packages/datadog-esbuild/index.js +26 -0
  10. package/packages/datadog-esbuild/src/utils.js +46 -3
  11. package/packages/datadog-instrumentations/src/connect.js +4 -3
  12. package/packages/datadog-instrumentations/src/fastify.js +4 -12
  13. package/packages/datadog-instrumentations/src/fs.js +8 -6
  14. package/packages/datadog-instrumentations/src/graphql.js +26 -484
  15. package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +81 -8
  16. package/packages/datadog-instrumentations/src/helpers/instrument.js +27 -2
  17. package/packages/datadog-instrumentations/src/helpers/optional-peer-bundler.js +65 -0
  18. package/packages/datadog-instrumentations/src/helpers/register.js +6 -4
  19. package/packages/datadog-instrumentations/src/helpers/require-optional-peer.js +17 -0
  20. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/graphql.js +201 -0
  21. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -0
  22. package/packages/datadog-instrumentations/src/helpers/rewriter/loader.mjs +18 -2
  23. package/packages/datadog-instrumentations/src/koa.js +3 -2
  24. package/packages/datadog-instrumentations/src/mariadb.js +4 -2
  25. package/packages/datadog-instrumentations/src/mocha/main.js +3 -3
  26. package/packages/datadog-instrumentations/src/mongoose.js +14 -2
  27. package/packages/datadog-instrumentations/src/next.js +10 -10
  28. package/packages/datadog-instrumentations/src/otel-sdk-trace.js +7 -6
  29. package/packages/datadog-instrumentations/src/playwright.js +1 -1
  30. package/packages/datadog-instrumentations/src/restify.js +4 -3
  31. package/packages/datadog-instrumentations/src/router.js +18 -5
  32. package/packages/datadog-instrumentations/src/selenium.js +1 -2
  33. package/packages/datadog-instrumentations/src/tedious.js +28 -0
  34. package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +1293 -0
  35. package/packages/datadog-instrumentations/src/vitest-main.js +1567 -0
  36. package/packages/datadog-instrumentations/src/vitest-util.js +249 -0
  37. package/packages/datadog-instrumentations/src/vitest-worker.js +753 -0
  38. package/packages/datadog-instrumentations/src/vitest.js +11 -1598
  39. package/packages/datadog-plugin-avsc/src/schema_iterator.js +2 -2
  40. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/client.js +2 -2
  41. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/context.js +18 -10
  42. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +47 -11
  43. package/packages/datadog-plugin-aws-sdk/src/base.js +13 -9
  44. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +43 -6
  45. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +83 -91
  46. package/packages/datadog-plugin-cucumber/src/index.js +1 -1
  47. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +19 -5
  48. package/packages/datadog-plugin-cypress/src/support.js +45 -1
  49. package/packages/datadog-plugin-express/src/code_origin.js +1 -1
  50. package/packages/datadog-plugin-fastify/src/code_origin.js +1 -1
  51. package/packages/datadog-plugin-graphql/src/execute.js +627 -11
  52. package/packages/datadog-plugin-graphql/src/index.js +20 -8
  53. package/packages/datadog-plugin-graphql/src/parse.js +24 -4
  54. package/packages/datadog-plugin-graphql/src/validate.js +16 -5
  55. package/packages/datadog-plugin-http/src/client.js +8 -3
  56. package/packages/datadog-plugin-http/src/index.js +6 -8
  57. package/packages/datadog-plugin-http2/src/client.js +5 -2
  58. package/packages/datadog-plugin-jest/src/index.js +1 -1
  59. package/packages/datadog-plugin-mocha/src/index.js +1 -1
  60. package/packages/datadog-plugin-mysql/src/index.js +7 -2
  61. package/packages/datadog-plugin-openai/src/services.js +2 -2
  62. package/packages/datadog-plugin-playwright/src/index.js +1 -1
  63. package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +2 -2
  64. package/packages/datadog-plugin-undici/src/index.js +5 -2
  65. package/packages/datadog-plugin-vitest/src/index.js +76 -64
  66. package/packages/datadog-shimmer/src/shimmer.js +37 -16
  67. package/packages/datadog-webpack/index.js +17 -1
  68. package/packages/datadog-webpack/src/optional-peer-loader.js +17 -0
  69. package/packages/dd-trace/src/aiguard/sdk.js +15 -3
  70. package/packages/dd-trace/src/appsec/api_security/index.js +55 -0
  71. package/packages/dd-trace/src/appsec/api_security/sampler.js +147 -0
  72. package/packages/dd-trace/src/appsec/channels.js +3 -1
  73. package/packages/dd-trace/src/appsec/downstream_requests.js +4 -4
  74. package/packages/dd-trace/src/appsec/graphql.js +5 -5
  75. package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +26 -19
  76. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +2 -2
  77. package/packages/dd-trace/src/appsec/iast/telemetry/index.js +2 -1
  78. package/packages/dd-trace/src/appsec/index.js +20 -7
  79. package/packages/dd-trace/src/appsec/lambda.js +135 -0
  80. package/packages/dd-trace/src/appsec/reporter.js +50 -10
  81. package/packages/dd-trace/src/appsec/telemetry/api_security.js +34 -0
  82. package/packages/dd-trace/src/appsec/telemetry/index.js +27 -1
  83. package/packages/dd-trace/src/appsec/waf/index.js +16 -4
  84. package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +4 -4
  85. package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +21 -6
  86. package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +2 -2
  87. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +1 -1
  88. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +1 -1
  89. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +3 -2
  90. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +1 -1
  91. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +55 -13
  92. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +2 -2
  93. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +17 -0
  94. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +47 -26
  95. package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +2 -2
  96. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +64 -53
  97. package/packages/dd-trace/src/ci-visibility/requests/request.js +1 -17
  98. package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +3 -3
  99. package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +23 -5
  100. package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +128 -0
  101. package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache.js +287 -0
  102. package/packages/dd-trace/src/config/defaults.js +25 -5
  103. package/packages/dd-trace/src/config/generated-config-types.d.ts +596 -58
  104. package/packages/dd-trace/src/config/helper.js +134 -33
  105. package/packages/dd-trace/src/config/index.js +39 -23
  106. package/packages/dd-trace/src/config/major-overrides.js +4 -2
  107. package/packages/dd-trace/src/config/parsers.js +19 -1
  108. package/packages/dd-trace/src/config/remote_config.js +1 -1
  109. package/packages/dd-trace/src/config/supported-configurations.json +109 -57
  110. package/packages/dd-trace/src/constants.js +7 -0
  111. package/packages/dd-trace/src/datastreams/processor.js +11 -3
  112. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +47 -35
  113. package/packages/dd-trace/src/debugger/devtools_client/index.js +31 -66
  114. package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +83 -0
  115. package/packages/dd-trace/src/debugger/devtools_client/state.js +1 -0
  116. package/packages/dd-trace/src/debugger/index.js +5 -0
  117. package/packages/dd-trace/src/debugger/probe_sampler.js +112 -0
  118. package/packages/dd-trace/src/debugger/probe_sampler_constants.js +19 -0
  119. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +77 -26
  120. package/packages/dd-trace/src/exporters/agent/index.js +1 -1
  121. package/packages/dd-trace/src/exporters/agentless/writer.js +4 -4
  122. package/packages/dd-trace/src/exporters/common/request.js +1 -20
  123. package/packages/dd-trace/src/exporters/common/url.js +34 -0
  124. package/packages/dd-trace/src/exporters/span-stats/writer.js +1 -3
  125. package/packages/dd-trace/src/guardrails/index.js +8 -5
  126. package/packages/dd-trace/src/index.js +6 -4
  127. package/packages/dd-trace/src/llmobs/constants/tags.js +6 -0
  128. package/packages/dd-trace/src/llmobs/index.js +17 -6
  129. package/packages/dd-trace/src/llmobs/plugins/base.js +4 -4
  130. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +3 -3
  131. package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +5 -1
  132. package/packages/dd-trace/src/llmobs/plugins/langgraph/index.js +1 -1
  133. package/packages/dd-trace/src/llmobs/sdk.js +8 -6
  134. package/packages/dd-trace/src/llmobs/span_processor.js +5 -1
  135. package/packages/dd-trace/src/llmobs/tagger.js +58 -3
  136. package/packages/dd-trace/src/llmobs/telemetry.js +1 -0
  137. package/packages/dd-trace/src/llmobs/writers/base.js +1 -1
  138. package/packages/dd-trace/src/log/index.js +18 -20
  139. package/packages/dd-trace/src/openfeature/flagging_provider.js +2 -7
  140. package/packages/dd-trace/src/opentelemetry/bridge-span-base.js +5 -4
  141. package/packages/dd-trace/src/opentelemetry/metrics/index.js +54 -5
  142. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +2 -1
  143. package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_exporter.js +40 -0
  144. package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +169 -0
  145. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +4 -3
  146. package/packages/dd-trace/src/opentelemetry/metrics/time.js +19 -0
  147. package/packages/dd-trace/src/opentelemetry/otlp/common.proto +2 -2
  148. package/packages/dd-trace/src/opentelemetry/otlp/logs.proto +1 -1
  149. package/packages/dd-trace/src/opentelemetry/otlp/logs_service.proto +1 -1
  150. package/packages/dd-trace/src/opentelemetry/otlp/metrics.proto +1 -1
  151. package/packages/dd-trace/src/opentelemetry/otlp/metrics_service.proto +1 -1
  152. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +44 -38
  153. package/packages/dd-trace/src/opentelemetry/span-helpers.js +29 -13
  154. package/packages/dd-trace/src/opentelemetry/span.js +14 -3
  155. package/packages/dd-trace/src/opentelemetry/span_context.js +1 -0
  156. package/packages/dd-trace/src/opentelemetry/trace/index.js +6 -1
  157. package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +3 -2
  158. package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +26 -13
  159. package/packages/dd-trace/src/opentelemetry/tracer_provider.js +1 -1
  160. package/packages/dd-trace/src/opentracing/propagation/text_map.js +3 -3
  161. package/packages/dd-trace/src/opentracing/span_context.js +17 -0
  162. package/packages/dd-trace/src/opentracing/tracer.js +6 -1
  163. package/packages/dd-trace/src/plugin_manager.js +14 -8
  164. package/packages/dd-trace/src/plugins/ci_plugin.js +21 -4
  165. package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +276 -0
  166. package/packages/dd-trace/src/plugins/util/llm.js +6 -1
  167. package/packages/dd-trace/src/plugins/util/test.js +91 -9
  168. package/packages/dd-trace/src/plugins/util/url.js +68 -1
  169. package/packages/dd-trace/src/plugins/util/web.js +19 -36
  170. package/packages/dd-trace/src/priority_sampler.js +1 -13
  171. package/packages/dd-trace/src/profiling/config.js +129 -198
  172. package/packages/dd-trace/src/profiling/constants.js +4 -7
  173. package/packages/dd-trace/src/profiling/exporter_cli.js +10 -10
  174. package/packages/dd-trace/src/profiling/exporters/agent.js +23 -16
  175. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +45 -14
  176. package/packages/dd-trace/src/profiling/exporters/file.js +16 -5
  177. package/packages/dd-trace/src/profiling/oom.js +71 -0
  178. package/packages/dd-trace/src/profiling/profiler.js +35 -23
  179. package/packages/dd-trace/src/profiling/profilers/events.js +14 -7
  180. package/packages/dd-trace/src/profiling/profilers/space.js +27 -18
  181. package/packages/dd-trace/src/profiling/profilers/wall.js +35 -25
  182. package/packages/dd-trace/src/proxy.js +8 -8
  183. package/packages/dd-trace/src/ritm.js +4 -2
  184. package/packages/dd-trace/src/serverless.js +1 -2
  185. package/packages/dd-trace/src/service-naming/schemas/util.js +36 -5
  186. package/packages/dd-trace/src/service-naming/schemas/v1/web.js +5 -3
  187. package/packages/dd-trace/src/span_format.js +2 -1
  188. package/packages/dd-trace/src/span_processor.js +11 -6
  189. package/packages/dd-trace/src/span_stats.js +96 -78
  190. package/packages/dd-trace/src/startup-log.js +2 -1
  191. package/packages/dd-trace/src/telemetry/dependencies.js +1 -1
  192. package/packages/dd-trace/src/telemetry/endpoints.js +6 -4
  193. package/packages/dd-trace/src/telemetry/index.js +2 -2
  194. package/packages/dd-trace/src/telemetry/logs/index.js +1 -1
  195. package/packages/dd-trace/src/telemetry/send-data.js +20 -18
  196. package/packages/dd-trace/src/telemetry/session-propagation.js +1 -1
  197. package/packages/dd-trace/src/telemetry/telemetry.js +9 -9
  198. package/packages/dd-trace/src/tracer.js +15 -1
  199. package/packages/dd-trace/src/util.js +14 -0
  200. package/register.js +58 -1
  201. package/vendor/dist/@apm-js-collab/code-transformer/index.js +1 -1
  202. package/vendor/dist/@datadog/sketches-js/index.js +1 -1
  203. package/vendor/dist/pprof-format/index.js +1 -1
  204. package/vendor/dist/protobufjs/index.js +1 -1
  205. package/vendor/dist/protobufjs/minimal/index.js +1 -1
  206. package/vendor/dist/shell-quote/index.js +1 -1
  207. package/packages/datadog-plugin-graphql/src/resolve.js +0 -170
  208. package/packages/dd-trace/src/appsec/api_security_sampler.js +0 -117
@@ -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 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.slice(0,e+1));return makeValue(t);case d:{let e=countNumberBytes(t),r=decodeNumber(t);return makeValue(t.slice(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.slice(r,i+1))),r=i+1);return t}function push(e,t){return null==t?[e]:(t.push(e),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.slice(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=decodeNumbers(r);break;case 2:e.value=decodeNumbers(r);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=decodeNumbers(r);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 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.slice(0,e+1));return makeValue(t);case d:{let e=countNumberBytes(t),r=decodeNumber(t);return makeValue(t.slice(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.slice(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.slice(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})();